无法解释的负载平均CentOS Linux php-fpm

时间:2012-03-01 12:53:29

标签: linux centos php

我们在服务器上遇到“平均负载”的奇怪问题,我们试图解决问题,但没有运气,现在我们试图找到帮助。

我们有一个VPS CentOS Linux 2.6.18-274.18.1.el5 x86_64 GNU / Linux有2个物理内核,2GB RAM,这个服务器刚刚运行php-fpm 5.3.10没有运行其他服务。

php通过TCP使用Redis(每秒约1000个请求),Redis服务器每秒可以轻松地发出60000个请求,并且LA为0.01。

症状:

洛杉矶从16到40的随机峰值没有明显的原因。尽管如此,CPU使用率约为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慢日志(5s):

[pool www] pid 7016
script_filename = /var/www/myapp/index.php
[0x000000001820d230] session_start() /var/www/myapp/index.php:10

index.php的第10行:

<?php
$starttime=microtime(TRUE);
srand();

ob_start();

error_reporting(E_ALL);
ini_set('display_errors',1);

session_start();

位于内存分区的会话...... IO没有问题。

配置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

如果有人有任何建议如何降低洛杉矶和延误,请。

2 个答案:

答案 0 :(得分:1)

平均负载是衡量任何给定时间运行队列中的进程数量的指标。它本身并不是衡量机器过载情况的指标,而且平均负载平均值有时可能不会出现问题 - 这并不一定意味着机器过载。

如果没有关于为什么您认为负载平均值存在问题的额外信息以及机器遇到的负载条件,则很难更详细地回答。

答案 1 :(得分:0)

我认为2GB内存的PHP配置很高,尝试减少start_servers 检查此配置Install PHP 5.3.10 with PHP-FPM on CentOS 6.2