Pull to refresh

Как выбрать VPS хостинг

Reading time 4 min
Views 24K
Неприятности начались с того момента, когда мой любимый американский хостер вдруг перенес мой многолетний аккаунт на новый сервер и установил хитрый лимит на память php для всего аккаунта. И вроде бы memory_limit 90M на первый взгляд достаточно для любого сайта, но этот лимит действует на весь аккаунт в целом. Т.е. сайты, расположенные на одном аккаунте, начинают «душить» друг друга. Начались проблемы с форумом phpbb посещаемостью всего 2000 уников в сутки. При превышении лимита памяти сервер отдавал 500 ошибку.

Опытные люди, не читая далее, сразу скажут, что предложила мне техподдержка: конечно же переход на их VPS. Для отечественного хостинга это обычное дело, но от буржуев я такое услышал впервые. Выход в таком случае один — переход на другой хостинг, ибо с «террористами переговоров не ведут» да и 15$ за их 300Mb VPS мне показалось несколько дороговато.

Выбрал Open VZ VPS в России 768Mb за ~500 рублей. Все поставил, вроде работает. Но тут черт меня дернул перед сменой DNS проверить нагрузку с помощью loadimpact.com и меня накрыл тихий ужас: при одновременном доступе к сайту 50 посетителей страницы грузились по 60 секунд.

image

Память при всем при этом колебалась в районе 300 Мб (load average: 0.67 0.55 0.52). Быстренько перекинул сайт на Hyper V с такими же параметрами, и о чудо:

image

Мне бы тогда задуматься, на моя жаба уже подумала за меня: Hyper стоил в два раза дороже и, оказалось, неспроста.

Жаба велела мне поставить nginx на Open VZ, и получилась странная картинка:

image

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

Шли дни, а вместе с ними росло время загрузки страницы (данные из google.com/webmasters):

image

Я вычеркнул у себя из памяти месяц борьбы за счастливое существование своего сайта у этого хостера. Много всего было сделано: top, htop, iotop, atop, dstat. Голова отказывается вспоминать весь этот бардак. Единственные данные, которые мне не удалось получить — это нагрузка на диск, потому что в Open VZ закрыт доступ к ядру системы. Мой скромный вывод таков, что на сервере присутствует какой-то клиент, создающий серьезную нагрузку на диск, мешающую остальным нормально работать. Почему такую ситуацию терпит хостер, я так и не понял.

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

image

Но беда пришла с другой стороны. Сайт стал постоянно падать с ошибкой Unknown reason (e.g. unexpected eof, timeout) — спасибо хост-трекеру за такую информацию.

Есть еще один бесплатный сервис мониторинга сайтов — basicstate.com, он то и натолкнул меня на мысль, что в случае с данным облачным хостингом присутствует оверселлинг по трафику.

date_________uptime____dns_____connect__request____ttfb______ttlb
2011-02-22____97.94____0.114____0.265____0.265____1.352____1.731
2011-02-21____97.94____0.285____0.553____0.553____1.821____2.270
2011-02-20____97.94____0.219____0.373____0.373____1.913____2.214
2011-02-19____94.12____0.079____0.234____0.234____1.500____1.792
2011-02-18____97.94____0.169____0.320____0.320____0.732____1.033

Т.е. внутри облака все хорошо, все летает. Но канал, ведущий на облако, не резиновый, и он тупо забивается трафиком от клиентов. Посмотрите на разницу между TTFB (Time To First Byte) и TTLB (Time To Last Byte) Теоретически все верно, данные имеют объем, не могут же они пройти по каналу мгновенно. Оказывается, могут:

date_________uptime____dns_____connect__request____ttfb______ttlb
2011-03-03___100.00____0.063____0.214____0.214____0.672____0.672
2011-03-02___100.00____0.010____0.161____0.161____0.624____0.624
2011-03-01___100.00____0.004____0.154____0.154____0.607____0.608
2011-02-28___100.00____0.008____0.158____0.159____0.637____0.638
2011-02-27___100.00____0.010____0.255____0.255____0.734____0.734
2011-02-26___100.00____0.007____0.157____0.157____0.622____0.622
2011-02-25___100.00____0.007____0.158____0.158____0.617____0.617
2011-02-24___100.00____0.006____0.187____0.187____0.743____0.870
2011-02-23___100.00____0.031____0.183____0.183____0.878____1.028
2011-02-22____97.94____0.114____0.265____0.265____1.352____1.731
2011-02-21____97.94____0.285____0.553____0.553____1.821____2.270
2011-02-20____97.94____0.219____0.373____0.373____1.913____2.214
2011-02-19____94.12____0.079____0.234____0.234____1.500____1.792
2011-02-18____97.94____0.169____0.320____0.320____0.732____1.033

Данные с 23 февраля — это другой облачный хостинг с нормальным каналом и небольшим числом клиентов. Собственно таким и должен быть VPS хостинг.

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

1)Проверяем нагрузку через loadimpact.com Проверку надо делать сразу по IP, до смены DNS, потому что проверяем хостинг, а не сам сайт. График должен быть ровным при любой нагрузке, время меньше секунды. Дополнительно смотрим результаты top в онлайне, чтобы понять, сколько наш сайт потребляет памяти и процессора для выбора оптимальной конфигурации VPS.

2)Если по первому пункту все нормально, то меняем DNS. Неделю смотрим результаты host-tracker и basicstate.com и если все примерно так:
uptime_____dns____сonnect__request____ttfb______ttlb
100.00____0.063____0.214____0.214____0.672____0.672

То идем пить пиво. Все.
Tags:
Hubs:
+73
Comments 95
Comments Comments 95

Articles