私は、実行中の画像サイズ変更サービス (nginx リバース プロキシの背後にある thumbor) のキャッシュとして使用される 500 GB の Cold HDD EBS ボリュームを備えた EC2 m4.xlarge インスタンスを実行しています。
時々、画像サービスが過負荷になるようですが、ボトルネックがどこにあるかわかりません。CPU 負荷とメモリは問題ないようで、その時点でトラフィックがそれほど多くなっているようには見えません。この問題と相関していると思われることの 1 つは、ほぼ毎日、特定の時間に VolumeReadBytes が下がり、VolumeReadOps が 30 分ほど急上昇することです。cron ジョブは実行しておらず、サーバーはサイズ変更された画像の提供専用です。これが何なのかわかりません。これが問題なのでしょうか?
アドバイスをいただければ幸いです。
答え1
EBS には IOPS とスループットの割り当てがあります。何かが IOPS を最大化しているのですが、それが何なのかが問題です。
これを調べることができるツールはいくつかあります。 iotop --time --batch
その 1 つがこれです。 Brendan Greggのperf-toolsスクリプトのiosnoopは別のftrace の実装が必要な場合。
すべての読み取りシステム コールを記録するように、auditd を設定することもできます。ただし、ファイルへのログ記録が過剰になると、IOPS クォータの大部分が使用される可能性があります...
どのような決意であっても、そのタスクを停止するか、より高速なストレージを使用するか、この 30 分間はパフォーマンスの低下を許容するかを決定する必要があります。