サーバーに「負荷平均」という奇妙な問題がありますが、問題を解決しようとしましたが問題は解決できませんでした。説明できない負荷の平均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、および遅延を低減するために、任意の提案を持っている場合。
通常の実行を約100msの最大かかりますが、LAは、スクリプトの実行をスパイクされた場合でも、より5second取りますか。 -rwxrwxrwx 1 root root 27M Mar 1 05:11 /var/log/php-fpm/www-slow.log 低速の低速は1週間から27Mbですが、これは正常な状態ではありません。 – DooVDe
あなたの質問は負荷平均とは関係ありません。なぜなら、 "なぜこのスクリプトは突然実行に時間がかかります"ということです。あなたはその質問をデバッグするために何をしましたか? – Perry
私たちはstrace、apdを開発用クローンサーバで試し、php-fpmからApacheに切り替えました。スクリプトをデバッグして何も見つかりませんでした。私はどこを見てもわからないと言っているのです。 すべての低速ログの終わりは、socket_write、socket_readまたはsession_startです。 TCP/IP設定で何か問題がありますか? – DooVDe