Есть ли у кого-нибудь приблизительная цифра того, сколько VPS ram (без burstable) мне нужно, чтобы иметь apache с wordpress и subversion, а также экземпляр MySQL?
Apache будет размещать пару сайтов и SSL. MySQL будет иметь только базу данных Wordpress. У этих сайтов низкий трафик, менее 1 тыс. Посещений в день.
Имейте в виду, что каждый воркер apache будет потреблять около 20-25 МБ, поэтому, если ваши 1k попаданий будут равномерно распределены по времени в 8 часов в день, вы можете подумать о том, чтобы обслуживать только 0,03 запроса в секунду.
Предполагая, что весь ваш трафик сконцентрирован всего за 1 час в день (это, конечно, не так), вам придется обслуживать около 0,28 запроса в секунду.
Другая проблема заключается в том, сколько памяти у вас есть в БД, однако это легко узнать, и это довольно фиксированная стоимость.
В худшем случае вам придется перенести всю БД (о боже, в этом случае рефакторинг SQL! :)) .. так что удвойте предыдущее число ..
Короткий ответ: (IMHO) 128MB хватит, с избытком. Ваш сервер будет простаивать, а память будет оставаться свободной в течение длительного времени, учитывая трафик, который вы себе представляете.
У меня есть 20 доменов на VPS с 256 МБ за 3 года, все в порядке ... и общее количество просмотров составляет около 1500-2000 ...
Хорошо, память сейчас дешевая, но, ребята ... вы знаете, сколько стоит один гигабайт?
PS: Я говорю о системе Linux, конечно, а не об ОС, потребляющей 4 ГБ только для графического интерфейса :)
Для описываемого вами использования с низким трафиком вам подойдет небольшой тарифный план (256–384 МБ). Когда Apache и MySQL установлены, их конфигурации по умолчанию предполагают, что они работают с большим объемом доступной оперативной памяти, что может вызвать проблемы. Используйте следующее как хорошую отправную точку и при необходимости отрегулируйте:
В вашем файле конфигурации Apache 2 (обычно находится в /etc/apache2/apache2.conf или /etc/apache2/httpd.conf):
StartServers 1
MinSpareServers 3
MaxSpareServers 6
ServerLimit 24
MaxClients 24
MaxRequestsPerChild 3000
В вашем файле конфигурации MySQL (обычно находится в /etc/mysql/my.cnf):
key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K
Кроме того, если вы не используете таблицы InnoDB, вам следует отключить поддержку InnoDB, добавив следующую строку:
skip-innodb
У меня были проблемы с моя на 512 МБ ОЗУ, пока я не переключился на FastCGI. Это значительно улучшило производительность. До тех пор у меня было 30 МБ свободного места (не считая кеша), а в итоге осталось более 100 МБ.
Конечно, ваш пробег может варьироваться в зависимости от посещаемости вашего сайта. И как только трафик начнет расти, вы можете переключиться на nginx.
Чтобы подкупить себя, я увеличил объем до 1 ГБ.
Кстати, меня устроили prgmr.com, и я еще не видел, чтобы кто-нибудь трогал их цены.
Я запускаю аналогичную настройку на VPS с 256 МБ ОЗУ, но использую lighttpd вместо Apache. Сначала я попробовал Apache, но этого было слишком много для VPS на 256 МБ. Если вы хотите использовать Apache, я бы сказал, что вы можете обойтись 512 МБ ОЗУ.
В зависимости от того, кого вы используете для своего VPS-хостинга, вы можете начать с VPS меньшего размера, а затем при необходимости увеличить размер, не перенастраивая сервер.
Вам должно быть хорошо с 1 ГБ, но если можете, выберите 2 ГБ, это важный шаг к повышению производительности для большинства современных ОС.
Я использую nginx + php-fastcgi вместо Apache, но с очень похожей загрузкой приложения. Я использую svn + ssh для доступа к подрывной деятельности, поэтому процесс svnserve не запущен, кроме случаев, когда я обращаюсь к репозиторию. Все это работает на Ubuntu 8 LTS.
Прямо сейчас я использую 174 МБ из 256 МБ, и веб-сайт довольно отзывчивый (среднее время отклика 500 мс для представлений Wordpress)
total used free shared buffers cached
Mem: 256 252 3 0 22 56
-/+ buffers/cache: 174 81
Swap: 511 12 499
Я бы рекомендовал взглянуть на легкий интерфейсный веб-сервер, такой как nginx или lighttpd, вместо Apache + mod_php. Даже проксирование Apache + mod_fastcgi на php-fastcgi потребует меньше памяти.
Если вы все-таки пойдете по маршруту Apache, моя интуиция подсказывает, что 512 МБ, вероятно, помогут. 1 или 2 ГБ памяти кажутся значительным излишеством, особенно с учетом того, как большинство провайдеров VPS увеличивают свои расходы, когда вы переходите к более крупным конфигурациям.
Некоторое время я боролся с этим.
Настройка Альберта сработала блестяще. Настройки mysql сделали ЯСную разницу, и теперь сайт отлично просматривается. http://laterboltz.com
В вашем файле конфигурации MySQL (обычно находится в /etc/mysql/my.cnf):
key_buffer = 16K max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K
Кроме того, если вы не используете таблицы InnoDB, вам следует отключить поддержку InnoDB, добавив следующую строку:
skip-innodb