Linux Ubuntuで平均奇妙さを読み込む


9

過去数日間、インフラストラクチャで起こっている奇妙さを理解しようと努めてきましたが、それを理解することができなかったので、皆さんにヒントを与えます。

私はGraphiteで、約2時間ごとに致命的な規則性で発生するload_avgのスパイクに気づいてきました-正確に2時間ではありませんが、非常に規則的です。グラファイトから撮ったスクリーンショットを添付しています

Load Averag-クリックして拡大

私はこれを調査することに行き詰まりました-これの定期性は、それが何らかのcronジョブまたはそのようなものであると考えるようになりましたが、これらのサーバーで実行されているcronjobはありません-これらは実際にはRackspaceクラウドで実行されているVMです。私が探しているのは、これらの問題を引き起こしている可能性のある種の兆候と、これをさらに調査する方法です。

サーバーはかなりアイドル状態です。これはステージング環境であるため、トラフィックがほとんど入らないか、サーバーに負荷がかかりません。これらはすべて4つの仮想コアVMです。私が確かに知っていることは、約10秒ごとに一連のグラファイトサンプルを取得していることですが、それが負荷の原因である場合、異なるサーバーで2時間ごとに発生するのではなく、常に高いことが予想されます。

これを調査する方法を助けていただければ幸いです!


以下は、sarからのapp01のデータです。これは、上の画像の最初の青いスパイクです。データから結論を出すことはできませんでした。また、バイト書き込みスパイクが30分ごと(2時間ごとではない)に発生していることがわかるのは、30分ごとに実行するchef-clientが原因です。すでにデータを収集してみますが、実際にそれらから結論を出すことはできませんでした。

負荷

09:55:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
10:05:01 PM         0       125      1.28      1.26      0.86         0
10:15:01 PM         0       125      0.71      1.08      0.98         0
10:25:01 PM         0       125      4.10      3.59      2.23         0
10:35:01 PM         0       125      0.43      0.94      1.46         3
10:45:01 PM         0       125      0.25      0.45      0.96         0
10:55:01 PM         0       125      0.15      0.27      0.63         0
11:05:01 PM         0       125      0.48      0.33      0.47         0
11:15:01 PM         0       125      0.07      0.28      0.40         0
11:25:01 PM         0       125      0.46      0.32      0.34         0
11:35:01 PM         2       130      0.38      0.47      0.42         0
11:45:01 PM         2       131      0.29      0.40      0.38         0
11:55:01 PM         2       131      0.47      0.53      0.46         0
11:59:01 PM         2       131      0.66      0.70      0.55         0
12:00:01 AM         2       131      0.81      0.74      0.57         0

CPU

09:55:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:05:01 PM     all      5.68      0.00      3.07      0.04      0.11     91.10
10:15:01 PM     all      5.01      0.00      1.70      0.01      0.07     93.21
10:25:01 PM     all      5.06      0.00      1.74      0.02      0.08     93.11
10:35:01 PM     all      5.74      0.00      2.95      0.06      0.13     91.12
10:45:01 PM     all      5.05      0.00      1.76      0.02      0.06     93.10
10:55:01 PM     all      5.02      0.00      1.73      0.02      0.09     93.13
11:05:01 PM     all      5.52      0.00      2.74      0.05      0.08     91.61
11:15:01 PM     all      4.98      0.00      1.76      0.01      0.08     93.17
11:25:01 PM     all      4.99      0.00      1.75      0.01      0.06     93.19
11:35:01 PM     all      5.45      0.00      2.70      0.04      0.05     91.76
11:45:01 PM     all      5.00      0.00      1.71      0.01      0.05     93.23
11:55:01 PM     all      5.02      0.00      1.72      0.01      0.06     93.19
11:59:01 PM     all      5.03      0.00      1.74      0.01      0.06     93.16
12:00:01 AM     all      4.91      0.00      1.68      0.01      0.08     93.33

IO

