GNU/Linux >> Linux の 問題 >  >> Linux

アプリケーションのメモリ使用量を制限するには?

はい、VSZ は仮想メモリです。 RLIMIT_AS に関して、上記の段落はどこで見つけましたか? setrlimit(2) は Linux システム コールであるため、ライブラリ関数である malloc(3) をどのように監視できるかわかりません。代わりに、brk(2)、sbrk(2)、および mmap(2) でのみ動作します。これは、そのマンページ (Scientific Linux のチェック済み) が示唆するものでもあります。ただし、これらの関数を介して要求されるメモリの総量は 仮想メモリであるため、 RLIMIT_AS は実際に仮想メモリを制限します。 (これも、setrlimit(2) マンページに準拠しています。)

残念ながら、Linux では RSS を制限できません (これは ulimit -m になります)。 )。 ulimit -d を試すことができます (RLIMIT_DATA) ですが、これには通常、大規模な割り当てに使用される Linux 4.7 以降の mmap(2) のみが含まれます。別の可能性として、仮想メモリを制限することもできますが、RSS と VSZ の違いが非常に大きいため、これは難しいかもしれません。


多くのプロセスは、そのメモリの一部を他のプロセスと共有します。 libc はほぼすべてのプロセスで使用されますが、メモリにマップされるのは一度だけですが、すべてのプロセスの仮想メモリ使用量にカウントされます。特定のプロセス (主に RSS) のみが使用するメモリ使用量を制限するには、cgroups を使用します。その方法については、プロセスとその子の合計リソース (メモリ) を制限する方法への回答を参照してください。これにより、プロセスとその子プロセスの合計メモリが制限されます。


Linux
  1. Linuxのメモリ使用量

  2. LinuxでプロセスのCPU使用率を制限する方法

  3. PHPのメモリ制限を増やす方法

  1. Linux –単一のLinuxプロセスのメモリ使用量を制限しますか?

  2. パイプラインはメモリ使用量をどのように制限しますか?

  3. IISのアプリケーションプールでCPU使用率を制限する方法

  1. PHPのメモリ制限

  2. アプリケーションまたはプロセスの実際のメモリ使用量を測定するにはどうすればよいですか?

  3. ClamAV のメモリ使用量を減らすには?