Wednesday, February 6, 2013

Выбор VPS

Исследовал low-cost предложения виртуальных серверов VPS для хостинга. Далее результаты, дабы не забыть. Почему бы не в блог в этот раз. Не потеряется и может полезно будет кому-то. Через поиск люди тоже приходят.

Предисловие. Чтобы совсем не отстать от поезда прогресса, который перевозит всю жизнедеятельность юзеров в онлайн, решено наверстывать. Площадка для экспериментов - вэб-приложение на Django фреймворке, что тянет за собой Python. Вместо простого шареного хостинга будет unmanaged VPS для Linux тренировок. Кроме того, PostgreSQL, который рекомендуется для Django вместо MySQL. Ну и nginx до кучи вместо Apache.

После беглого осмотра предложений и чтения рекомендаций образовались следующие входные условия в примерном порядке приоритета:

- Денег не больше $20/mo для начала
- Отличные пинги и ширина канал для разных концов США, хорошие параметры для Европы
- Памяти чем будет больше, тем лучше. Отрезал нижнюю границу в 1GB
- Оказывается, есть уже куча предложений с RAID10 SSD. Было бы отлично!
- Выделенный кусок процессора, чем больше тем лучше. Это уже личное пожелание =)
- Автоматические ежедневные бэкапы на стороне хостера, чтобы спать спокойно.
- 30-дней возврат денег - приятная шука, если не уверен.

Крайне рекомендую сайт http://serverbear.com/benchmarks/vps в качестве отправного каталога. Естественно, там не все и гугл никто не отменял. О хостинге на serverbear стоит судить не по одному результату, а по сумме всех предлагаемых тарифов. Бывает, что один из результатов подозрительно высок, выводя тем самым упоминание провайдера в первые строчки рейтинга. В реальности, естественно, будет не так, если остальные тесты хуже. И главное: Там куча купонов на скидки почти для всех хостингов!


Общие впечатления

- Много провайдерских сайтов слеплены на коленке, возможно брошены и за ними уже никто не стоит. Купить выделенный сервер и настроить виртуализацию - плевое дело при соответствующем навыке. Неплохо бы все это еще поддерживать и отвечать за качество услуг. В трети случаев год в нижнем колонтитуле сайта все еще 2012. Уже февраль. Были случаи более застарелой болезни. Чемпиона по абсурду я не запомнил, но на главной странице весело раздавались скидки к Хеллоуину.

- Из первого пункта следуют следующие правила, чтобы сразу отсечь мертвых и халявщиков: 1) Смотрим актуальность (отметки времени, новости), 2) Проверям, что информация на разных страницах не противоречит 3) Смотрим раздел о компании 4) Если не предлагают еще и выделенные сервера - ничего хорошего не жди. Конечно, из всех правил есть исключения. При сомнениях нужно контактировать и, в некоторых случаях, получить ответ =)


OpenVZ vs XEN vs KVM

Первая трудность - предлагают разные технологий виртуализции. Начал разбираться. Получилось следующее, возможно что-то недопонял:

- KVM подобно XEN, поэтому дальше будет только про XEN

- Первое впечатлнеие пользователя - при одинаковых параметрах, VPS на OpenVZ получается производительнее и дешевле.

- В OpenVZ на виртуальной машине может быть только Linux, причем единое ядро операционной системы разделяется между всеми гостевыми контейнерами. Так получаем совсем небольшую плату за виртуализацию (1%) и, следовательно, бОльшую производительность. Теряем в гибкости, т.к. невозможно поставить Windows или выбрать другую версию ядра. Оно нам надо? =)

- В XEN вирутальные машины более полноценны и переплата ресурсов будет до 20%.

- Есть различие в виртуальной памяти. В XEN файл свопа полноценный и у каждого свой, в OpenVZ шарится между всеми. Как правило, провайдеры выделяют кусочек равный или больший основной RAM контейнера.

