3.0.6 から 3.1.2 にアップデートしたばかりですが、主に 3 つの点で多くの 503 エラーが発生しています。
- 多くのアバターが読み込めない
- 画像のアップロードが時々しか機能しない
topics/timings に対しても多くのエラーが発生している
サーバーログを確認しましたが、ほとんどの 503 は production.log には表示されず、nginx には大量に記録されています。nginx のレート制限が原因ではないかと考え、templates/web.ratelimited.template.yml を使用しないように試しましたが、効果はないようです。依然として多くのリクエストが 503 で応答されており、そのほとんどが user_avatars/show で、production.log にはまったく記録されていないようです。
Sidekiq には問題は見られません。しかし、/logs には以下のエラーがありました。
'hijack user_avatars show ' is still running after 90 seconds on db default, this process may need to be restarted!
ただし、これらは数時間前のことで、その後インスタンスを数回再構築しましたが、再度表示されることはありませんでした。
このインスタンスは SSO を使用しているため、アバター (URL) はそこから取得されます。画像には S3 を使用しています。
何が原因で発生しているのか少し困惑しており、他に思いつくこともありません。
どこで何を確認すべきか、何かヒントはありますか?
pfaffman
(Jay Pfaffman)
2
RAMはどのくらいありますか?サーバーを最近再起動しましたか?
サーバーには16GBのメモリがあり、アップデート前は数ヶ月間問題なく動作していました。
これはAWSインスタンスで、アップデートの直前に(DiscourseデータはEBSボリューム上にあります)無関係なパラメータを変更するために起動されたものです。
アップデート後、ネットワークトラフィック(インバウンドとアウトバウンド)が大幅に増加しました。アバターは、最初の503エラーの数秒後に機能するようです。そのため、初回リクエスト時に何らかのプロセスが実行されていると推測しています。
しかし、画像アップロードがランダムに失敗する理由、およびtopics/timingsエンドポイントが失敗する理由については、お手上げ状態です。
これに関連している可能性があるかどうかわかりません。
このアバターのバックグラウンド更新プロセスが、AWSの3500 PUT/s レート制限にヒットし、アバターが更新されている間に通常のアップロードが失敗しているのでしょうか? /cc @sam
「いいね!」 1
sam
(Sam Saffron)
5
おそらく…しかし、それは解消されるはずです。今までに解消されましたか?
「いいね!」 1
はい、一部です。
更新は21日の午前中に行われました。インバウンドネットワークトラフィックは現在正常化しつつあるようです。アウトバウンドはまだ通常より高いですが、アバターのキャッシュ処理中だと思われます。user_avatars/show への503エラーは現在ずっと少なくなっています。これらも、より多くのアバターが処理されるにつれて、徐々に解決されていくと推測しています。
しかし、主に他の2つのエンドポイントで多くの503エラーがログに記録されています。
POST /topics/timings
このエンドポイントへの503エラーは依然として多く、一部のユーザーは閲覧したトピックが既読としてマークされていないと報告しています。リクエストはproduction.logに全く記録されていないように見えるため、これに関する情報は見つかっていません。/logs には関連するものは何も表示されません。
これらの503エラーのデバッグはどこから始めればよいでしょうか?他に知らないログはありますか、あるいは(本番システムで)ログをより詳細にすることは可能でしょうか?
POST /uploads.json?client_id=...
これらの503エラーについて、production.logで見つかるのは以下の様なものです。
production.logからの抜粋
Started POST “/uploads.json?client_id=X” for x.x.x.x at 2023-10-24 10:24:55 +0000
Processing by UploadsController#create as JSON
Parameters: {“upload_type”=>“composer”, “relativePath”=>“null”, “name”=>“Screenshot 2023-10-24 at 11.22.32.png”, “type”=>“image/png”, “sha1_checksum”=>“d1f11731320437724003c3840c5dcc5f934ba25a”, “file”=>#<ActionDispatch::Http::UploadedFile:0x00007f3c5e3c9898 @tempfile=#Tempfile:/tmp/RackMultipart20231024-1991-b30vit.png, @content_type=“image/png”, @original_filename=“Screenshot 2023-10-24 at 11.22.32.png”, @headers=“Content-Disposition: form-data; name="file"; filename="Screenshot 2023-10-24 at 11.22.32.png"\r\nContent-Type: image/png\r\n”>, “client_id”=>“X”}
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 503 Service Unavailable in 10ms (Views: 0.4ms | ActiveRecord: 0.0ms | Allocations: 5007)
ユーザーは、何度かリトライするとうまくいくと報告しています… 別のファイルをアップロードしようとすると、エラーを再現させることができます。ただし、ファイルを1つずつアップロードすると、何らかの理由でエラーが発生しにくくなります。
# free -h
total used free shared buff/cache available
Mem: 15Gi 3.8Gi 621Mi 1.1Gi 10Gi 10Gi
# lscpu --parse=core | egrep -v # | sort -u | wc -l
2
UNICORN_WORKERS: 4
db_shared_buffers: "1024MB"