Что выбрать - Windows или Linux хостинг?


10 0

У меня сейчас оба варианта хостинга - Windows и Linux, от одного и того же хостера. Я пользуюсь обоими уже на протяжении пяти лет и недавно принял для себя очень важное решение - я планирую отказаться от Windows хостинга по одной простой причине - он не надежен и с ним постоянно возникают проблемы. 

На работе мне приходится поддерживать очень большой сайт с большим количеством посещений пользователей и у нас всего один сервер способен обработать нагрузку в тысячи пользователей в час. Сервер работает на Windows и у нас просто база данных и код очень хорошо оптимизированы. Но пока мы оптимизировали наткнулись на несколько очень серьезных проблем Windows хостинга и .NET. 

Самая банальная и большая на мой взгляд проблема - количество открытых соединений к базе дынных. Как показывает практика, открытые соединения нужно держать максимально короткое время и закрывать их явно. Если программист .NET напишет код, в котором он откроет соединение с базой, но не закроет его, то .NET может закрыть его не скоро. Это серьезная проблема программистов, пишущих на языках со встроеными сборщиками мусора, они не заботятся о выделяемых ресурсах. Более подробно я описал проблему соединения с базой в заметке Освобождение ресурсов в .NET приложениях.

Если забить все соединения, то новые открываться не будут и весь хостинг встанет и вылечить это можно будет с помощью перезапуска сайтов (Recycle для App pool). В этот момент IIS освободит все выделенные на все сайты в пуле ресурсы и перезагрузит все. На разделяемом Windows хостинге, где хостятся мои личные сайты регулярно возникает такая проблема и пользователи явно постоянно пинают службу поддержки.Те в свою очередь перезапускают пул и спокойно ждут следующих жалоб на тормоза. 

В принципе, хостинг понять можно, ведь за те деньги, которые платят пользователи за разделяемый хостинг, они не могут посадить каждого на свой физический сервер, чтобы народ, который не умеет следить за ресурсами, не мешал другим. Для этого есть свои планы. Но и платить за выделенный хостинг за сайты, где посещаемость меньше 1000 человек в день (не в час, а день) не вижу смысла. 

Так как хостер экономит на разделяемых планах и забивают их по максимуму, то обязательно может появится какой-то чудо программист, который не будет заботиться о ресурсах и скушает их, а вы потом задолбаетесь просить службу поддержки, чтобы они перезапустили пул, что поможет, но не на долго. В чем-то тут проблема Microsoft. При одновременно работающих 200 пользователей, при неправильной работе с базой данных, количество открытых ресурсов может доходить до тысячи. IIS должен чуть быстрее и умнее освобождать брошенные на сборщик мусора ресурсы. 

Если у вас свой сервер и если вы имеете неплохой опыт работы с C#, то можно выбрать для сайта Windows хостинг, но если вы выбираете простой разделяемый хостинг и не уверены в ресурсах сервера, я бы выбрал LAMP. При неправильном программировании можно ушатать и его, но на мой взгляд чуть сложнее. Да и Linux хостинги все же дешевле, даже VPS и там уже будет иметь смысл купить себе свое пространство, чтобы быть богом. 

Я на работе продолжу использовать .NET и считаю его отличным инструментом для построения больших сайтов и даже порталов. Но для небольших проектов очень рекомендую PHP, потому по моему опыту с ним меньше проблем, если вы не владеете сервером. Возможно, мне просто не везло, но я начинаю перемещать свои сайты с Windows на nix хостинг. 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

fcoder

04 Февраля 2013

Если программист .NET напишет код, в котором он откроет соединение с базой, но не закроет его, то .NET может закрыть его не скоро.

Сразу нужно приучаться использовать конструкцию using для всех экземпляров, которые реализуют IDisposable

А то, что хостер никак не лимитирует количество соединений с базой - это проблемы самого хостера, не удосужившегося нормально настроить сервер.


Михаил Фленов

04 Февраля 2013

А то, что хостер никак не лимитирует количество соединений с базой - это проблемы самого хостера, не удосужившегося нормально настроить сервер.


Лимит скорей всего стоит, глобальный для всех. Для каждого в отдельности они не будут настраивать. И когда достигается этот лимит, новые подключения открыть невозможно и сайты висят в ожидании возможности подключиться к базе. Уже не раз проверял, что статические файлы доступны, а вот база не откликается.


alex.mrnv

04 Февраля 2013