- В самом начале, пытаясь понять, что именно мне нужно и почему OpenVZ плохо, если он быстрее, наткнулся на рекомендацию: "никогда что не хоститься на OpenVZ, поскольку из-за особенностей виртуализации Apache кушает в 10 раз больше памяти". Это озадачило. Как такое может быть? Начал разбираться. В XEN виртуальная память "халявная" - это файл на персональном диске. Объемы выделяемого HDD сейчас десятки/сотни гигабайт, так что размер файла подкачки пернебрежимо мал. Так, допустим, программа может отъесть 10MB RAM и 100MB держать в swap. Далее, предполагаю, что раньше для VPS на OpenVZ vSwap провайдерами вообще не выделялся. Получаем, что та же программа съела бы 110MB RAM из ценного общего объема, скажем в 512MB. Таким образом, с большой натяжкой можно сказать, что в этом случае она потребила в 11 раз больше.

- По предыдущему пункту могу сказать, что 1) В OpenVZ есть vSwap 2) Согласно рекомендациям по правильной настройке, своп - это плохо, для максимальной производительности нужно стремиться к тому, чтобы все, что нужно, помещалось в RAM. Не помещается? Уменьшай параметры в настройках софта или покупай больше памяти. Виртуальная - для крайних случаев, чтобы процессы не падали от нехватки до тех пор, пока админ не сделал то, что в предыдущем предложении.

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


hetzner.com
Еще до того, как составил список требования, купил VPS у них, поскольку часто слышал упоминания. Однако, включил голову, подумал и понял, что мне нужно US-based. Отменил и без проблем получил деньги назад. Ничего не тестировал. Возможно, для Европы - хороший выбор.


a2hosting.com
Нашел его в списке дружественных серверов сайта Django. Заманили предложением автоматических скриптов для развертывания. Вписался. Скрипт с первого раза не сработал. После контакта со службой поддержки дело пошло и я получил установленный джанго 1.3.х, в то время как последняя версия 1.4.3. Все равно я не успокоюсь, значит буду руками обновлять, т.е. в чем толк их скриптов? Спросил в саппорте - сказали, что на знают когда обновят свои скрипты.

/* Примерно в это время у меня начало зарождаться сомнение, а соответствует ли то, что написано в спецификации тому, что я получаю. Эквивалентны ли два VPS от разных провайдеров с одинаковыми заявленными характеристиками? Если б dedicated, то ответ скорее всего был бы "Да". А тут мало ли чего навиртуализируют. Нужно как-то тестировать.*/

Тестирование
Для связки CPU-RAM разобрался как запускать UnixBench - оказалось предельно просто. Результат будет в виде двух цифр - количество попугаев для одного ядра и всех доступных ядер.

Для тестировани каналов использовал скрипт "wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash". Он же в конце выдает примерную скорость обмена с диском.


a2hosting.com (продолжение)
Вооруженный инструментами получил первые результаты. Для аж 8 процессорных ядер намерил 636/2360, что неплохо, но для 8-core маловато. А вот тестирование сети показало отстойные результаты: 1-3 MB/s по США и еще медленнее за пределами континента. Дата-центр в Мичигане. Написал запрос, считают ли они это нормальным. Получил утвердительный ответ. Кроме того, если в соответсвии с желаниями замахнуться на 1GB+SSD, то получится дороже $20. В то же время, солидная компания, с историей. Но не лежит душа, так что буду отменять. Должны вернуть деньги без вопросов.

wswd.net
Один из чемпионов на serverbear.com. Однако сайт у них... из категории не внушающих доверия. Новость всего одна 2010 года, однако год в футере указан 2013. Разделы на сайте странные. В общем, не объяснишь, тут нужно видеть. Однако, не удержался, дал шанс. За $17/mo получил 1GB+30GB SSD + 4 IP на всякий и 4-core CPU. UnixBench показал, забегая вперед, лучший результат среди всех кандидатов 1800/4500. Дата-центр в Далласе и не меньше 30 MB/s по США, около 10 в Европу и 5 в Японию. Отличные результаты! Все хорошо, кроме странного сайта... Пока записываем их в Избранное.

