У меня проблема с перегрузкой сервера на виртуальном сервере Apache с 8 ГБ ОЗУ 1and1.com. Сервер становится очень медленным, когда он достигает 100+ активных пользователей (согласно аналитике Google) во время выбора. Я провел тесты siege & loadimpact и внес некоторые изменения в конфигурацию файла httpd.conf, но не знаю, достаточно ли этого. Может мне просто нужно больше оперативной памяти типа 16GB или мне что-то не хватает? Я знаю, что могу оптимизировать программирование, но не вижу, как это значительно повысит производительность. Интересный факт: использование памяти Parallels во время этой перегрузки отображает только 10-20%, но сайт такой медленный! Помогите!
Avg. site file size is 1.5MB (We have lots of pictures)
Avg. load time: 1.8s (during normal days) - 1,600 page views, 270 highest sessions p/h
Это аналитическая статистика очень медленного серверного дня:
Highest sessions per hour: 420 - 700
Total sessions: 4,300 - 37,000
Page views: 25,300 - 361,500
Avg. Session duration: 9min
Данные сервера предоставлены 1and1:
Webspace: 200GB
RAM: 8GB
Unlimited Traffic: yes
Operating System: CentOS 6 minimal system (64-bit)
cpu cores: 8
Processors: 4
Processor: AMD Opteron(tm) Processor 6378
Http.conf
Timeout 75
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 3
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 220
MaxClients 220
MaxRequestsPerChild 5000
</IfModule>
my.conf
max_allowed_packet = 1G
max_connections = 500
max_user_connections = 500
thread_cache_size = 500
query_cache_type = 1
query_cache_size = 128M
sort_buffer_size = 2M
tmp_table_size = 32M
read_buffer_size = 128k
read_rnd_buffer_size = 256k
join_buffer_size = 128k
table_definition_cache = 400
table_open_cache = 400
key_buffer_size = 500M
max_heap_table_size = 64M
innodb_buffer_pool_size = 500M
innodb_additional_mem_pool_size = 20M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 12M
innodb_log_file_size = 256M
Я делаю что-то неправильно? Я ценю всю помощь!
Первое, на что вам нужно обратить внимание, - это определить, где находится ваше узкое место.
Вообще говоря, такого рода проблемы с производительностью будут в приложении, а не в конфигурации веб-сервера.
Как только вы поймете свое узкое место, вы сможете облегчить его с помощью программного обеспечения вашего веб-сервера (точные методы зависят от того, какой код приложения вы используете и как вы подключаете его к своему веб-серверу, но есть много информация о том, как добиться максимальной производительности от FastCGI или mod_passenger
), но там вы сможете только так много сделать.
Подводя итог: не начинайте с веб-сервера, начните с отслеживания узкого места и устранения его - если вы обнаружите, что на своем веб-сервере есть что-то, что вы можете сделать, чтобы помочь, попробуйте это, но вряд ли это удастся. исправить проблему с производительностью вашего приложения.