Memo

メモ > サーバ > 各論: トラブル対応例 > サーバが重い・サーバに繋がらない 16

■サーバが重い・サーバに繋がらない 16
サイトにアクセスできないと言われて調査 Zabbixで確認すると、ロードアベレージが急激に上がっている途中だった(最終的に100を超えた) 過去のps結果を確認すると、
# vi /var/log/command/ps_aux_sort_-pcpu/20180905/1512.log apache 6535 0.5 0.4 475216 8696 ? S 07:59 2:15 /usr/sbin/httpd apache 18726 0.5 0.3 477420 8128 ? D 13:15 0:40 /usr/sbin/httpd apache 20511 0.5 0.7 442212 15944 ? D 13:48 0:29 /usr/sbin/httpd apache 21320 0.5 0.7 461968 15056 ? D 14:06 0:24 /usr/sbin/httpd apache 21827 0.5 0.8 454400 17668 ? D 14:21 0:16 /usr/sbin/httpd
のようにhttpdのプロセスが100くらい並んでいる。つまりWebへのアクセスで何かあった可能性が高い HTTPでのアタックかと思ったが、ネットワークIN/OUTの量に異常は見当たらない
# vi /var/log/messages Sep 5 15:14:34 web1 kernel: [451236.293114] Out of memory: Kill process 12083 (httpd) score 12 or sacrifice child Sep 5 15:14:34 web1 kernel: [451236.299684] Killed process 12083 (httpd) total-vm:480824kB, anon-rss:15616kB, file-rss:0kB, shmem-rss:0kB Sep 5 15:15:30 web1 kernel: [451293.207429] httpd invoked oom-killer: gfp_mask=0x14201ca(GFP_HIGHUSER_MOVABLE|__GFP_COLD), nodemask=(null), order=0, oom_score_adj=0
OOM Killer が走っていることは確認できたが、それ以外に異常は見つけられない
# vi /var/log/httpd/access_log 10.2.0.226 - - [05/Sep/2018:15:01:55 +0900] "GET /blog/soccer/soccer/wp-content/uploads/2015/06/DSC07569-200x200.jpg HTTP/1.1" 404 25926 "http://www.example.com/blog/soccer/page/40/?page=21&PHPSESSID=e15f5c05ed41f265211894cac0e3b499" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 YJApp-IOS jp.co.yahoo.ipn.appli/4.11.4" 13080902 126.152.69.153 https 10.2.0.226 - - [05/Sep/2018:15:01:55 +0900] "GET /blog/soccer/soccer/wp-content/uploads/2015/06/DSC07562-200x200.jpg HTTP/1.1" 404 25926 "http://www.example.com/blog/soccer/page/40/?page=21&PHPSESSID=e15f5c05ed41f265211894cac0e3b499" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 YJApp-IOS jp.co.yahoo.ipn.appli/4.11.4" 13090592 126.152.69.153 https 10.2.0.226 - - [05/Sep/2018:15:01:55 +0900] "GET /blog/soccer/soccer/wp-content/uploads/2015/06/DSC07540-200x200.jpg HTTP/1.1" 404 25926 "http://www.example.com/blog/soccer/page/40/?page=21&PHPSESSID=e15f5c05ed41f265211894cac0e3b499" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 YJApp-IOS jp.co.yahoo.ipn.appli/4.11.4" 13113476 126.152.69.153 https
負荷が上がり始めたときのアクセスログを見ると、画像の404エラーが頻発している 画像エラーにしてはレスポンスタイムが異常に大きい そんなに巨大な画像があるのかと思って実際にアクセスすると、WordPressの画面が表示された 元記事にアクセスすると、壊れた画像がたくさん表示されている サイト構築者に確認すると、昔の記事は画像なしで記事だけ移植したらしい 画像が大量に掲載されたページにアクセスするとimgタグによってWordPressのページが呼び出され、WordPressへのアタックのような状況になっている (再現するか確認すると、ページによっては数回のリロードでロードアベレージが50くらいまで上がった) 対策としては、上記のようなURLにアクセスしたときにWordPressを経由しないようにすること また、壊れた画像が残っていること自体好ましくないので、過去の記事を整備すること なお上のことが原因の場合、SSHで操作できる程度の負荷なら
# service httpd restart
のみでも解消できる。ただしOOMKillerが走った後なら、念のためサーバを再起動しておく方が無難 SSHで接続できないほどに負荷が高い場合も、サーバを再起動する

Advertisement