web-dev-qa-db-ja.com

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

私はSLES10 Linuxサーバーを持っていますが、Apacheによって100%CPUに制限されることがあります。

ps axApacheが最大50のApacheプロセスを生成したことがわかります。

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

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

8
Sandra

私の/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」正常に終了、
    「私」労働者のアイドルクリーンアップ、「。」現在のプロセスなしでスロットを開く

    Srv PID Acc M CPU SS ReqConn子スロットクライアントVHost要求
    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

14
Kevin M

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

データベースバックエンドを備えたWebサイトがある場合は、DBMSで現在実行されているコマンドを調べることができます。おそらくこれは、Webサイトのコードのどこで負荷が生成されるかを絞り込むのに役立つ可能性があります。

それ以外の場合は、httpdデーモンの ログレベル を増やすことができます。次に、ログに詳細情報があります。

2

Straceのように機能しますが、ライブラリ呼び出しを伴うltraceもあります。

0
user48625

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

0
bmargulies