Долго не писал по причине того, что купил себе VPS-хостинг. Для начала взял один месяц, опробовать, оценить возможности, может потребуется большие ресурсы? И соответственно был занят разруливанием проблем и настройкой софта на сервере.
Перед тем, как брать хостинг, очень долго выбирал. Было несколько альтернатив: www.firstvps.ru, www.fastvps.ru и www.keyweb.ru… У всех троих сервера расположены в Германии.
Первый у меня отпал по причине того, что условия у них довольно странные. За очень низкую стоимость предлагают использовать бесплатно лицензионную панель управления хостингом, при этом очень жесткие ограничения по использованию железа и трафика. И есть такой пункт в прайсе, как плата за использование ресурсов свыше тарифных. То есть фактически получается, что оплата не фиксированная и сколько заплатишь в месяц – никто не может сказать…
Оформил заказ на второй, то есть на www.fastvps.ru. По цене тоже самое выходит, но панель за дополнительную плату предоставляют. Все описано очень четко и понятно. Для начала взял самый дешевый тариф, где предоставляют процессор на 300Mhz, 100Mb оперативной памяти и 6Gb диска. В качестве операционной системы выбрал Debian 5.0… Сервер заказал без предустановленного программного обеспечения, все собирался ставить сам.
Как оказалось в дальнейшем, 100 мегабайт оперативной памяти для VPS – это очень мало. Так как уже после загрузки система ведения логов rsyslogd отъедала порядка 30 мегабайт памяти. О том, чтобы использовать апача даже мысли не возникало. После запуска mysql сервера свободной памяти не осталось совершенно.
Пришлось искать способы экономии оперативной памяти. Ситуацию усугубляло то, что хостер не предоставляет виртуальную память. Поиски в гугле дали свои результаты, нашел статьи по использованию ulimit -s. Способ заключается в установлении лимита использования стека программ в оперативной памяти. По умолчанию используется ограничение в 10Mb. А это очень большой значение. Автор рекомендовал использовать 1Mb, при этом указывал, что возможно еще большее уменьшение, вплоть до 64Kb, но это уже на свой страх и риск.
Устанавливаем:
#ulimit -s 1024
И прописываем эту команду в стартовых скриптах, чтобы значение лимита по стеку применялось и при перезагрузке сервера.
После того, как задал значение лимита по стеку в один мегабайт и перезагрузил сервисы, оказалось, что жить можно. Тот же сервис ведения логов rsyslogd стал занимать не более 6 мегабайт (определяю как совокупность виртуальной и оперативной памяти в выводе команды top, так как swap отсутствует как класс). База данных mysql в работе стала потреблять не 130 мегабайт, как раньше, а всего 40Mb. Питон вместо 65Mb порядка 35-40Mb… То есть при запущенных серверах еще оставалась свободная память.
В качестве веб-сервера попробовал две разработки, это lighttpd и cherokee. Второй довольно быстро отошел в сторону, так как требует большой размер оперативной памяти (даже после уменьшения размера стека данный сервер потреблял порядка 50 Mb) и его настройка довольно не тривиальна, конфигурационный файл специфического формата. А вот lighttpd просто изумительный сервер. Прост в настройке (я бы сказал, что он очень прост) и памяти в работе требует всего порядка 8-9 мегабайт. При этом один экземпляр сервера обслуживает все виртуальные сервера располагающиеся на вашей площадке.
В итоге при 100 мегабайтах оперативной памяти мне удалось установить wordpress и попробовать его в работе. Что интересно, загрузка процессора не превышала 30%, а использование памяти было в пределах нормы (даже свободные несколько мегабайт были), а все равно наблюдались небольшие тормоза (некая задумчивость сайта) при смене страниц. Причем сайт просто думал, думал и потом очень быстро выдавал саму страницу. Чем это обусловлено, я так пока и не понял.
Еще проблема возникла с доменным именем. Так как у меня тут нет панели управления хостинга, все пришлось настраивать вручную. И очень долго не мог разобраться в том, где же задавать привязку доменного имени с ип-адресом? Даже настраивал bind, сервер доменных имен… Но в итоге все разрешилось и разрешилось очень просто. Нужные мне опции были обнаружены в панели управления самого регистратора доменных имен. Управление зоной осуществляется в том случае, если использовать бесплатные dns-сервера самого регистратора. Там прописал айпи, осуществил привязку и через несколько часов доменное имя уже было активно. Если кому интересно, то доменные имена я регистрирую на www.2domains.ru за 100 рублей в зоне .ru
Сейчас разбираюсь с django. ByteFlow устанавливается, но нормально работать просто отказывается, выдавая ошибку. Нужно будет оттранслировать работу программы и понять, чего движку не хватает. Сам сервер покупал как раз для экспериментов с python или ruby. Пока остановился на питоне, но порой очень сильно тянет на бриллиант… Как обычно, время покажет, на чем в итоге остановлюсь… =)
Надо будет попробовать еще хостинг от www.keyweb.ru, там памяти уже 512 мегабайт, но не указана частота процессора. Интересно будет оценить производительность приложений на этих двух серверах при минимальных тарифах. Стоимость конечно различается и более чем в два раза. Но думаю, оно того стоит…
зы: swap на хостинге я пытался включить, используя не отдельный раздел, а файл. Но система безопасности хостинга selinux просто не позволила мне его подключить.
