最近、WEBアプリケーションのpgaminやwinscpアプリケーションを通してDBやファイルサーバーにアクセスしていつもどおりに操作していると、なぜか突然切断が途切れる現象が多発。またつなぎ直せば何の問題もないのでそのままにしていたが、何か大きな問題が起こる前兆とも言い切れないので原因調査を実施。その中で色々と勉強になったことがあるのでその時のことをメモ書き。
結果的にはルーターが原因と予想している。(ルーターを変えて試していないので確実ではないです。)
目次
ログで処理時間を表示させる
始めに何の処理に時間がかかっているのかを把握するため、ログに処理時間を追加。設定以降はアクセス処理単位で処理時間を取得できる。この手法は表示速度が極端に遅い時などでの原因特定にも役立つ。
apacheのhttpd.confを編集
変更前: LogFormat “%h %l %u %t \”%r\” %>s %b ” common
変更後: LogFormat “%h %l %u %t \”%r\” %>s %b %D” common
ログの末尾に処理時間(マイクロ秒)を追記 1.000.000(1M)=1秒
postgresのpostgresql.confを編集
変更前: log_min_duration_statement = -1
変更後: log_min_duration_statement = 1000
1秒以上かかったSQLをログに追記
traceroute(ネットワークの経路を調査)
指定したホストまでの経路が確認でき、経路にたどり着くまでに通るホストを表示する。各ホストまでのアクセス時間も表示されるため、どこの経路で時間がかかっているかが分かる。
traceroute to IPアドレス (IPアドレス), 30 hops max, 60 byte packets
1 ************* 0.493 ms 0.432 ms 0.406 ms
2 ************* 0.761 ms 0.762 ms 1.095 ms
3 ************* 1.078 ms 1.061 ms 1.044 ms
4 ************* 1.439 ms 1.488 ms 1.542 ms
tracepath(IPネットワークの通信経路を表示)
tracerouteコマンドと同様の機能に加え、ネットワーク上で1回の転送で送信できる データの最大値も調査したい時に使われる。
1: ************* 0.166ms
2: ************* 0.809ms
3: ************* 0.523ms
4: ************* 1.186ms
5: *************
6: ************* 2.122ms
7: ************* 1.688ms
詳しい使い方
http://blog.goo.ne.jp/takuminews/e/a95d1359ee644dea3d93be2bf34a1839
tcpdump(パケットキャプチャツール)
ネットワークのトラフィックをダンプすることで詳細なトラフィック状態を確認することができる。
1 |
tcpdump port 22 and host IPアドレス -n -s 0 -i eth0 -w 保存ファイル名称.dat |
詳しい使い方
http://blog.livedoor.jp/sonots/archives/18239717.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20140512/556024/
dumpしたファイルをWiresharkを使って確認するといい。
tcptrack(トラフィックや通信状況をリアルタイムで把握)
topコマンドのように、秒単位で通信状況を確認することができる。どのホスト間で、どのような通信状態で、アイドル状態の秒数、転送レートを表示することができる。
1 |
# tcptrack -i eth0 |
1 |
# tcptrack -i eth0 src or dst IPアドレス |
詳しい使い方 http://pocketstudio.jp/log3/2012/02/11/tcptrack/
nmap(ポートスキャンを実施する)
現在開いているポートを調べることができるコマンドがある。
1 2 3 4 5 6 7 8 9 10 11 |
$ nmap IPアドレス Starting Nmap 5.51 ( http://nmap.org ) at 2014-07-28 02:17 JST Nmap scan report for host58.example.com (10.12.175.58) Host is up (0.00030s latency). Not shown: 998 closed ports PORT STATE SERVICE 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 2.76 seconds |
詳しい使い方 http://itpro.nikkeibp.co.jp/atcl/column/14/230520/072800001/
最後に…
少しづつ原因を絞り込んでいったことで色々と分かってきた。
pingも通っているため、結果的にはネットワークではなく、ルーターが物理的に故障している(管理画面を表示するWEBサーバーが意味不明に落ちるため192.168.1.1で管理画面に繋がらない。)ことが一番有力な原因と分かった。
普段はあまり使わないけど、いざとなったら頼りになる設定やコマンドたちです。
LEAVE A REPLY