Мой сайт получает много трафика в течение 2 часов в течение дня (2000 посещений в минуту). В остальное время дня трафика меньше (500 посещений в минуту). Я экспериментировал со значениями MaxClients и MaxSpareServers, но все еще получаю некоторое время простоя в часы пик.

Как рассчитать оптимальные значения для моей конфигурации, исходя из имеющегося у меня объема оперативной памяти?

Каждый процесс занимает около 36-40 Мб памяти.

             total       used       free     shared    buffers     cached
Mem:          3096        793       2302          0          0          0
-/+ buffers/cache:        793       2302
Swap:  

      0          0          0

Ценности, которые я использую сейчас

<IfModule prefork.c>
StartServers 10
MinSpareServers 22
MaxSpareServers 60
ServerLimit 90
MaxClients 90
MaxRequestsPerChild  400

ОБНОВЛЕНИЕ: Я нашел это у своего хостинг-провайдера.

http://kb.mediatemple.net/questions/246/(dv)+HOWTO:+Основы+настройки+производительности+Apache+(httpd)

У меня пакет Extreme, и я использовал 190 в MaxClients вместо 200. Я пробовал его полночи и получил несколько сообщений об ошибках в командной строке malloc, но при использовании команды free получил около 800 М в столбце free.

решение1

Если ваш сервер страдает от пиков, это может быть связано с тем, что Apache обрабатывает процессы и создает потоки очень медленно (в режиме mpm_prefork это 1 новый подпроцесс в секунду). Если вы знаете, что вам нужен «высокий трафик» (скажем, 200 процессов), то скажите Apache получитьвсегдаЭти 200 процессов готовы, даже если они ничего не делают 90% времени. Вы будете готовы, когда люди придут.

Посмотрите эту удобную презентацию (старая, но классная) http://www.techpresentations.org/Hacking_Apache_HTTP_Server_at_Yahoo!

Нет необходимости в StartServers, MaxSpareServers, MinSpareServers — только MaxClients (постоянный размер пула)

решение2

Ответ во многом зависит от типа контента, который вы обслуживаете. Это динамический или статический контент? Это широкий спектр контента или один документ?

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

решение3

Необходимо провести тестирование в зависимости от аппаратного обеспечения вашего сервера (особенно памяти) и эффективности сайта, который вы используете. Что происходит, когда у вас происходит простой? Вы достигаете установленных вами пределов? У вас заканчивается память?

решение4

Если вы находитесь в ситуации жесткого ограничения памяти (VPS), то вам может потребоваться уменьшить максимальное количество клиентов по умолчанию, чтобы предотвратить сбой подкачки.

Если нет,не трогай это.

Настройка потомков apache — это одна из тех вещей, как индивидуальная компиляция ядра, где люди в подавляющем большинстве приносят больше вреда, чем пользы, даже если вред заключается в том, что они просто тратят день без всякой пользы. Оказывается, ребята из проекта httpd в apache довольно хороши в том, что они делают! Я имею в виду, кто бы мог подумать?

Связанный контент