ramnode.com
Второй из трех low-cost "чемпионов" serverbear, также предлагающий SSD. Кроме OpenVZ есть возможность выбрать KVM, однако в данный момент они закончились. "Быстро разбирают" (С). Все фамилии сотрудников компании сокращены до одной буквы. Шифруются. Но сайт аккуратный. Походил кругами, понял, что если не понравится, то деньги не вернут. Все же решился. Со скидкой получилось за 1GB+30GB SSD + 4 CPU Cores всего около 10 долларов. Дата-центр в Атланте, другого выбрать нельзя. Результаты сетевых подключений раза в полтора-два хуже чем у wswd.net из Техаса. Но главный сюрприз - тест с Амстердамом выдает всего 0.5MB/s, тогда как с Лондоном все в порядке. Четыре ведра неплохи, хотя и хуже конкуретнта: 1716/3182. Обратился в службу поддержки по поводу "голландской" проблемы. Первый ответ: "А в чем проблема?", со второго пинка: "Ну да, а мы ничего поделать не можем". Через день сказали, что через несколько дней будет какое-то обновление. Ну хорошо, подождем, поскольку подтвердили, что 10 долларов не вернут. =) За максимальную сумму в $20 можно получить 2GB+40GB SSD, что очень неплохо. Но проблемы с сетью как-то не дают покоя.

vpsblast.com
Третий и последний в обзоре провайдер с настоящим SSD. Т.к. возврат денег присутствует в списке сервисов, то сразу решил пробовать. Более скупой на процессорные ядра хостер. Максимум можно получить всего 2, если уложиться в ограничение суммы. Возможно поэтому результат пропорционально масштабируется: 1580/2892. Это почти столько же, сколько у предыдущего хостера с четырьмя ядрами. С купоном за $20 получается 1.5GB+30GB SSD + 2 CPU Cores. Несколько дата-центров, среди которых есть Даллас, Техас и можно получить те же отличные скорости как у wswd.net. Сайт выглядит отлично, вместе с тем абсолютно анонимный и год внизу все еще торчит 2012. Раздолбайство?


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


digitalocean.com
Вот это удача! За $20 получаем 2GB + 40GB SSD + 2 cores. Это при том, что присутствует куча дополнительнх фич: бэкапы, snapshots, клонирование машин. Больше похоже на облачный сервис... Также на это указывает возможность почасовой оплаты. Радость была недолгой... Попробовал 4 ядра VPS и намерил совсем немного (результат не сохранился). Скорость IO окзалась тоже сравнительно мала - я бы не сказал, что это похоже на SSD. И финалочка: тест скорости сети показал очень низкие цифры... А ведь как было бы удобно со всеми этими клонированиями и почасовой оплатой! Хотя... может такой производительности будет достаточно?


linode.com
В какой-то момент надоело, что постоянно чего-то не хватает. Решил попробовать, для сравнения, что-то подороже. Скрипт для проверки сети, который я упомянул в начале, качает часть файлов с среверов Linode. Оказалось, они предлагают VPS и 7 дней возврата днег. За $20 можно получить только 512MB+24GB SSD + 4 CPU Cores с самым низким приоритетом (первый хостер, который указал, что в распеределении процессора есть приоритеты). В плане предоставляемых услуг - чемпион среди участников обзора. Бэкапы всех видов (правда за доп. деньги). Возможность распределния нагрузки по нескольким VPS (доп. деньги). Инструкции по настройки отказоустойчивой системы (IP Failover). И еще много чего. Круто, но выходит за рамки бюджета. Что касается тестов, то процессор 518/1717. Но самое большое удивление - это то, что тестовые файлы с серверов Linode загружаются медленне на VPS от Linode, чем, скажем в wswd или vpsblast. Это сюрприз.


К этому моменту картина начала проясняться. Если хочешь дешево и быстро, то будет без плюшек. Если с плюшками, то будет, либо медленно, либо дорого. Вот это открытие =)) Предпринял еще пару попыток. Выбирал только тех, кто вернет деньги, если что не так.



