[失敗] .NETのコアのブログサイトの発表リリースされたバージョンは、500エラーの数が多い原因

申し訳ありませんが、今朝のブログサイトの障害は私たちに多くの問題を与え、ご了承ください。これは、私たちがよく準備されたが、原因が、依然として高い同時実行の下で問題の複雑さを過小評価し、.NETのコアのブログサイトの私達の障害リリースバージョンです。

以下は、おおよそ後にバックグラウンドでの障害です。

.NETのコアのブログサイトやブログの背景のリリースバージョン - 夏に、私たちは本格的に.NETのコアを包むために全体の移行プロジェクト忙しいです。当社の他のシステムは、すでに鍬する唯一の最も困難な行残して、.NET Coreおよびオンライン作業いくつかの時間に移行された - ハード鉄の鍬をrootにどの今月ブログシステムを、ほぼ同じ食べてきましたラインは、そのリリース私達の全体の.NETのコアの移行プロジェクトの完璧なフルストップを描画、および.NETのコア3.0リリースの正式版を満たすために、このマイルストーンを渡します。

そのため、.NETのコアブログサイトやブログの背景のリリースバージョンは8月に私たちの最も重要な仕事になります。私たちのテストで問題を発見するために、生産の流れの一部にグレーのリリースアクセスが見つけて修正することができなかった一方で、7月のブログサイトの.NET Coreバージョンはに、この時間は、さらにクローズドベータを行い、開発を完了しましたより多くの生産フローテストおよび修理への最後の週末のアクセスの後、私たちは自信を持って、我々はテスト環境のブログに複雑なシステムの並行性の高いシナリオでシミュレートすることができないことを除いて、すでに、公式リリースの条件を持っていることを評価しています。

だから、別に自信を持って、高並行性の問題についての懸念を持つ一方で、我々は今朝早く、それを公開することを決めました。

放出は.NETコア3.0プレビュー7に基づいて、ブログシステム(EFコアが使用されるか、または3.0プレビュー5)、アリクラウドのCentOSサーバの7セットはドッカーの群れのクラスタを設定するようになっている展開シナリオ、ワーカーノードとして6個の4コア8Gサーバブログサイトのアプリケーションコンテナを実行し、1 2コア4Gは、サーバノード(任意のコンテナを展開しない)の管理者として、各ワーカーノードはnginxのと.NETコアブログアプリケーションコンテナを展開し、すべての要求は、平衡アリクラウドに転送されますnginxのコンテナは、コンテナにnginxの.NETコアアプリケーションによって転送された容器は、nginxのワーカーノードサーバは、ポートマッピングの方法により、ポート80をリッスン。

このようなデプロイメント環境は、ブログは非常に高い同時実行システムではないことだけで実績のある、実績のある当社の長さです。

リスクは二つの高並行性の問題(ドッキングウィンドウの群れと.NETコア)を身に着けていた、我々は今日の周りの5:30 AMにリリースされました。

小さなボリューム、低同時実行、何の問題への訪問を始めましたが、問題は、コマンドをカールしないよう要求して容器の中にいる間、午前8時30分の周りに(ミリ秒の通常、数十)二以上開くために、多くのブログページが登場10ミリ秒。

$ EXEC -tの$(名= blog_web -q -fドッカーPS)をドッカーカール-H ' X-転送先プロト:HTTPS ' - wの%{time_total} -oは/ dev / nullが- ローカルホストだ 
 0.002876

nginxの問題が疑われる、再作成ドッカクラスタへの準備ができて、直接nginxのチョウゲンボウモニタポート80を使用しないでください。

その後、同僚が指摘し、nginxのは問題ではありませんが、高い同時実行でのドッキングウィンドウの群れポートマッピングのパフォーマンスの問題、変更のみのホストネットワークポートマッピングモードは、この問題を解決することができます。

9時30分ごろ、より高い並行処理として、nginxのコンテナが500エラーをのgettin、それは群れのクラスタをドッキングウィンドウするようにサーバーを追加し、クラスタ内の高すぎるサーバーの負荷だと思ったが、助けにはならない、500エラーを取得そしてより多くの。

500エラー、時にはリフレッシュは時々使用すると、1台のサーバに加えて、テストにcurlコマンドで容器に数回、クラスタサーバーが不安定であることを、いくつかの容疑者、サーバのクラスタ上ので、ログをリフレッシュしたい、良くなります応答速度をテストする不安定、他のサーバcurlコマンドが正常で、問題が解決されないが、並行処理の量と増加し続ける組立ラインをオフに設定し、より安定サーバは、500エラーが増加し続けています。

さらに分析した後、500エラーが原因で、.NETのコアアプリケーション・コンテナの下で高い同時nginxのコンテナ間のネットワーク通信に問題が疑われるので、このリリースを与えることを決め、10:30の周りのWindowsの.NET Framework上で動作するようにフォールバックブログサイトのバージョンは、正常に戻りました。

おすすめ

転載: www.cnblogs.com/cmt/p/11302666.html