09:55:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
10:05:01 PM      8.88      0.15      8.72      1.21    422.38
10:15:01 PM      1.49      0.00      1.49      0.00     28.48
10:25:01 PM      1.54      0.00      1.54      0.03     29.61
10:35:01 PM      8.35      0.04      8.31      0.32    411.71
10:45:01 PM      1.58      0.00      1.58      0.00     30.04
10:55:01 PM      1.52      0.00      1.52      0.00     28.36
11:05:01 PM      8.32      0.01      8.31      0.08    410.30
11:15:01 PM      1.54      0.01      1.52      0.43     29.07
11:25:01 PM      1.47      0.00      1.47      0.00     28.39
11:35:01 PM      8.28      0.00      8.28      0.00    410.97
11:45:01 PM      1.49      0.00      1.49      0.00     28.35
11:55:01 PM      1.46      0.00      1.46      0.00     27.93
11:59:01 PM      1.35      0.00      1.35      0.00     26.83
12:00:01 AM      1.60      0.00      1.60      0.00     29.87

通信網:

10:25:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:35:01 PM      eth1      7.07      4.77      5.24      2.42      0.00      0.00      0.00
10:35:01 PM      eth0      2.30      1.99      0.24      0.51      0.00      0.00      0.00
10:45:01 PM        lo      8.35      8.35      2.18      2.18      0.00      0.00      0.00
10:45:01 PM      eth1      3.69      3.45      0.65      2.22      0.00      0.00      0.00
10:45:01 PM      eth0      1.50      1.33      0.15      0.36      0.00      0.00      0.00
10:55:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:55:01 PM      eth1      3.66      3.40      0.64      2.19      0.00      0.00      0.00
10:55:01 PM      eth0      0.79      0.87      0.08      0.29      0.00      0.00      0.00
11:05:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:05:01 PM      eth1      7.29      4.73      5.25      2.41      0.00      0.00      0.00
11:05:01 PM      eth0      0.82      0.89      0.09      0.29      0.00      0.00      0.00
11:15:01 PM        lo      8.34      8.34      2.18      2.18      0.00      0.00      0.00
11:15:01 PM      eth1      3.67      3.30      0.64      2.19      0.00      0.00      0.00
11:15:01 PM      eth0      1.27      1.21      0.11      0.34      0.00      0.00      0.00
11:25:01 PM        lo      8.32      8.32      2.18      2.18      0.00      0.00      0.00
11:25:01 PM      eth1      3.43      3.35      0.63      2.20      0.00      0.00      0.00
11:25:01 PM      eth0      1.13      1.09      0.10      0.32      0.00      0.00      0.00
11:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:35:01 PM      eth1      7.16      4.68      5.25      2.40      0.00      0.00      0.00
11:35:01 PM      eth0      1.15      1.12      0.11      0.32      0.00      0.00      0.00
11:45:01 PM        lo      8.37      8.37      2.18      2.18      0.00      0.00      0.00
11:45:01 PM      eth1      3.71      3.51      0.65      2.20      0.00      0.00      0.00
11:45:01 PM      eth0      0.75      0.86      0.08      0.29      0.00      0.00      0.00
11:55:01 PM        lo      8.30      8.30      2.18      2.18      0.00      0.00      0.00
11:55:01 PM      eth1      3.65      3.37      0.64      2.20      0.00      0.00      0.00
11:55:01 PM      eth0      0.74      0.84      0.08      0.28      0.00      0.00      0.00

cronjobsに興味がある人向け。サーバーに設定されているすべてのcronjobsの概要を次に示します(app01を選択しましたが、これは同じcronjobsが設定されている他のいくつかのサーバーでも発生しています)。

$ ls -ltr /etc/cron*
-rw-r--r-- 1 root root  722 Apr  2  2012 /etc/crontab

/etc/cron.monthly:
total 0

/etc/cron.hourly:
total 0

/etc/cron.weekly:
total 8
-rwxr-xr-x 1 root root 730 Dec 31  2011 apt-xapian-index
-rwxr-xr-x 1 root root 907 Mar 31  2012 man-db