vp6.net
Можно выбрать один и трех видов виртуализации и были указаны ежедневные бэкапы, чем и заманили. Еще удобно, что можно улучшать все компоненты независимо друг от друга и построить более подходящую конфигурацию. Однако, эти изменения часто не проходят без обращения в службу поддержки. То одно, то другое не хочет апгрейдиться. После оплаты сунулся искать бэкапы - не нашел. Оказалось, они они вроде как есть, но управление недоступно пользователям. Самое больше разочарование - производительность. Во-первых, вместо обещанных при заказе ядер Xeon E5-2640 2.5GHz получил E5-2620 2.0GHz (рыночная стоимость процессоров, кстати, разливается больше чем в два раза ;). Во-вторых, даже этот процессор мог работать гораздо лучше, а тут всего 290/750 для четырех ядер. Античемпион обзора. Я в саппорт с вопросом "зачем так?". По поводу процессора, вместо того, чтобы просто исправиться, спросили, хочу ли я чтобы VPS пересли на нод с новым процессором? По поводу результатов теста: "так у нас куча народа, которых все устраивает"... Более того, сейчас пишу эту заметку и на всякий случаю проверяю все на сайтах, что бы не соврать. Они исправили описание на сайте!!! Поменяли модель процессора и убрали строчку о бэкапах. Делайте выводы, а я отменяю. Отмена правда идет со скрипом: день не работала панель управления.


budgetvm.com
Как-то обходил стороной, возможно из-за названия. А оказалось - совершенно зря. Отличный сайт без косяков, VPS и dedicated. Возможность выбрать тип виртуализации и один из четырех датацентров. Дешево! За $20 получаю OpenVZ 4GB RAM + 6 CPU cores. Для тестов купил дешевле: 2.5GB+5 cores. Тестирование показало что-то около 700/2000. Процессор, кстати, тот самый E5-2620. Сравните с предыдущим хостером! Уже научился выбирать Техас, что сразу показало нормальные скорости для США. 


ИТОГИ

Единственный выбор сделать не смог. Не знаю, что важнее: куча памяти, либо SSD и быстрый процессор. Попался доклад об оптимизации PostgreSQL для работы с Django. Человек сразу начал говорить, что самое главное - память, все остальное потом. В середине доклада сказал: "если вам повезло иметь SSD, то и нефик оптимизировать"... Потому остановился на двух OpenVZ вариантах:
1) wswd.net: 1GB+30GB SSD+4 cores for $17
2) budgetvn.com: 2.5GB+140GB+5 cores for $12.5

Будет продолжительный сравнительный поединок в реальных условиях. Кроме того, можно будет оценить надежность решений. Первый предлагает 99.99%, второй 100%. 


Другие возможные варианты
- Выделенный сервер. Например в ovh.com всего за $39.
- Amazon EC2 или другой полноценный облачный сервис.
- Google'вское облако для Python приложений.
- Fully-managed VPS, где все настроят и будут поддерживать. Сайты предлагающие такие решения очень загадочные и о цене говорят только в личной переписке. Один из вариантов: от $400/mo, рекомендуется $600/mo

Если есть что дополнить, исправить - прошу, не стесняйтесь.

