任意のプロセスが占有できるRAMの量を制限する方法は?


12

4 GBのRAMで実行されているOS Xマシンがあるとします。単一のプロセスが3 GB以上を占めることがないように設定することは可能ですか?したがって、プロセスのメモリ消費量に関係なく、システムの応答性を維持するために常にいくらかのメモリが残っていますか?


6
いいえ。これは逆効果になります。RAMの割り当てをマイクロ管理することは、OSが設計されたものではありません。空きRAMは無駄なRAMです。あまりにも多くは、OS Xの貧弱なRAM管理から作られています。Activity Monitorを閉じて、あなたの人生を続けることが最善の解決策のようです。

8
@cksumコメントには大部分の一連の仮定がありますが、そのほとんどが間違っています。OS Xのメモリ管理を後部座席にしようとはしていません。私が実際にやっているのは、かなり簡単に暴走プロセスに変わるコードをテストしながら、十分なシステム機能を保持する方法があるかどうかを調べることです。エラーを修正できるものであれば、空きRAMは無駄なRAMではありません。
Fomite

3
申し訳ありませんが、質問がアプリケーションのプログラミング(開発とテスト)に関連している場合は、このフォーラムのトピック外です。質問の種類に関する詳細については、FAQをご覧ください:apple.stackexchange.com/faq

10
FFS、これはプログラミングの質問ではありません。これはOSの質問です。任意のプロセスが使用できるメモリを制限する-Safari、Matlab、Call of Duty、その他-OSレベルでのOSの問題は明白です。
フォミテ

7
本質的に仮想メモリに関するものである「Appleの愛好家とパワーユーザー」の質問のサイトであることは、明らかに限界にあり、話題になっています。開発が関連している場合でも、これはチューニングまたはパフォーマンスの問題に有効です。
bmike

回答:


9

これと同様の質問がここに記載されています。MacOSアプリケーションが使用できるRAMの量を制限するにはどうすればよいですか?

彼らはulimitコマンドの使用を推奨していますが、希望する量に制限することができませんでした。彼らが遭遇した問題は、-uまたは-vを設定するオプションがメモリページングシステムを考慮していないという事実だったと思います。たとえば、実際のRAMでプロセスにX量のスペースしか割り当てることができませんが、 1日中仮想メモリにアクセスできます。

これは、危険な仮想メモリの無効化である可能性があり、RAMが実行されるとMacがロックするなどのことに注意してください。

引数-l、-m、または-vを指定してulimitを実行してみてください。ただし、ulimitのマニュアルページに記載されているように、これらの設定に注意を払うかどうかをOSに伝えます。

ulimit:ulimit [-SHacdefilmnpqrstuvx] [limit]

シェルリソースの制限を変更します。

そのような制御を許可するシステムで、シェルおよびシェルが作成するプロセスで使用可能なリソースを制御します。

OS Xがulimitを無視するかどうかを確認する明確なソースを実際に見つけることはできませんが、参照されたulimitが失敗した後

ulimitを自分のニーズに合わせて機能させることができる場合は、それを試してみてください。ulimitの組み合わせや仮想メモリを無効にすると、選択プロセスでその3 GBの制限を設定できる場合があります。参考までに、Snow Leopard System 10.6の仮想メモリ完全に無効にする方法について詳しく説明しています。

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

これはおそらく正しい答えのように見えます。次にこれを実行するときに試してみます。今のところ、答えを受け入れます。
媒介物

5

MacでLion(または新しいOSX)サーバーを実行している場合、そのMacのVM(VirtualBox、Parallels、またはVMWareなど)内でOSXを実行できる場合があります。VMを3 GBの物理RAMに制限すると、VM内のアプリやプロセスもそのように制限されます。VM内のOSがバッキングスワップディスク制限またはクラッシュした場合でも、VMをホストするシステムは応答性を維持する必要があります。

暴走する可能性のあるプロセスをデバッグしている場合は、VMにsshしてコマンドラインからデバッガーまたはデバッグnubを実行し、ロックアップするまでログを記録できる場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.