極端な負荷/ディスクIO/CPU/メモリ使用量の問題

こんにちは、最近私たちのインスタンスで「極端な負荷」のメッセージが増えています。今日は午前9時40分に発生しました。

サーバーログを確認しましたが、午前9時40時のCPUと負荷は問題ないように見えました:

メモリ使用量も一日を通じて比較的安定しています:

スパイクはディスクI/Oと送信/受信帯域幅に現れたようです:

そのため、午前9時40分にクローラーからのリクエストが原因ではないかと疑いました。しかし、それを確認する方法があるかどうかはわかりません。クローラーのリストとリクエスト数を確認しましたが、ほとんどがGoogleとBingからのものだったので、これらをブロックするつもりはありません。

そこで以下の質問が浮かびました:

  • 特定の時点で誰がサイトにアクセスしているかを確認できるログはありますか?
  • これらの「良い」クローラーがリクエストを分散させるような設定は可能でしょうか?
  • サーバーにCPUやメモリを追加することで状況が改善するでしょうか?CPUやメモリ使用量にスパイクがなかったため、少し懐疑的です。平均メモリ使用量が80%なのは高すぎますか?

現在は2 vCPU/2GBのメモリです。インスタンスには4つのUnicornワーカーを設定しており、これは利用可能なRAMの量に見合った設定のようです。

はい、/var/discourse/shared/standalone/log/var-log/nginx/access.log を確認してください。

はい、「slow down crawler user agents」というサイト設定があります。

9 時 40 分のピーク時には I/O 待ちが発生していたようです。RAM を増やすとキャッシュに保持できるデータが増えるため、改善する可能性があります。ただし、そのピークが読み込みによるものか書き込みによるものかは不明です。グラフの凡例が切り取られていたためです :upside_down_face:

とはいえ、余裕があれば、ドロプレットのサイズを次に利用可能なサイズにアップグレードすれば、常に改善が見込めます。

ありがとうございます。午前9時40分のログを確認しましたが、リクエストはクローラーではなく、ユーザーの行動(一般ユーザーのブラウザ)から来ているように見えます。

緑色のピークは読み込みです。

はい、クローラーによるものではないようなので、次のサイズのドロプレートに切り替えて、RAMを2GBから4GBに増やし、効果があるか試してみようと思います。

ユーザーの活動が原因だとは少し驚きです。ここ2年は以前よりもアクティブな投稿者が減っているという印象だったからです。しかし、Googleアナリティクスを見ると、ユーザー数は着実に増加しています。投稿者は減っている一方で、潜り読み(lurkers)のユーザーが増えているのかもしれません。

アドバイスいただき、ありがとうございました。感謝しています。

メモリを倍増させることで、少なくともグラフから見て、特にディスク I/O と負荷のスパイクにおいて違いが生じているようです。