/etc/cron.daily:
total 68
-rwxr-xr-x 1 root root  2417 Jul  1  2011 popularity-contest
-rwxr-xr-x 1 root root   606 Aug 17  2011 mlocate
-rwxr-xr-x 1 root root   372 Oct  4  2011 logrotate
-rwxr-xr-x 1 root root   469 Dec 16  2011 sysstat
-rwxr-xr-x 1 root root   314 Mar 30  2012 aptitude
-rwxr-xr-x 1 root root   502 Mar 31  2012 bsdmainutils
-rwxr-xr-x 1 root root  1365 Mar 31  2012 man-db
-rwxr-xr-x 1 root root  2947 Apr  2  2012 standard
-rwxr-xr-x 1 root root   249 Apr  9  2012 passwd
-rwxr-xr-x 1 root root   219 Apr 10  2012 apport
-rwxr-xr-x 1 root root   256 Apr 12  2012 dpkg
-rwxr-xr-x 1 root root   214 Apr 20  2012 update-notifier-common
-rwxr-xr-x 1 root root 15399 Apr 20  2012 apt
-rwxr-xr-x 1 root root  1154 Jun  5  2012 ntp

/etc/cron.d:
total 4
-rw-r--r-- 1 root root 395 Jan  6 18:27 sysstat
$ sudo ls -ltr /var/spool/cron/crontabs 
total 0
$

ご覧のとおり、毎時のcronjobはありません。毎日/毎週など

たくさんの統計情報(vmstat、mpstat、iostat)を収集しました-どんなに頑張っても、VMコンポーネントの誤動作を示唆するリードが見当たらない...ハイパーバイザーで潜在的な問題に傾倒し始めています。統計を確認してください。要点は「問題のある」時間の前後のsar -q出力で始まり、次にvm、mp、iostatsを確認できます。

基本的にそれは私にとってまだ完全な謎です...


さらに調査するために共有できるインタラクティブなデータはありますか(つまり、繰り返し発生する負荷スパイク時に「トップ」、「htop」、「iotop」の表示は何をしますか)?また、問題の時間中にアプリケーションログをチェックして、それらが奇妙な動作を示しているかどうかを確認しましたか?さらに、パブリッククラウドインフラストラクチャでホストされていない、同様の構成を持つホストがありますか?その場合、それらは同様の動作を示していますか?
esquireofoz 2013年

アプリログに関しては、何も起こりません。そこに含まれる唯一のログエントリは、毎分行われている監視からのチェックです。基本的に、監視システムはメインサイトにアクセスして結果コードを報告します。ただし、ログは完全に空です。また、上記のようにさまざまなホストがあることがわかります-これはすべてのホスト(redis、appサーバー、chefサーバーなど)で発生しています
milosgajdos

psacctを使用して絞り込みを試みましたか?
HTTP500

