VPS-хостинг
Долго не писал по причине того, что купил себе 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 просто не позволила мне его подключить.

Надо же, вот уж не предполагал, что wordporess можно установить на 100 мб!
Спасибо за советы, на удивление много для себя почерпнул в этой записи.
Особая благодарность за ссылку на 2domains.
Можно! И не только установить, но и использовать! =)
Рад помочь!
«#ulimit -s 1024
И прописываем эту команду в стартовых скриптах»
А можно подробней, в каких именно скриптах эту команду надо прописывать?
На одном сайте прочитал как уменьшить нагрузку на сервер:
Если на сервере менее 150мб памяти, правим конфиг mysql:
в файле /etc/my.cnf прописать:
[mysqld]
key_buffer = 16K
max_allowed_packet = 2M
thread_stack = 64K
thread_cache_size = 4
skip-innodb
Сократим нагрузку apache:
в файле /etc/httpd/conf/httpd.conf прописать:
StartServers 1
MinSpareServers 1
MaxSpareServers 2 # можно поставить и больше, с соответственно большим расходом памяти.
MaxClients 50
MaxRequestsPerChild 4000
Вот теперь думаю какой способ лучше
«swap на хостинге я пытался включить, используя не отдельный раздел, а файл»
Надо и мне на моем хостинге попробовать.
Стартовые скрипты – зависит от типа операционной системы, что стоит на VPS. Подробнее сказать не могу, уж больно много вариантов.
А какой способ выбрать – зависит от того, что лучше, а выбрать экспериментально.
«Стартовые скрипты – зависит от типа операционной системы, что стоит на VPS»
Ну так ведь у вас шла речь про Debian на сервере, вот и расскажите. Debian многие выбирают себе в качестве операционной системы на сервере. А остальным может тоже ваш совет поможет сориентироваться по ходу в их операционной системе
http://www.citforum.ru/operating_systems/linux/debian_reference/ch-system.shtml
раздел 2.4