1

メモリを大量に消費するマルチスレッド イメージ プロセッサのフロントエンドである Web アプリケーションを使用しています。Web アプリケーションが大規模な画像処理タスクを開始するときに、メモリが不足しています。

Web アプリケーションに割り当てられたメモリに影響を与えない方法 (バックグラウンドなど) でこれらのタスクを実行するにはどうすればよいですか?

私はこの種の問題に慣れていませんが、まさにこれを行うためのテクニックが .NET にあると思います。私の Web サーバーは ASP.NET MVC4 を実行しています。これは、私が対象としているテクノロジを理解してもらうためです。

画像プロセッサへのコマンドライン インターフェイスは問題なく動作するため、画像プロセッサの最適化は問題ではありません。

4

1 に答える 1

2

似たような状況に遭遇したことがありますが、メモリを集中的に使用するタスクで Web サーバーに負荷をかけることは決して良い考えではありません。Webサーバーは、Webページを提供するという1つのことで非常に優れています。さらに多くのことを要求すると、Webサーバーを必要としない何かを実行するために多くのオーバーヘッド(Webサーバー)を負担しています。

私たちが行ったことは、Redis を使用してメッセージ キューを設定することです。これが正確なものかどうかはわかりません。別の機能よりも必要なさまざまな機能があるためです。しかし、パスを開始するには十分です。

https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-redis

使用できるキューはこれだけではありません。MS にもキューがあると思います。次に、同じキューをリッスンするはるかに小さいサーバーをクラウドにセットアップしました。イベントが終わったら。それはそれを処理し、そして...

  • IIS のオーバーヘッドがなかったので、はるかに高速でした。
  • あるユーザーは別のユーザーのエクスペリエンスに影響を与えませんでした
  • 2 台の小さなマシンを作成して、1 台の大きなマシンでやろうとしていたことを達成することができました。

HTH

于 2013-04-28T06:22:53.017 に答える