2010-11-20 7 views
0

親愛なるすべて、私はRedhat Linuxを使用しています。特定のプロセスに最大メモリを設定する方法。例えば、私は単独でeclipseに最大メモリ使用量を割り当てる必要があります。私はthis.Give私にいくつかの解決策を割り当てることは可能ですか?Linuxでのプロセス用メモリの割り当て

+0

私はそのメモリを特定のプロセスのために永久的に設定したいと思います。 – Mohan

答えて

1

メモリ使用量を制御することはできません。仮想メモリをサポートしているオペレーティングシステム上の単一のプロセスを知ることは非常に複雑です(たぶん不可能)ので、使用される実際のメモリの量ではなく、仮想メモリのサイズのみを制御できます。

使用されているすべてのメモリが、プロセスの仮想アドレス空間に、カーネルの使用やディスクキャッシュなどの特定の瞬間に表示されるわけではありません。プロセスは、好きなだけ頻繁にマップされたページを変更することができます(たとえば、mmap()など)。プロセスのアドレス空間の一部はマッピングされていますが、実際には使用されていないか、または1つ以上の他のプロセスと共有されています。これにより、プロセスごとのメモリ使用量を測定することは、実際には実現不可能な目標になります。

そして、VMサイズに上限を置くことは良い考えではありません。そうすれば、より多くのものを使用しようとするとプロセスが強制終了されることになります。

この場合(Javaプロセスの場合)これを行う正しい方法は、適切に文書化されたさまざまなJVMスタートアップオプションを使用してヒープの最大サイズを設定することです。ただし、1Gb未満に設定しないでください。

+0

ええ、私はこのタスクのための任意の解決策を見つけることができませんでしたマークです。私はAndreのソリューションを試しました。しかし、それは仮想メモリのみを制御します。私はヒープメモリサイズ(Java用)を増やすために最後のポイントを選ぶ。 。 – Mohan

2
ulimit -v 102400 
eclipse 

...は、eclipse 100MiBのメモリを与えます。

+0

ありがとう、プロンプトでこのコマンドを与えた後、eclipseに100MBを割り当てます。どのように日食のためにこの割り当てられたメモリを見つけるか。 – Mohan