2012-03-01 12 views
1

サーバーに「負荷平均」という奇妙な問題がありますが、問題を解決しようとしましたが問題は解決できませんでした。説明できない負荷の平均CentOS Linux php-fpm

私たちはVPS CentOS Linux 2.6.18-274.18.1.el5を持っています.2つの物理コア、2GBのRAMを搭載したGNU/Linuxです。このサーバは、単にphp-fpm 5.3.10を実行しています。

php TCP経由のRedis(〜1000リクエスト/秒)を使用すると、Redisサーバーは簡単に60000リクエスト/秒を作成でき、LAは0.01です。

症状:明らかな理由で16〜40からLAの

ランダムスパイク。この事実にもかかわらず、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 

してくださいいくつかのいずれかの方法LA、および遅延を低減するために、任意の提案を持っている場合。

答えて

1

負荷平均は、任意の時点で実行キューに格納されているプロセス数の尺度です。それは本質的にあなたのマシンに過負荷がかかっているかの尺度ではなく、あなたの負荷平均がスパイクになっても問題ではないかもしれません。マシンが過負荷になっているとは限りません。

負荷平均が問題であると考えられる理由と、マシンが経験している負荷条件の種類についての詳細な情報がないと、詳細に答えることは難しいです。

+0

通常の実行を約100msの最大かかりますが、LAは、スクリプトの実行をスパイクされた場合でも、より5second取りますか。 -rwxrwxrwx 1 root root 27M Mar 1 05:11 /var/log/php-fpm/www-slow.log 低速の低速は1週間から27Mbですが、これは正常な状態ではありません。 – DooVDe

+0

あなたの質問は負荷平均とは関係ありません。なぜなら、 "なぜこのスクリプトは突然実行に時間がかかります"ということです。あなたはその質問をデバッグするために何をしましたか? – Perry

+0

私たちはstrace、apdを開発用クローンサーバで試し、php-fpmからApacheに切り替えました。スクリプトをデバッグして何も見つかりませんでした。私はどこを見てもわからないと言っているのです。 すべての低速ログの終わりは、socket_write、socket_readまたはsession_startです。 TCP/IP設定で何か問題がありますか? – DooVDe

関連する問題