私のサイトはここ数日遅くなりました...いくつかの画像が表示されません...私は得ました
408 Request Time-out: Server timeout waiting for the HTTP request from the client
これまでに起こったことのない数回。
私は少しパフォーマンスチェックをしました、基本的にsshのトップコマンド
これが結果です
http://up.akstube.com/images/vdtebe9sr10si1eyycd.jpg
ご覧のとおり、メモリ使用量は非常に高いです...または私はそう思います。
サーバーを再起動しました...サーバーはダウンしましたが、しばらくすると再びアップします....(これは再起動後約1時間です)
http://up.akstube.com/images/49xjeylxy0st7vwn4ojl.png
30分後=>
top - 16:14:22 up 1:56, 2 users, load average: 0.62, 0.90, 1.15
Tasks: 303 total, 1 running, 302 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.0%us, 0.2%sy, 0.0%ni, 91.4%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 32840004k total, 21037648k used, 11802356k free, 430832k buffers
Swap: 1050616k total, 0k used, 1050616k free, 16527108k cached
たった今
[root@ns4008353 ~]# top
top - 16:33:25 up 2:15, 2 users, load average: 0.88, 0.94, 0.98
Tasks: 303 total, 3 running, 300 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.8%us, 0.2%sy, 0.0%ni, 92.8%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 32840004k total, 22388160k used, 10451844k free, 434964k buffers
Swap: 1050616k total, 0k used, 1050616k free, 17324104k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7532 mysql 20 0 3750m 492m 5556 S 18.0 1.5 49:53.58 mysqld
12903 Apache 20 0 232m 40m 4864 S 16.3 0.1 0:56.74 httpd
7748 Apache 20 0 235m 43m 5256 S 11.6 0.1 1:33.36 httpd
8010 Apache 20 0 262m 70m 4856 R 6.7 0.2 1:32.05 httpd
7747 Apache 20 0 235m 43m 5220 S 1.3 0.1 1:06.37 httpd
7749 Apache 20 0 222m 30m 5164 S 1.3 0.1 1:58.53 httpd
7996 Apache 20 0 250m 59m 5476 S 1.3 0.2 1:37.37 httpd
10 root 20 0 0 0 0 S 0.3 0.0 0:09.72 rcu_sched
7714 Apache 20 0 265m 73m 4972 S 0.3 0.2 1:34.53 httpd
7905 named 20 0 669m 24m 3020 S 0.3 0.1 0:02.01 named
7999 Apache 20 0 232m 40m 4968 S 0.3 0.1 1:17.67 httpd
20865 root 20 0 0 0 0 S 0.3 0.0 0:01.05 kworker/2:2
21491 root 20 0 15212 1308 852 S 0.3 0.0 0:01.38 top
23810 root 20 0 15212 1340 852 R 0.3 0.0 0:00.07 top
1 root 20 0 19404 1568 1268 S 0.0 0.0 0:00.58 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
無料m
[root@ns4008353 ~]# free -m
total used free shared buffers cached
Mem: 32070 21897 10173 0 424 16955
-/+ buffers/cache: 4516 27553
Swap: 1025 0 1025
これが反応が遅い理由だと思いますか?何がメモリを使用しているかについての詳細を取得するためのコメントはありますか?
私は専用サーバーを持っています:
Processor Name Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz
Vendor ID GenuineIntel
Processor Speed (MHz) 1600.000
Total Memory 32840004 kB
Free Memory 10416752 kB
Total Swap Memory 1050616 kB
Free Swap Memory 1050616 kB
System Uptime 0 Days, 2 Hours and 22 Minutes
Apache 2.2.24 Running
DirectAdmin 1.43.0 Running
Exim 4.76 Running
MySQL 5.5.31 Running
Named 9.8.2rc1 Running
ProFTPd 1.3.4d Running
sshd Running
dovecot 2.2.4 Running
ログファイルを調べた後、このエラーがたくさん見られました
[Sat Sep 28 00:15:41 2013] [error] [client 66.249.73.162] Request exceeded the limit of 10 internal redirects due to probable co
nfiguration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace
変更されたリクエストURIを再挿入するのは通常.htaccessファイルです。それを確認してください。また、設定ファイルをリセットすることもできます。
あなたの問題の説明は遅いHTTPリクエストですが、あなたが示したように、CPUとメモリは使い果たされていません。したがって、確認すべき点がいくつかあります。
LogFormat "%h%l%u%t \"%r\"%> s%b"共通
そして、%bの後に%Dを追加します(ただし、終了引用符の内側)。 http://httpd.Apache.org/docs/2.2/mod/mod_log_config.html#formats を参照してください
次に、httpdをリロード/再起動すると、access_logファイルの最後の列に各応答にかかる時間がマイクロ秒単位で表示されます。これらが遅いことを確認してください。たぶん、いくつかのタイプのリクエストだけが遅いですか? MySQLがCPUを使用していることに気付いたので、おそらく1つのタイプのリクエストが遅いデータベースクエリにヒットしていますか?
上記の応答が本当に遅く、明らかなパターン(特定のページなど)がない場合は、どこで遅いかを判断する必要があります。 %D時間には、クライアントからの要求の読み取り、ファイルの提供(アプリケーションコードまたはデータベースクエリを含む)、応答の書き込みなど、すべてが含まれるため、速度が低下していることがわかりますが、必ずしもどこにあるかはわかりません。だから今、あなたは減速がどこにあるかを分離する必要があります。まず、アプリケーションを確認します。 MySQLの低速ログも確認してください(有効になっていない場合は有効にしてください)。
Error_logを確認してください-アプリケーションのタイムアウトやその他のエラーが発生している可能性があります。
運が悪い場合は、定期的にpstack ${PID}
を実行して、httpdが何をしているのかを理解することもできます。
最後に、tcpdumpやWiresharkなどを使用して、速度低下がどこにあるかを特定できますが、少し面倒です。リクエストの時間を分解するhttpdモジュールもあると思いますが、今は見つからず、組み込みモジュールのリストにも表示されません。
メモリ使用量は高くありません。トラブルシューティングからその部分をスキップして、Inforfinityが提案したことを試してください。
Linuxカーネルは、ディスクキャッシュに使用可能な未使用のメモリを占有する傾向があります。それはシステムをより速くします。アプリケーションにメモリが必要な場合は、キャッシュ自体からメモリを取得します。つまり、基本的にメモリが不足しているわけではありません。 free-mの出力を考えてみましょう
-/ +バッファ/キャッシュ:4516 27553
4516MBの実際のRAMが使用されており、27553が実際の空きメモリです。17Gに近い値がキャッシュされます。
Webサーバーでパフォーマンステストを実行してみてください。 httperfを使用してベンチマークを行います。
httperf --server yoursite.com --port 80 --num-conns 100 --rate 10