システムパフォーマンス入門

パフォーマンスに詳しいインフラに憧れて

ユーザ用ツール

サイト用ツール


· 最終更新: 2020/03/22 by kurihara


Apacheのserver-statusでリソース監視

Apache Server Statusをみれるようにするための設定

Apache 2.4系のServer Status設定

LoadModule status_module modules/mod_status.so
ExtendedStatus On

<Location /server-status>
    SetHandler server-status

    Require ip 127.0.0.1 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
</Location>


Apache 2.2系のServer Status設定

LoadModule status_module modules/mod_status.so
ExtendedStatus On

<Location /server-status>
    SetHandler server-status

    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
</Location>


statusモジュールがロードされていることの確認

# httpd -M | grep status
 status_module (shared)


Server Statusの見方(server-status?auto)

Server Statusの確認方法

curl http://127.0.0.1/server-status?auto
1秒間隔で自動更新
watch -n 1 "curl 'http://x.x.x.x/server-status?auto'"
watch -n 1 "wget -q http://x.x.x.x/server-status?auto -O -"


prefork MPMの見方

# curl http://127.0.0.1/server-status?auto
Total Accesses: 1
Total kBytes: 4
Uptime: 76
ReqPerSec: .0131579
BytesPerSec: 53.8947
BytesPerReq: 4096
BusyWorkers: 1
IdleWorkers: 5
Scoreboard: __W___....................................(略)
BusyWorkers リクエストを処理中のサーバープロセスのスレッド数
IdleWorkers リクエスト待ち状態のサーバープロセスのスレッド数


event MPMの見方

# curl http://127.0.0.1/server-status?auto
Total Accesses: 62
Total kBytes: 72
CPULoad: .150584
Uptime: 4881
ReqPerSec: .0127023
BytesPerSec: 15.1051
BytesPerReq: 1189.16
BusyWorkers: 1
IdleWorkers: 99
ConnsTotal: 2
ConnsAsyncWriting: 0
ConnsAsyncKeepAlive: 1
ConnsAsyncClosing: 1
Scoreboard: ___________________________________________________W___________(略)
ConnsTotal
ConnsAsyncKeepAlive リクエストを処理中の数
ConnsAsyncClosing


Server Statusの見方(server-status)

http://xx.xx.xx.xx/server-status
http://xx.xx.xx.xx/server-status?refresh=60&notable
http://xx.xx.xx.xx/server-status?refresh=1

スコアボードの意味

パフォーマンス・チューニングのためには、スコアボードを確認する。

記号意味(英語)意味(日本語)
- Waiting for Connection リクエスト待ち
S Starting up 起動処理中
R Reading Request クライアントからのリクエストを受信中
W Sending Reply リクエストの処理実行、およびクライアントへレスポンス送信中
K Keepalive (read) KeepAlive状態でリクエスト受信待ち
D DNS Lookup DNSルックアップ中
C Closing connection 接続を終了中
L Logging ログ出力処理中
G Gracefully finishing gracefulリスタートの処理終了待ち
I Idle cleanup of worker スレッド停止中
. Open slot with no current process 起動していない状態
  • 「R」「W」 が多ければ待機プロセスを増やしたほうがいいので、MaxClients を増やす。
  • 「.」が多ければ、ServerLimit を減らす。
  • 「_」が多ければ、待機中プロセスが多いので、MinSpareServers と MaxSpareServers を減らす。


プロセス一覧の項目

記号意味(英語)意味(日本語)
Srv Child Server number – generation サーバプロセスの識別子と再起動回数
PID OS process ID プロセスID
Acc Number of accesses this connection / this child / this slot アクセス数(コネクション単位/スレッド単位/スロット単位)
M Mode of operation 動作状況
C CPU usage, number of seconds CPU時間(秒)
SS Seconds since beginning of most recent request 最後の処理開始からの経過秒
Req Milliseconds required to process most recent request 最後の処理に要したミリ秒
Conn Kilobytes transferred this connection コネクションに対する通信量
Child Megabytes transferred this child プロセスの通信量
Slot Total megabytes transferred this slot スロットの通信量


参考


· 最終更新: 2020/03/22 by kurihara

ページ用ツール