Debian.pro/

Про Debian


Проблемы выбора. Выбираем VPS VDS на основе OpenVZ.

Статья немного не соответствует тематике блога. Тем не менее, чаще всего, я решают именно проблемы людей, которые не умеют выбирать VPS. За последние 2 недели — уже 4 человека написали с просьбой глянуть что там. Забавно. Лето, все хостеры видимо стали офигевать =)

По поводу заголовка — OpenVZ-контейнеры нельзя назвать VDS (виртуальными выделенными серверами). Это всего лишь VPS. Приватный сервер. Просто пытаюсь подружиться с гуглом =)

Про OpenVZ говорят много. В большинстве — то что VPS на основе OpenVZ ни в коем случае покупать нельзя, ибо проблемы и всё такое бу-бу-бу. Ну чтож, флаг троллям в руки, а я постараюсь рассказать, как же всё таки выбрать VPS на основе OpenVZ.

Сначала перечислим все плюсы OpenVZ в сравнении с остальными технологиями виртуализации. OpenVZ — дешево. Всё. Субъективные плюсы закончены.
Если же судить объективно — то есть вероятность того, что OpenVZ — шустр, удобен, прост и всё такое. Но это только у хороших хостеров. Как их найти — мы сегодня и поговорим.

Ограничим область применения OpenVZ машинок — это только хостинг, но с чётко ограниченными ресурсами. Никаких игровых серверов, никаких VPN серверов, никаких трафикогенерирующих приложений. Только сайты, почта ну и файлопомойка.

Первый и самый важный вопрос, который нам предстоит выяснить — какую память лимитирует хостер. Если это VIRT — разворачиваемся и уходим. Да-да, мастерхост. Мы с вами шикарно пофлудили в тикетах, но идите ка вы в жопу. Всё же не вчера родился, и знаю, что эффективно лимитировать, а что нет. Ну и да — это ваши заботы.
Итак. Ещё раз. Для упертых. Если хостер лимитирует VIRT память — бегите не оглядываясь. Вы получите жуткой геморрой с конфигурированием системы. Если гемморой вы не переживете — в один прекрасный день у вас перестанут форкаться процессы. Существует вероятность, что и перезагрузить VPS вы не сможете. VIRT память — это резервируемая приложениями память (и swap и реальная). Каждый процесс апача2 резервирует в 10 раз больше, чем реально потребляет. Настроить можно, но не нужно — саму проблему с памятью это никак не решит.

Если предоставляются тестовые VPS — вообще прекрасно. Если нет — попросите сделать следующее вашего друга, который размещается на впске от выбранного хостера. Заходим и выполняем 4 простых действия:
1) пишем memory в консоль. Если команда не найдена — это хорошо. Если в ответ вам покажут, сколько вы кушаете процессора и памяти — закрываем консоль и никогда больше не ходим на сайт этого хостера.
2) открываем htop (или top и тыкаем циферь 1 на клавиатуре). Виртуальных процессоров должно быть в количестве «1 единица». Если их хотя бы 2 — разворачиваемся и уходим. Либо админ не асилил корректно настроить раздачу ЦПУ, либо там используется одна из быдло надстроек для виртуализации. В общем делать там нечего.
3) pv /dev/zero > /root/1. Не забудьте установить сам pv. Если выдаёт 10 мб/c+ — то это очень даже неплохо. Примерная скорость записи на диск.
4) pv /root/1 > /dev/null 20 мб/c+ — неплохо. В идеале — хотя бы 40. Скорость чтения с диска.
Скорость сети, думаю, сами проверите. Если не знаете как — сделайте это при помощи rtorrent. Только раздачи отключите, а то забанят оперативно.

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

Можно спросить у хостера, какую панель он использует на хост-серверах. Если это vdsmanager (от ispsystem) — то не проходим мимо. Там по дефолту всё хорошо, особенно если хостер не оверселлит. Если parallels — изучаем с пристрастием. В большинстве случаев такие VDSы — шлак. Но попадаются и интересные экземпляры.

Зададим щепетильный вопрос хостеру про оверселлинг. Если хостер выбрал OpenVZ — он оверселлит в 99% случаев. Нормальным показателем оверселла является 15-20%. К сожалению, это мы никак проверить не сможем и приходится полагаться лишь на честность хостера. Или на инсайдерскую информацию =)

Неплохо будет, если вы получите информацию по следующим характеристикам VPSов: kmemsize, lockedpages, privvmpages, tcpsndbuf, tcprcvbuf, numfile, numproc, diskinodes
Про эти характеристики вполне понятным языком описано у рег.ру — www.reg.ru/vps/limits/
Копипастить не буду, можете сами сходить к ним на сайт. Придерживаться с этими характеристиками нужно принципа «чем больше, тем лучше».
В гугле можно посмотреть подробные описания этих характеристик. Может быть, как-нибудь, не поленюсь и распишу.
Ещё постараюсь написать про то, как правильно настроить OpenVZ.

И напоследок — лучше всё же возьмите VDS на KVM или выделенный сервер


Комментарии (10):

  1. К Вашей рекомендации о KVM: Я читал где-то, что KVM немного I/0 теряет, также нельзя там DISK I/0 как-либо ограничивать. Т.е. кто-то имея жирную и прожорливую базу, ужасно много посетителей, т.е. много логов, может сильно тормозить работу всего сервера. Имеются у Вас по этому поводу какие-то идеи как это ограничить?

  2. У меня скриптик есть, который делает ionice -pXXXX -c3 прожорливым виртуалкам. А вообще в общем случае достаточно просто всем виртуалкам поставить минимальный приоритет в Ionice.

  3. Grey :

    а почему VZ VPS-ка не идет под VPN если есть возможность включить TUN/TAP?

  4. Потому что хостеры часто отказываются разрешать контейнеру tun. Если вы рут — вполне можно)

  5. Grey :

    Хостер TUN включил. Случем не подкинете ссылку на установку/настройку OpenVPN ВКЛЮЧАЮЩУЮ в себя пункт создания устройства TUN в системе? т.е. заточенную под VPS.
    то что я нашел, устройство создается в dev/net/tun, но сервис OVPN не стартует :(

  6. http://www.ossg.ru/wiki/Admin/OpenVPN%20%D0%B8%20venet вот это может помочь.

    А вообще — показывайте мне syslog в почту после попытки запуска openvpn и dmesg — скажу, почему не работает.

  7. Grey :

    Спасибо за линк и предложение. Попробую разобраться сам (надо повышать скилл :) ) а если не получится, обращусь. )

  8. Ок. Удачно разобраться.

  9. Сергей :

    …Виртуальных процессоров должно быть в количестве «1 единица». Если их хотя бы 2 – разворачиваемся и уходим…
    Нельзя ли в двух словах, почему это плохо и чем это грозит?

  10. Ну это верно только для тех случаев, когда процессора действительно должно быть 1 ядро. А вы видите на самом деле все ядра реального процессора.
    Грозит это тем, что вы попали на openvz-хост с древним багнутым ядром, в котором есть проблемы с распределением памяти, шедулингом CPU и прочими штуками. Как следствие — вы можете не получить свои ресурсы (да и вряд ли получите).
    Сама по себе видимость всех ядер не грозит ничем. Это просто признак глючного ведра.

Написать комментарий