突然ビルドが遅くなった際の調査手順を残す。
ソースコードの問題か切り分けしたのち、ソースコードでなければサーバーのCPUとメモリをチェックするのが定石。
調査手順
- 対象リポジトリの、Junit Reportなどのビルドレポートがあれば参照する。Duration列を確認し、 遅くなっている箇所を特定>リポジトリ周りが遅くなっている
- DB周りの障害であると推測>テストコード自体の問題か、パフォーマンスの問題かの2択
- パフォーマンス疑義から、AWSコンソールのCPU使用率をモニタリング>高いレベルで張り付いている
- SSHでDBサーバーに接続し、topコマンドでCPUの高いプロセスを確認>oracleが原因っぽい
- A5SQLにてDBAでアクセスしoracleの動的パフォーマンスビューで調査
- SIDとSERIALをキーにキルする ALTER SYSTEM KILL SESSION
パフォーマンスビューからデータを取得するSQL
V$SESSIONでセッション情報とSQL_IDを調べる
SELECT
SID, SERIAL#, SQL_ID, MACHINE, PROGRAM, STATUS, LAST_CALL_ET
FROM
V$SESSION
V$SQLで、SQL_IDをキーにSQL情報を調べる
SELECT *
FROM V$SQL
WHERE SQL_ID='idval'
コメント