13 comments:

  1. Занимательное исследование! Чувствуется автор серьезно подходит к теме.Проделано большое количество работы ! Потрачено много времени! Молодец!Спасибо!

    ReplyDelete
  2. Круто, канешна, молодец... я когда-то давно на впс хотел перейти, даже купил даже перенес, а там такие тормоза начались... Покупал у кого-то известного... сейчас уж и не вспомнить. Толи выбирать все же надо, толи классический хостинг, использующий весь сервак когда надо настолько быстрее... там как бы выделяется виртуальное количество ресурсов за которое я не должен в среднем выходить...
    если интересно дается мне
    Допустимая нагрузка:
    Процессор (MHZ): 850
    Память (MB): 720
    MySQL (%): 5

    текущая за вчера
    Процессор (MHZ): 216
    Память (MB): 38
    MySQL (%): 0.1

    можешь примерно судить че как расходуется... притом что у меня кеширование отключено, соответственно можно еще уменьшить sql и проц

    ReplyDelete
    Replies
    1. Инфа полезная, только ты, если можно, добавь еще немного статистики за вчера: сколько обработано запросов, визитов, страниц или что есть. Так будет нагляднее.

      Delete
    2. 05.02.2013 ВТ
      Посетители - 3 977
      Просмотры - 15 581

      По запросам к серверу могу только с работы поглядеть, т.е. завтра :)

      Delete
  3. Исправил кучу опечаток. Интересно, сколько еще осталось.

    ReplyDelete
  4. Вот же круто! А зачем? (с)

    Истинный смысл непонятен. Просто поэкспериментировать - зачем тратиться на хостинг, если можно виртуалку дома поставить. Файлы хранить - можно в гугле или дропбоксе, да в яндексе, наконец. Сайт сделать - зачем именно виртуальный сервер, когда просто хостинг дешевле. Ну может там не будет postgre, но зато можно найти такой, что тормозов не будет.

    ReplyDelete
    Replies
    1. У меня прежний был с постгре, только он вроде как медленее чем обычный mysql

      Delete
    2. Вируталки - пройденый этап. Файлы уже хранятся в SugarSync ;)

      Узнать и научиться - цель, но не единственная. По окончании процесса должно не только опыт обресть, но работающий конечный результат получить. Результат дома на виртуальной машине - промежуточный.

      Что касается шареного хостинга, так ты предложи вариант для: "просто хостинг дешевле. ... но зато можно найти такой, что тормозов не будет." =). В последний раз когда мне понадобился хостинг, я пробовал пожить на iPage, судя по обзорам и сайтам мониторинга - один из лучших среди шумной семейки хостгаторов-идикпапочке. Стоимость $9 в месяц, если не готов платить сразу за несколько лет вперед (мы же не даем рекламе на главной ввести нас в заблуждение? =). Получаем цирк: скорость отдачи страниц не на высоте и постоянно плавает в обе стороны, плюс, не часто, но бывает отваливается на на часик-несколько. После очередного полдневного простоя обозлился и забил. За $20/mo в pair.com тишина, скорость и спокойствие.

      Кроме хостинга можно найти применение для VPS. К примеру Redmine c git/svn репозиториями пока живет на бесплатном первый год микро-инстансе EC2. Потом за этот самый мелкий инстанс придется платить столько же, сколько за указанные выше VPS. К тому времени я уже буду знать: стоит ли оставлятиь всю крутость облака, либо переехать к себе.

      Даже если просто ради обучения. Штука полезная. Научился и вперед собирать по $390/mo за сервер, портить бизнес тем ребятам =)

      Ну и последнее - это же фан =) Играю в контрольную закупку.

      Delete
  5. Replies
    1. Протяжный вопль переходящий из вопросительного в восклицательный и обратно? =)

      Delete
  6. После прочтения поста тоже возник такой вопрос , но были срочные дела , а тут Oleg выразил основную мысль в своем вопросе...вот отсюда и восклицания. Спасибо! Интересно!

    ReplyDelete
  7. Я вот могу сказать пару слов в защиту вдс.
    По долгу службы(следуя обязательствам некоторых договоров) Ну жно делать промежуточные и окончательные отчеты, довольно большие и ресурсозатратные. Отдавать отчет нужно по http протоколу. Напрямую отдавать пхп скрипт - отвратительно поисковые боты как минимум заДДОСят этот файл вмиг, сервак будет только на этот один отчет работать(директивы запрета к индексации не все понимают), открывать только на определенные ip - тоже нельзя по условиям там всяким. Выход создавать страницу(html, xml) кроном и складывать туда, куда нужно. Но вот проблема в крон стоит время выполнения 30сек и никак не двигается, даже через службу поддержки. Оптимизировать скрипт можно конечно(делать промежуточные кэши), но система при этом теряет гибкость. Выход? Сделать это на вдс и отдавать скрипту сколько хочешь памяти и/или времени выполнения(мыж точно знаем что скрипт не повис :))

    ReplyDelete
    Replies
    1. Можно, придумать как-то оптимизации, т.к. 30 секунд - много, конечно. Если совсем никак не оптимизируется, то уж на этапы то разбивается точно. Делим на несколько этапов, кажый из которых короче 30 секунд. Сохраняем промежуточные результаты.

      Delete