あなたは規則性を仮定しますが、あなたが示すデータは規則的に発生するスパイクを示していません。それが規則性を示している正確な期間についてより具体的に教えてください(おそらく数日にわたって? "top -n 1"を1分ごとに実行し、それらをファイルに保存します。これにより、スパイクが発生すると同時に、他のプロセスがCPUを競合しているのを確認できます。App1がインターネット向けのアプリである場合、おそらく誰かがアプリにアクセスしてその動作を強制しているだけでしょうか?通常の「netstat -an」ログも追加します(毎分?)
Olivier Dulac 2013年

添付のスクリーンショットはありましたか?それが定期的に表示されない場合は、何をするのかわかりません。sarのサンプリング期間を増やしたので、5分ごとにサンプリングしています。写真の規則性は明白です-それは2時間ごとに起こります。これは、トラフィックがまったくないステージング環境です。上記のsarの出力からネットワーク統計情報を確認できます。
milosgajdos 2013年

回答:


3

面白い。

まず、sarロギングの頻度を増やしてください。10分ではなく、毎分ログに記録してください。sysstat cronjobは構成可能です。

次に、次のコマンドをスクリプト化してみます。

ps auxf > /tmp/ps.out
vmstat 1 50 > /tmp/vm.out
mpstat -P ALL 1 50 > /tmp/mp.out
iostat -xdk 1 50 > /tmp/io.out
cat /proc/meminfo > /tmp/meminfo.out

負荷平均が手動でまたはcronを介して増加するたびに、反復ごとにこのデータセットを収集します。少なくとも1営業日分のデータがあるとよいでしょう。

現在、サーバーはアイドル状態ですが、一部のアプリケーションを実行する必要があることを理解しています。彼らは何ですか?

perfやoprofileなどのプロファイリングツールを実行できる可能性はありますか。

サーバーハードウェアコンポーネントは変更されていますか?ファームウェアのアップグレードやソフトウェアのアップグレードと同じくらい無害です。

ねえ、一つの質問。実行しているスケジューラは何ですか。私はそれがcfqであると信じています、あなたがそれをnoopに変えることができるどんな機会でも。入れelevator=noopカーネルコマンドラインパラメータで、システムを再起動し、それを改善するかどうか参照してください。


スケジューラに関する小さな編集を追加しました。結果をご覧ください。
Soham Chakraborty 2013年

1

上位プロセスのログ

発生は非常に定期的であるため、これらの期間中にトッププロセスを監視するようにcronジョブをセットアップします。

#app01
20-59 0/2 * * * root /usr/bin/top -b -n 1 | /usr/bin/head -n 15 >> /var/log/top.log

に変更20-59する*と、偶数時間ごとに1時間全体が記録されます。いずれの場合も、cronジョブは1分に1回実行されます。

top.logファイルを追加してローテーションをログに記録し、無効にするのを忘れた場合にすべてのスペースを占有しないようにすることができます。

ログファイルを確認

高負荷時にログファイルエントリを検索する

例として次のロードエントリを取り上げます。

10:25:01 PM         0       125      4.10      3.59      2.23         0

行う

grep ' 22:2' /var/log/*
grep ' 22:2' /var/log/apache2/*

これにより、のすべてのログエントリが表示され22:2x:xxます。他のログディレクトリを含める必要がある場合があります。

2013年1月6日21:00:07:xvda w_awaitスパイク

xvdaチャート-w_awaitスパイクは2013年1月6日21:00:07にあります ここに画像の説明を入力してください


0

私が間違いなく確認することの1つ:

  • 同じパターンのvSphereグラフ、同じホスト上の別のVMがCPUを消費している可能性があります(使用可能なCPU時間が少ないために一定のフローで同じ量のデータを処理するのに時間がかかるため、VMの負荷が増加しますVM)。

編集:初めて取得しませんでした:)ラックスペースで実行しているため、ハイパーバイザーを制御できませんが、同じホスト上の他のVMでこのパターンが共通しているかどうかをラックスペースで確認できるかどうかを確認することをお勧めします。 。


1
私もそのことを疑っています。Rackspaceクラウドが何らかの狂気を引き起こしているのはこれが初めてではありません。ただし、ハイパーバイザーサーバーのいずれかを監視しているのではないかと思います。つまり、VMの誤動作という意味ではありますが、最後の手段であるラックスペースサポートに進む前に、「内部」の可能性を排除したいと思います。
milosgajdos 2013年

ハイパーバイザーのパフォーマンスは、VMの見かけの負荷平均に影響しますか?これにより、負荷平均の計算方法について考えることができます。これは、グリーン/省電力機能がOSに知られていないより少ないコアに定期的に作業をシフトすることの何らかの影響である可能性がありますか?または、環境入力などに基づいてクロックレートを動的に変更するのはどうですか?
2013年

負荷平均は、単純な言葉でスケジューリングアルゴリズムによって計算されます。処理キューに100個のタスクがあり、ハイパーバイザーが1秒あたり10個のタスクを実行するのに100%効率的である場合、ハイパーバイザーが100個のタスクを実行するには10秒必要です。は50%の効率(たぶんCPUの過剰プロビジョニング)であり、同じ量のタスクを実行するのに20秒かかるため、負荷が増大します。完全な説明:blog.scoutapp.com/articles/2009/07/31/…–
Martino Dino
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.