私はこのセットアップを見ています:
アプリケーションがランダムなフォルダーに保存されているファイルにアクセスする場合、各ファイルの読み取りには60〜100ミリ秒かかります。テストツールを使用すると、ファイルを開くときに遅延が発生するようです。その場合、データの読み取りにかかる時間はごくわずかです。
要約すると、これは、50個のファイルを読み取るのに3〜4秒かかりやすいことを意味します。書き込みはバッチで行われるため、ここではパフォーマンスは問題になりません。
私はすでにSOおよびSFに関するアドバイスに従って、これらの数値に到達しました。
contig
を実行して、フォルダーとファイルを最適化します( https://stackoverflow.com/a/291292/1059776 )読み取り時間についてはどうしますか?
[〜#〜]更新[〜#〜]
コメントで述べたように、システムはSymantec Endpoint Protectionを実行します。ただし、これを無効にしても読み取り時間は変わりません。
PerfMonは、読み取りあたり10〜20 msを測定します。これは、ファイルの読み取りに最大6回のI/O読み取り操作が必要であることを意味します。これはMFTルックアップとACLチェックですか?
MFTのサイズは〜8.5 GBで、メインメモリよりも大きくなります。
サーバーに十分なメモリがありませんでした。 NTFSメタファイルデータをメモリにキャッシュする代わりに、すべてのファイルアクセスに複数のディスク読み取りが必要でした。いつものように、一度見れば問題は明らかです。私の視点を曇らせたものを共有しましょう:
サーバーは、タスクマネージャーとRamMapの両方で使用可能な2 GBのメモリを示しました。したがって、どちらのWindowsも、利用可能なメモリがメタファイルデータの意味のある部分を保持するのに十分ではないと判断しました。または、一部の内部制限により、メタファイルデータにメモリの最後のビットを使用できません。
RAMタスクマネージャーをアップグレードすると、メモリの使用量が表示されなくなります。しかし、RamMapは複数のGBのメタファイルデータがスタンバイデータとして保持されていると報告しました。明らかに、スタンバイデータは大きな影響を与える可能性があります。
分析に使用したツール:
fsutil fsinfo ntfsinfo driveletter:
NTFS MFTサイズを表示する(または NTFSInfo )