5

mmap()大きなデータベース ファイルに効率的にアクセスするために共有メモリを使用するプログラムがあります。巨大なページで実験して、速度が上がるかどうかを確認したいと思います。

データベース ファイルを Linux のhugetlbfsディレクトリにコピーし、古い場所にシンボリック リンクを作成するのが手早く簡単な方法だと思いました。

ただし、cpコマンドがファイルに書き込めないため、これは機能しません。ftrunc()およびmmap()システム コールを呼び出してファイルに書き込むことによってのみ、ファイルを作成できると思われます。既存のツールについて説明する回答が得られない限り、おそらくこれを行うコピー ツールを作成してみます。

Linux でヒュージ ページを使用して共有メモリ マップを実行する他の良い方法を探しています。

4

2 に答える 2

0

今では古い質問です。しかし、誰も答えていないので、実際にはヒュージページのサポートも試してみたいと思っています(さまざまな理由で)。答えを出します。

巨大なページは最新のカーネルでは透過的になりましたが、より多くの制御を行うことができます。

これらの機能は、あなたが探しているものかもしれません。

get_huge_pages()free_huge_pages()get_hugepage_region()free_hugepage_region()

hugetlbfsのラッパーであるlibhugetlbfsをインストールする必要があります。

Linux Weekly の記事が参考になるかもしれません。huge ページ - パート 1 (イントロダクション)

于 2013-02-27T22:20:07.480 に答える