Apacheは100%CPUを使用します。「ps」コマンドはそれが何をしているのか教えてくれますか?


8

SLES 10 Linuxサーバーを使用していますが、ApacheによってCPUが100%になることがあります。

ps ax私は見ることができ、Apacheは〜50のApacheプロセスを生み出していること。

たとえば、psコマンドはこれらの各Apacheプロセスが何をしているのか教えてくれますか?

または、他の方法で問題を引き起こしているWebページを確認できますか?

回答:


14

/etc/httpd/conf/httpd.confファイルには次のセクションがあります。

# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from .example.com
    Allow from 127. 192.168.1.
</Location>

したがって、http : //192.168.1.1/server-statusにアクセスすると、次のようなページが表示されます。

  1. サーバーのバージョン
  2. httpdアップタイム
  3. 現在のCPU使用率
  4. 処理中のリクエストとアイドルワーカーの数

  5. 各プロセスが行っていることのグリッド
  6. 最近のリクエスト

    192.168.3.1のApacheサーバーのステータス

    サーバーのバージョン:Apache / 2.2.3(Red Hat)
    サーバーの構築:2009年7月14日06:04:04

    現在時刻:2010年7月17日土曜日10:20:31 CDT
    再起動時刻:2010年7月17日土曜日10:13:12 CDT
    親サーバー生成:0
    サーバー稼働時間:7分19秒
    合計アクセス数:51-合計トラフィック:156 kB
    CPU使用率:u0 s0 cu0 cs0
    .116リクエスト/秒-363 B /秒-3132 B /
    リクエスト現在処理中の1リクエスト、7アイドルワーカー

    __W _____................................................................. .......
    ..................................................... .....................
    ............................. ...................................
    ............... .................................................................

    スコアボードキー:
    "_"接続待機中、 "S"起動中、 "R"読み取り要求、
    "W"返信返信、 "K"キープアライブ(読み取り)、 "D" DNSルックアップ、
    "C"接続終了、 "L "ロギング、" G "正常終了、
    " I "ワーカーのアイドルクリーンアップ、" 現在のプロセスのないオープンスロット

    Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
    0-0 20715 0/2/2 _ 0.00 418 0 0.0 0.01 0.01 192.168.3.97 dit GET / server-status HTTP / 1.1
    1-0 20716 0/49/49 _ 0.00 128 0 0.0 0.15 0.15 192.168.3.97 dit GET / server-status HTTP / 1.1
    2-0 20717 0/0/0 W 0.00 0 520222374 0.0 0.00 0.00 192.168.3.97 dit GET / server-status HTTP / 1.1


ExtendedStatus ON各リクエストを表示するように設定する必要がある場合があります
TonyUser

3

strace特定のプロセスがシステムコールのレベルで何を行っているかを知ることができますが、何が起こっているかを「50フィート」で見ることはできません。それを理解するには、システムが使用しているシステムコールをつなぎ合わせる必要があります。


2

データベースバックエンドを備えたWebサイトがある場合、DBMSで現在実行されているコマンドを確認できます。多分これはあなたがウェブサイトのコードのどこで負荷が発生するかを絞り込むのに役立つかもしれません。

そうでなければ、httpdデーモンのログレベルを上げることができます。その後、ログにより多くの情報があります。


1

ltraceもあり、straceと同様に機能しますが、ライブラリー呼び出しを使用します。


0

あなたはpsよりも情報量の多いトップを見つけるかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.