2011-09-13 16 views
0

sysconfigで指定された共有メモリ制限サイズを超えて共有メモリブロックのサイズを増やすためにftruncateを使用できますか?物理メモリが不足してもスワップを使用するにはどうすればよいですか?共有メモリサイズがsysconfig制限を超えています

+0

デフォルトでは、/ dev/shmのサイズは物理メモリ全体の50%です。 50%の制限をすべて使い果たしてしまった場合、Linux上のCアプリケーションでスワップ空間を使用さ​​せるにはどうすればいいですか?デフォルトの動作では、「ディスクに空き領域がありません」というエラーが表示されます。 – user900563

答えて

2

共有メモリブロックのサイズを大きくするために使用することができftruncateの...

ftruncate()は、ファイルのサイズを変更します。そのファイルのメモリマッピングのサイズは変更されません。だから答えはいいえです。

... sysconfigで指定された共有メモリの制限サイズを超えていますか?

この制限を破ることはできません。ユーザーはrootでもその制限を変更できます。

物理メモリが不足してもスワップを使用するにはどうすればよいですか?それを仮定

は一方向ではなくファイル全体よりも、一度にファイルの唯一のマップの部分にある、メモリマップされたファイルです。プロセスが使用可能な物理メモリより多くの仮想メモリを使用する場合、オペレーティングシステムは自動的にスワップを使用して物理メモリを解放します。

+0

答えをありがとう。問題は、プロセス1によってダンプされたファイルをプロセス2で再度ロードする必要があるということです。したがって、ファイルの一部をmmapしても、最終的に、次のプロセスでファイルをダンプする必要があります。私はスワップを使う必要があります。 – user900563

+0

申し訳ありませんが、あなたの質問をよく理解できません。 –

+0

物理メモリは20GBだが、/ dev/shm /は10GBだが、共有メモリブロックには20GBのファイルが必要だ。私はroot権限を持っていません。 – user900563

関連する問題