0

ばかげたことをしているのかもしれませんが、そのためには 100 GB 必要です。起動時にメモリマップファイルを使用してそれらを割り当てていますが、それはほぼ瞬時に行われます。私は 32 GB の物理メモリしか持っていないので、プログラムを再配置して、20 GB のチャンクで動作し、多くの作業を行った後にのみ別のチャンクに切り替えました。-mx24GLinuxボックスでプロセスを開始しています。

何が起こるかというと、最初のチャンクの終わりに近づくことはありません。CPU はほとんどアイドル状態で、HD は常に非常にビジーです。このプロセスはおそらく 6 GB を超えることはありません。これが、処理が進まない理由を説明しています (局所性が非常に悪く、ほぼすべてのメモリ アクセスがページ フォールトです)。

しかし、プロセスがより多くの実メモリーを使用しないのはなぜでしょうか? まだ 15 GB の空き容量があり、かなりの数のプロセスを簡単にスワップできます。


ファイルはプロセスの最初に作成されるため、空です。プロセスが実際に空のページを不必要にフェッチしていたようです。そのため、シーケンシャル スキャンを先頭に追加したところ、プロセスはすぐに 20 GB になりました。しかし、それはすべてについてです...

各メモリアクセスがディスクへのライトスルーであるかのように、CPU はまだアイドル状態です。どうしたの?

4

0 に答える 0