у нас странная проблема с «Средняя нагрузка» на сервере, мы пытались решить проблему, но безуспешно, и теперь мы пытаемся найти помощь.
У нас есть VPS CentOS Linux 2.6.18-274.18.1.el5 x86_64 GNU / Linux с 2 физическими ядрами, 2 ГБ ОЗУ, этот сервер просто работает на php-fpm 5.3.10, на нем не запущены другие службы.
php с использованием Redis через TCP (~ 1000 запросов наво-вторых), сервер Redis может легко выполнять 60000 запросов в секунду и иметь LA 0,01.
Симптомы:
Случайные пики LA от 16 до 40 без явной причины.Несмотря на этот факт, загрузка ЦП составляет ~ 40%, ~ 10% использования системы и памяти составляет менее половины.
Cpu0 : 36.7%us, 11.9%sy, 0.0%ni, 44.2%id, 0.0%wa, 0.0%hi, 7.2%si, 0.0%st
Cpu1 : 39.8%us, 10.0%sy, 0.0%ni, 26.2%id, 0.0%wa, 10.0%hi, 14.0%si, 0.0%st
Mem: 2058776k total, 1241500k used, 817276k free, 160172k buffers
Swap: 1048568k total, 0k used, 1048568k free, 876888k cached
Пики не связаны с сетевой активностью или заданиями cron.Количество запросов к php в секунду составляет ~ 70.
Медленный журнал PHP показывает нам, что многие скрипты не запускаются даже через 5 секунд!php Slow log (5s):
[pool www] pid 7016
script_filename = /var/www/myapp/index.php
[0x000000001820d230] session_start() /var/www/myapp/index.php:10
10 первых строк index.php:
<?php
$starttime=microtime(TRUE);
srand();
ob_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
session_start();
Сеансы, расположенные в разделе памяти ... нет проблем с IO.
config php-fpm:
listen.backlog = 18192
pm = dynamic
pm.max_children = 256
pm.start_servers = 48
pm.min_spare_servers = 16
pm.max_spare_servers = 64
pm.max_requests = 512
Пожалуйста, если у кого-нибудь есть предложения, как снизить LA, и задержки.