Вообщето не удивительно, посещаемость интернена за последний год вырасла на 60%, вот какая нагрузка на сервера, Михаил, есть же у хостеров возможность снять дисковое пространство, установить на него хотябы свою серверную Ubuntu, разместить сайт и спокойно жить. Вы же при этом всё сами настроите. Странно у вас всё, на работе MS SQL, разрабатываете PHP в NetBeans, пользуетесь Apple, и задаетесь идеей Linux-сервера. К стати вы библиотеку .NET используете. Есть хорошая рецензия на руководство по jQuery:  "Одна небольшая проблема: я могу понять, что Бер и Иегуда с неприязнью относятся к Microsoft. Я знаю, что не переводятся люди, которые испытывают неприязнь к этой компании. Но данная книга попросту игнорирует существование .Net. Как программист на .Net, я несколько недоволен этим. Вы можете не включать поддержку .Net во все свои примеры, но вы могли бы признать, что эта платформа существует." Вот может правильно ребята и делают, что игногируют .NET. Сейчас большее развитие в разработке за Ajax, PHP, а javascript библиотеки очень хорошо взаимодействуют при этом. Как раз то разработчики больших порталов используют это в свои проэктах, к тому же уроверь программистов должен быть при этом достаточно высоким. А не так как разрабатывают всякий хлам которым завалена сеть. Эчень хорошо об этой ситуации говорят на IBM Development: "Одна из проблем JavaScript-разработки заключается в том, что большой процент разработчиков и Web-дизайнеров, пишущих на JavaScript, в действительности никогда не изучали собственно JavaScript с азов. Их знание языка, как правило, накоплено за годы добавления фрагментов, найденных в Интернете и выполняющих ту или иную функцию. Они знают, как декларировать переменные, писать условные операторы и выполнять расчеты, но никогда не сидели с полным руководством по языку JavaScript и не изучали его с нуля. Чтобы облегчить себе жизнь, программисты обращаются к разнообразным библиотекам и интегрированным средам разработки (ИСР), таким как JQuery и YUI."  


Михаил Фленов

04 Февраля 2013

Михаил, есть же у хостеров возможность снять дисковое пространство, установить на него хотябы свою серверную Ubuntu, разместить сайт и спокойно жить. Вы же при этом всё сами настроите.


Не понял, что ты имеешь ввиду, но есть два популярных варианта - виртуальная выделенная машина с полным доступом (дорого) и разделяемый доступ (дешево) без полного доступа и где я установить ничего не могу, только изменить некоторые конфигурационные параметры.

Странно у вас всё, на работе MS SQL, разрабатываете PHP в NetBeans, пользуетесь Apple, и задаетесь идеей Linux-сервера.


А что странного? Меня постоянно обвиняют при первой возможности в продажности, а я на самом деле пользуюсь очень широким набором продуктов и технологий и ни одной из них на 100% не отдаю предпочтение.


Google

04 Февраля 2013

как говорил один прогер "Поначалу темпы разработки на ASP.NET резко падают, но потом стабильно растут. На PHP всё иначе: при большом объеме кода темпы разработки падают с начально очень высокого уровня, причем чем больше кода, тем хуже."
после ASP.NET MVC на PHP вообще не тянет я лучше потрачу больше времени со связкой С#,HTML,JS, чем буду тр.хать бедный PHP. Да он крут, можно намного быстрее сделать, да-же такие cms как WordPress, Joomla, 1с Битрикс(отступление: Пролог и эпилог вместо header and footer просто убил))) крутые, но я не любитель готового, а синтаксис C# для меня как alma mater.
Хз, может это глупо, я знаю PHP но прыгать с одного языка на другой не люблю так что ASP.NET Web Forms or ASP.NET MVC
(прыгай не прыгай а кто знает все, тот не знает ничего)


Mutant

05 Февраля 2013

Всякие полузнания хуже всякого незнания,слова Ломоносова,я не думаю что бы Бьёрн Страуструп,умел настраивать сервера,знать Direct,знать PHP,ЗНАТЬ С#,знать java,HTML,и продавать свои программы,которые толком не работают,Касперский я не думаю что он тоже все это знает,но он гуру в своей области,кто косвенно называет себя хакером и пишет что он заядлый программист,ну я не знаю,в России таким программистам только в комьютерной помощи работать и Windows настраивать,а за бугром такие программисты ценятся,мы это знаем благодаря этому блогу.


Google

05 Февраля 2013

Ну такая ситуация во многих странах, приходлось работать с индусами, и если честно мозговитые ребята, правда не очень аккуратные в коде.


Михаил Фленов

05 Февраля 2013

Всякие полузнания хуже всякого незнания


А знаешь почему?


Mutant

06 Февраля 2013

Я цитировал слова Ломоносова,я думаю он вложил глубокий смысл в эту фразу,но мнение других тоже интересно.


fcoder

08 Февраля 2013

Лимит скорей всего стоит, глобальный для всех. Для каждого в отдельности они не будут настраивать.
За такое администраторов надо бить по рукам. Потому что это потенциальная уязвимость. Злоумышленник при желании может положить весь хостинг, забив своими подключениями весь лимит.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне