パフォーマンスのボトルネックを特定する方法は?

これを検索してみましたが、最近投稿されたものは見つからなかったので、何が正常で期待できるかを判断するために質問することにしました。

他のフォーラムから最近移ってきたのですが、最初のページロードは比較的速いのですが、Discourseではページはロードされるものの、サーバー結果に基づいてページを構築するためのサーバー遅延なのか、クライアント/JS遅延なのか、レンダリングを待っている間スピニングサークルが表示されます。

遅延は約5〜10秒ですが、それ以降は一般的にパフォーマンスは問題ありません。

問題がサーバー/ホスティングの可能性が高い場合、通常の СУЩНОСТЬは何ですか?メトリクスはすべて低く見えます。CPU、ディスク、メモリは最大化されていないように見えるので、結果がサーバーに実際に関連していない場合、どこに$$を投資すべきかわかりません。Discourseが何かを待っている間に時間を費やしている場所を示すのに役立つメトリクスを監視または確認するためのヒントはありますか?

最初のページがどこまでレンダリングされるか、ここで確認できます。CDN を利用すると役立つかもしれません。

どのくらい? ここはどこ?

Discourseのバージョンはいくつですか?

確認・テストしているトピックには、いくつの投稿がありますか?

Fast and Meta I suspect :wink:

「いいね!」 1

最新の 2.8.x で、ユーザーは 30 人ほどです。デュアルコア vCPU、2GB RAM、SSD ディスクで実行しています。

前述のとおり、サーバー上のすべてのメトリクスは負荷がないことを示していますが、ページが完全にレンダリングされる前に 5 秒間スピニングする理由がわかりません。

したがって、確認または監視することは何もありませんか?インストールしてすべてが順調であることを祈るだけですか?

実際には、サーバーがコールドダウンするようなもので、しばらく行われていないページの更新をリクエストしているだけです。バックエンドの部分がスリープ状態になるか、使用頻度が低いと、最初に使用する人が通常よりも少し長く待つことになるのでしょうか?

30ユーザーというのは、同時接続ユーザー数ですか、それとも全ユーザー数ですか?

もし30同時接続ユーザー数であれば、スペックは少し低いかもしれません。

メモリ使用量は平均でどのくらいですか? 30〜50〜80%?

Google Analyticsの速度とパフォーマンスチャートを見ていたところ、2.2から2.9に移行して以来、改善ではなく悪化が見られました。しかし、もっと詳しく調べる必要があります。体感的な遅延は特に感じておらず、むしろ速くなっているようにさえ思えます。私が知らないだけで、Google Analyticsが何かを知っているのでしょうか?

また、トピックあたりの10K投稿制限についても読みました。投稿数が多い場合、表示する前にすべてをメモリにロードする必要があるため、最初に表示される際に遅延として認識される可能性があるとのことです。

一度ロードされれば、あとはすべて速くなるように感じます。私は専門家ではありませんが、ブラウザが原因である可能性や、Discourseエクスペリエンスを提供するために使用されるその他のさまざまなテクニックも考えられます。

これはホスト上のVPSですか、それとも他のものですか?どのようにインストールされましたか?2vcpuが何であるかを知ることは役立ちます。すべてのプロセッサが同じではありません。

インスタンスとクライアントの間に何かありますか?リバースプロキシまたはCloudFlareのようなものですか?

「いいね!」 1

開発者ツールを開いてエラーメッセージを確認したところ、a) フォントが見つからないか、b) 正しいFQDNではなくIPアドレスが使用されていることがわかりました。IPアドレスが正しいかどうかは不明です。

「https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9」のFetchEventはネットワークエラー応答をもたらしました。プロミスは拒否されました。
Promise.then (async)
(匿名) @ Router.mjs:60
「https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9」のFetchEventはネットワークエラー応答をもたらしました。プロミスは拒否されました。
Promise.then (async)
(匿名) @ Router.mjs:60
NetworkFirst.mjs:167 未捕捉 (プロミス内) no-response: no-response :: [{\"url\":\"https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9\"}]
    at a.makeRequest (https://community.hubivue.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)
makeRequest @ NetworkFirst.mjs:167
color_definitions_light_4_1_530ebcc4a553d42866a6f343d784841cf5c0b816.css:1          GET https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9 net::ERR_FAILED
NetworkFirst.mjs:167 未捕捉 (プロミス内) no-response: no-response :: [{\"url\":\"https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9\"}]
    at a.makeRequest (https://community.hubivue.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)
makeRequest @ NetworkFirst.mjs:167
color_definitions_light_4_1_530ebcc4a553d42866a6f343d784841cf5c0b816.css:1          GET https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9 net::ERR_FAILED

Google Cloud VMで、ホストとWebの間には何もありません/CDNはありません

わかりました。このインスタンスはGoogleでホストされているようですね。

DNS名を設定する前に、IPアドレスでインストールしようとした人がいましたか?

「いいね!」 1

すごい…フォントの選択をデフォルト(つまりArial)に戻したら、すべて正常に動作しました。フォントの選択にバグがあるか、何かがずれているようです。ケースクローズ、とりあえずArialで我慢します。

「いいね!」 1

おそらく。不明です。それが問題である場合、元に戻す方法はありますか?

IPアドレスの使用を試みた後にホスト名を使用するように切り替えたかによります。

標準インストールの手順に従ってインストールしましたか?インスタンスを構築した人に、何が行われたのかを確認するために話を聞くべきです。IPアドレスが他の場所で参照されている可能性があります。

「いいね!」 1

インストールをリセットしたり、これを修正したりするコマンドはありますか?ホスト名を二度と変更できないのは馬鹿げているように思えます。それは意図的な制限ですか?

基本的なフォントが使用されるようになり、パフォーマンスは問題なく動作するようになりました。問題はGoogle Robotoフォントの使用に関連しているようです。

「いいね!」 1

このガイドに大体従えばいいということですね…

試しても害はないが、インスタンスの履歴を知らなければ、公式にサポートされているインストールを実行しているかどうかさえ確認できない。

「いいね!」 1