Сколько VPS RAM мне понадобится для запуска Wordpress, Apache, SVN и MySQL?

20

У кого-нибудь есть приблизительный показатель того, сколько VPS RAM (без Burstable) мне нужно иметь Apache с WordPress и Subversion, а также экземпляр MySQL?

Apache будет хостить пару сайтов и SSL. MySQL будет иметь только базу данных Wordpress. Эти сайты имеют низкий трафик, менее 1 тыс. Посещений в день.

Кайл Брандт
источник

Ответы:

19

Помните, что каждый рабочий apache будет использовать около 20-25 МБ, поэтому, если ваши обращения в 1 КБ будут распределяться по времени в 8 часов в день, вы можете подумать о необходимости обслуживать только 0,03 запроса в секунду.

Предполагая, что весь ваш трафик сконцентрирован всего за 1 час в день (это, конечно, не так), вам придется обслуживать около 0,28 запросов в секунду.

Другая проблема заключается в том, сколько памяти занимает ваша БД, однако это легко узнать, и это довольно постоянная стоимость.

В худшем случае вам придется перенести всю БД (о, боже!, В этом случае вы рефакторинг SQL! :)) .. так что удвойте предыдущее число ..

Короткий ответ (ИМХО) 128 МБ будет достаточно, в изобилии. Ваш сервер будет простаивать, а память будет свободна в течение длительного времени, учитывая предполагаемый трафик.

У меня 20 доменов в VPS с 256 МБ с 3-х лет, все в порядке ... и общее количество просмотров около 1500-2000 ...

Хорошо, память сейчас дешевая, но, ребята ... вы знаете, сколько стоит один гигабайт?

PS: я говорю о системе Linux, конечно, а не об ОС, потребляющей 4 ГБ только для графического интерфейса :)

drAlberT
источник
13

При использовании трафика с низким трафиком, который вы описываете, у вас все должно быть в порядке с небольшим планом (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
tasaro
источник
У меня есть несколько из этих строк, упомянутых в apache2.conf. изменить их все? они маркируются: prefork MPM, worker MPM,event MPM
VSync
2

У меня были проблемы с моей памятью 512 МБ, пока я не переключился на FastCGI. Это значительно улучшило производительность. До этого у меня было 30 МБ свободного места (не считая кеша, конечно), и в итоге я получил более 100 МБ свободного места.

Ваш пробег может меняться, конечно, в зависимости от трафика вашего сайта. И как только трафик начинает увеличиваться, вы можете переключиться на nginx.

Чтобы купить себе некоторый комфорт, я увеличил до 1 ГБ.

Кстати, я размещен на prgmr.com , и я еще не видел, чтобы кто-то трогал их цены.

Мэтт Симмонс
источник
1
Спасибо за prgmr.com, мне нравится лозунг «Мы не думаем, что вы глупы». :-)
Кайл Брандт
Да, именно поэтому, вместе с тем, что Люк дает скидки на бюджетные вещи членам LOPSA, я и пошел с ними
Мэтт Симмонс
Я знаю, что он слишком стар, но теперь я думаю, что digitalocean - это место, где люди могут сказать, что никто не может победить их :)
Али
1

Я запускаю аналогичную настройку на VPS с 256 МБ ОЗУ, но вместо Apache запускаю lighttpd. Сначала я попробовал Apache, но это было слишком много для 256 МБ VPS. Если вы хотите использовать Apache, я бы сказал, что вы можете обойтись с 512 МБ ОЗУ.

В зависимости от того, кого вы используете для хостинга VPS, вы можете начать с меньшего VPS, а затем увеличить размер, если это необходимо, без необходимости перенастраивать сервер.

Джейсон Алфорд
источник
0

У вас должно быть все в порядке с 1 ГБ, но если хотите, используйте 2 ГБ, это важный шаг производительности для большинства современных ОС.

Chopper3
источник
1
1 ГБ было бы огромным за убийство 1 КБ в день.
ceejayoz
Вы предполагаете, что он работает под Linux, что если он захочет запустить Windows 2008 64-bit ???
Chopper3
Обратите внимание, что это для сервера под управлением Apache, MySQL и PHP. В частности, для Apache я бы не хотел использовать сервер Windows.
Томасруттер
0

Я использую nginx + php-fastcgi вместо Apache, но с очень похожей загрузкой приложения. Я использую svn + ssh для доступа к Subversion, поэтому не запускается процесс 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 увеличивают свои расходы при переходе к более крупным конфигурациям.

Джеймс Ф
источник
0

Я боролся с этим некоторое время.

Настройка Альберта Т сработала блестяще. Настройки 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, добавив следующую строку:

пропуск InnoDB


источник