1

これを何よりも議論したい。

それで、私は www.utopiapimp.com にウェブサイトを持っています。現在、1 日あたり 100 万ページ ビューを超えています。このサイトには、常に変化する大量の動的データがあります。「生きた株式ティッカー」と考えてください。ただし、オンライン Web ゲームの場合です。私は深い障害に遭遇しました。

Web アプリの起動時にデータベースからいくつかの静的アイテムをロードしますが、その後、ユーザーがログインするたびに、そのユーザーに対して 15 の db 呼び出しを行い、それらの 15 の db 呼び出しからオブジェクト全体をキャッシュに入れます。私のサーバー モニターでは、4 GB の RAM がゆっくりと 2 GB しか増えていないことがわかります。その後、何が起こるかわかりません。

1 コア CPU VPS は、永遠に 25% から始まります。場合によっては、処理が 50% を大幅に超えることがあります。しかし、約 20 分後、2GBS または RAM が突然約 400mg まで低下し、回復することはありません。

これを何度でも繰り返すことができます。何が原因なのかはわかりませんが、細心の注意を払ってウェブサイトとコードを徹底的にスキャンしましたが、実際のハングアップは見つかりませんでした。キャッシュにアクセスして、キャッシュに多くのものを保存しすぎているのではないかと考え始めましたが、本当に結論には達していません。

そのシナリオを聞いた後、誰かが私が見逃しているかもしれない何かを提案できますか? もしかしてアプリがクラッシュ?そして、受けるヒットの量で再起動するのに苦労し、クラッシュし続けますか?

私はこの問題にかなり悩まされており、解決策が見つからないようです。

より良いvpsにアップグレードすることでうまくいくかもしれませんが、同じ問題を見つけるためにほとんどアップグレードしたくありません.

この 1 週間、私はこれに苦労しており、私のユーザーは本当に解決策を求めているので、ヘルプ pr の提案は素晴らしいものです。

編集

ホスティング会社に連絡し、返事を待っています。他の提案やアイデアは大歓迎です...

本当にありがとう!

4

1 に答える 1

1

machine.configのセクションprocessmodelには、通常、使用可能なメモリの 60% にあるパラメーター memoryLimit が含まれています。アプリケーション プールがリセットされる可能性があります。量を増やしてみて、リセットが発生するかどうかを確認してください。

<processModel ...
          memoryLimit="60"
/>

もう 1 つの可能性は、.NET がメモリ不足になり、キャッシュをクリアすることです。以前は、どのオブジェクトが現在キャッシュに格納されているかを確認できる管理ページを作成していました。

編集:セッションに巨大なデータを保存する場合、必要なメモリはユーザーごとに増加します。セッション タイムアウト後、必要なメモリは減少します。セッションに大量のデータを保存しないように常に注意してください。

于 2011-11-21T06:41:29.677 に答える