0

DotNetZip ライブラリで奇妙なパフォーマンスの問題が発生しています。

アプリケーション (asp.net で実行) では、データベースから一連のファイルを読み取り、ユーザーがダウンロードできるようにオンザフライで zip ファイルにパックします。

私の開発用ラップトップではすべて正常に動作します。デフォルトの圧縮率で約 10MB の zip ファイルは、完了するまでに約 5 秒かかります。ただし、顧客の開発サーバーでは、同じファイル セットを圧縮するのに約 1 ~ 2 分かかります。私はさらに長い時間、数分まで経験しました。zip 実行中の CPU 使用率は 100% ですが、それ以外はほぼ 0% のままで、過負荷ではありません。

さらに興味深いのは、実稼働サーバーでは、完了するまでに約 20 秒かかることです。

どこから探し始めるべきですか?

いくつかのハードウェア仕様:

私のノートパソコン

2コア、4GB RAM専用のvirtualbox上で動作する開発環境。

  • コア i5 M540 2,5GHz
  • 8GBのRAM
  • Win7

開発サーバー

マイコンピュータのプロパティダイアログによると(おそらく仮想化)

  • インテル Xeon 5160 3GHz
  • 540MBのRAM
  • Windows 2003 サーバー

タスク マネージャー レポート シングル コア

本番サーバー

マイコンピュータのプロパティダイアログによると(おそらく仮想化)

  • キセノン 5160 3GHz
  • 512MBのRAM
  • Windows 2003 サーバー

タスク マネージャー レポート デュアル コア

更新 サーバーは VMWare ホスト上で実行されています。タスクバーに隠れている VMWare アイコンを見つけました。

4

2 に答える 2

0

ミッチが言ったように、ウイルススキャナーはおそらくあなたの最善の策でしょう。これは、開発サーバーがシングルコアマシンであり、本番サーバーがデュアルコアである(そしておそらくウイルススキャナーがない)ことと組み合わされて、遅延を説明する可能性があります。また、知っておく価値があるのは、それらのマシンのディスクのタイプです。たとえば、本番サーバーとラップトップにSSDがあり、開発サーバーに低回転の非常に古い標準ハードディスクがある場合、これも遅延の原因になります。開発サーバーと本番サーバーのzipfolderのI/O読み取り/書き込みのビューを取得してみてください。SysInternalsツールを使用できます。そのため、ウイルススキャナーやその他の予期しないプロセスを実行している場合は、おそらくそこに違いが見られます。ここでは、SysInternalsツールが原因をすばやく見つけるのに役立つ可能性があります。

更新: zipはメモリ内で作成されるとコメントしたので、追加したいのですが、これらのツールを使用して、メモリ内で何が起こっているのかをよりよく理解することもできます。開発サーバーと本番サーバーが非常に似ているため、ほぼ同等の結果が期待できる数分の遅延により、ページファイルについて考えさせられます。開発サーバー上に大量のメモリを要求している他のプロセスがあるかどうかを確認してください。 。zip操作に十分なスペースが残っていない場合、開発サーバーはページファイルの使用を開始します。これは非常にコストがかかります。

于 2011-10-13T06:51:28.327 に答える
0

ここではハードウェアに問題があるように見えました。

顧客の IT 担当者は、仮想化された開発サーバーが実行されているサーバー ハードウェアをアップグレードしました。ローカル コンピューターと同じパッケージ サイズとファイル数で圧縮時間が約 6 秒になりました。

[マイ コンピューターのプロパティ] ウィンドウに次の仕様が表示されます。

  • AMD 天才 II X6 1100T
  • 3.83GHz 1.99GB RAM
于 2011-12-14T10:27:15.343 に答える