0

現在、NUMA マシンで作業しています。ディスク I/O を実行すると、キャッシュされたページが現在のノード (ノード 0) に溜まり始めるという問題に遭遇しました。そして、malloc新しい記憶をさらに進めると、それらは別のノード (ノード 1) に移動し、パフォーマンスが低下しました。

2つの解決策を考えていますが、うまくいくかどうかはわかりません。

(1)numa_alloc_onnode()ノード 0 で使用します。しかし、これがノード 0 のページ キャッシュを上書きする可能性があるのか​​、それともノード 1 に移動するのかはわかりません。

(2) ノード 0 のキャッシュが蓄積し始めるたびに削除する (ノード 1 のキャッシュは有用であるため、削除しないでください)。しかし、これを行う方法がわかりません。

4

1 に答える 1

0

mmap経由でディスク IO を実行する必要があります。1 つ目は、NUMA システムから RAM をいっぱいにしている場合、おそらく大量の IO を実行しているため、そうすることでパフォーマンスが向上します。2 つ目は、OS が割り当てを行う場所を制御できるようになるためです (または移動することさえあります)。その後のページ) numa ライブラリを使用します。

mmap を実行する前にスレッドを適切な場所に移動したくない場合は、numactl とインターリーブ ポリシーを使用してプロセスを実行することもできます。

于 2014-08-06T13:37:09.610 に答える