« 平均値・標準偏差の幾何学的意味 | トップページ | 伝統音楽は「現代音楽」を目指す »

Amazon EC2 インスタンスの CPU 消費が 6 時間おきに 100% になる現象の犯人が Webmin だった件

注意: この記事には、技術的に高度なことは何も書かれていません。むしろ、書かれているのは調べれば誰でもわかるようなことで、同じような現象に遭遇した人が調べる手間を少しでも省ければよいと思って書いています。あと、筆者は MS-DOS、Windows、旧 Mac などは実際に開発経験があるのでわりと詳しいですが、Linux には疎く、基本的なコマンドすらちゃんと覚えていません。ですから、以下の記事でも、Linux に詳しい人から見れば、もっと簡単にできることを、わざわざ遠回りしてやってる可能性もあります。そのへんご承知の上でお読み下さい。

 筆者は最近 Amazon AWS 上でサーバを運用しているのだが、一つ気になる問題に気がついた。CloudWatch で EC2 インスタンスの CPU 消費量(CPUUtilization)を モニタしていると、かなり頻繁に CPU 消費量が 100% になるのだ。

 最初は、実際にサーバにアクセスがあったから負荷がかかったのだろうと思っていたのだが、よくよく見ると、その負荷のかかるタイミングが妙に規則的なのだ。きっちり 6 時間おきに負荷がかかっている。つまりこんな感じだ。

AWS-EC2-CroudWatch.jpg

 これがなぜ問題かというと、うちのサーバは CPUUtilization をトリガーにして Auto Scaling をかけているので、CPU の負荷がかかるたびに EC2 インスタンスがポコポコ起動されてどんどん課金されてしまうからだ。

 それでも最初の一年間は無料サービスだったのであまり気にしなかったのだが、無料期間が終わってからは、この Auto Scaling による課金がバカにならなくなってきた。

 それで仕方なく本腰入れて原因調査に乗り出した。

 最初に疑ったのはもちろん CRON ジョブだったが、いくら調べても 6 時間おきに起動する CRON ジョブなんてものはない。

 そこで、負荷がかかる時間を見計らって、PuTTY で SSH 接続し、top コマンドでどんなプロセスが CPU を消費しているかを観察してみた。原始的な方法だが、他のやり方を知らないので仕方がない。

AWS-EC2-top.jpg

 その結果、以下のようなプロセスが CPU を消費してることがわかった。

  • webmin
  • aptitude
  • apt-get
  • update-apt-xapi

 ここから想像できるのは、

  • どうも Webmin が一枚噛んでいるらしい
  • パッケージの更新に関係があるらしい

 ここまで考えて、あっとひらめいた。そういや、Webmin にはこんな表示があるじゃないか!

AWS-EC2-webmin.jpg

 この数字、Webmin を開くたびに更新されてるじゃないか。ってことは、Webmin が定期的に aptitude を呼び出してるんじゃないのか?

 そこで、System > Sofwtare Package Updates を開いてみた。

AWS-EC2-webmin-Software-Package-Updates.jpg

 そして、「Module Config」をクリックすると…。

AWS-EC2-webmin-Software-Package-Updates-Configuration.jpg

 あった! こんなところに、6 の数字が…。

 そしてこの数字を変更してみたところ、見事に 6 時間ごとの負荷は消え去ったのであった。

AWS-EC2-CroudWatch-after.jpg

 完全に盲点だったのは、Webmin なんてものはトランスペアレントに動くべきもので、その負荷が問題になるなんて完全に想定外だったこと。しかし、Webmin の負荷は意外とバカにならないのだった。もっとも、t1.micro なんて貧弱なインスタンスを使ってるせいもあるが。

 というわけで、こういうくだらない問題で時間を無駄にする人が、一人でも減ることを願っております。

|

« 平均値・標準偏差の幾何学的意味 | トップページ | 伝統音楽は「現代音楽」を目指す »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67762/58908540

この記事へのトラックバック一覧です: Amazon EC2 インスタンスの CPU 消費が 6 時間おきに 100% になる現象の犯人が Webmin だった件:

« 平均値・標準偏差の幾何学的意味 | トップページ | 伝統音楽は「現代音楽」を目指す »