Назад |
Перейти на главную страницу
настройка выделенного сервера apache httpd и настройка производительности
У меня есть следующий выделенный ящик, на который я устанавливаю только сервер apache httpd, какие параметры в httpd.conf мне следует настроить для достижения максимальной производительности?
cat / proc / cpuinfo показывает 8 процессоров (ниже вставлен только один, остальные идентичны)
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
stepping : 6
cpu MHz : 2333.470
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
bogomips : 4666.94
clflush size : 64
cache_alignment : 64
address sizes : 38 bits physical, 48 bits virtual
бесплатно -m
total used free shared buffers cached
Mem: 16054 15546 508 0 251 8084
-/+ buffers/cache: 7210 8843
Swap: 16370 0 16370
Несколько комментариев, которые могут вам помочь:
- Параметры Apache, которые оказывают наибольшее влияние на производительность, - это объем памяти, который занимает каждый экземпляр (зависит от количества загруженных модов и их конфигурации), а также количество установленных MaxClients / серверов. Если Apache действительно единственное, что нужно на сервере, то вы обычно хотите удалить любой мод, который вам не нужен, а затем увеличить MaxClients / Servers, чтобы использовать как можно больше оперативной памяти, но не настолько, чтобы начать использовать своп. Чтобы определить это, вам нужно протестировать конфигурацию ...
- Я настоятельно рекомендую провести стресс-тестирование приложения с использованием ab / siege или аналогичного фреймворка. Это позволит вам определить оптимальные настройки для вашего приложения, а также даст вам некоторые точные (е) цифры возможностей вашего оборудования. Например, вы можете обнаружить, что с настройками по умолчанию вы можете получать 500 запросов в секунду, не мигая, и в этом случае трата времени на оптимизацию будет в основном пустой тратой. С другой стороны, он может сказать вам, что вы можете получить в лучшем случае только 20 запросов в секунду, что означает пересмотр всей архитектуры приложения.
- Повторно запускайте стресс-тест каждый раз, когда вы вносите изменения в конфигурацию, программное обеспечение или оборудование системы. Это расскажет вам, какой эффект все имеет, и позволит вам принимать более обоснованные решения для оптимизации. Если вы не измеряете / не тестируете, есть риск потратить много времени / денег на работу над вещами, которые не имеют никакого эффекта (или, что еще хуже, действительно имеют отрицательный эффект).
- Рассмотрите возможность использования другого программного обеспечения для динамической части и части балансировки прокси / нагрузки, хотя ваш сервер достаточно мощный, поэтому это может не иметь большого значения.
Вам следует подумать об использовании HAProxy или nginx в качестве прокси / балансировщика нагрузки, Apache не очень хорош в этом, потому что не может обрабатывать запросы асинхронно. Apache просто не предназначен для такого рода задач. Использование прокси / балансировщика с асинхронным вводом-выводом может сэкономить вам много ресурсов. И вам не нужен такой большой сервер для прокси / балансировки 100 запросов в секунду, я смог проксировать около 500 запросов в секунду с помощью HAProxy на экземпляре Rackspace Cloud объемом 512 МБ (он использовал четырехъядерный ЦП, но LA был около 0,1 обычно на этом хосте, поэтому мне просто не нужно было столько вычислительной мощности).