2016-04-27 7 views
-1

私は、メモリー集約型のサードパーティー・アプリケーションが、メモリー条件の下でどのように動作し、「最小限の実行可能な空きメモリー」しきい値を決定するかを分析する迅速で汚い方法を探しています。私は意図的にLinuxで一定量の空きメモリを減らすことができますか?

[email protected]:~$ free 
      total  used  free  shared buffers  cached 
Mem:   993M  879M  113M  1.1M  15M  116M 

[email protected]:~$ hogMem 100 & 
[email protected]:~$ free 
      total  used  free  shared buffers  cached 
Mem:   993M  979M  13M  1.1M  15M  116M 

[email protected]:~$ date; runTheThing; date; 
[email protected]:~$ fg 
[email protected]:~$ ^C 
[email protected]:~$ free 
      total  used  free  shared buffers  cached 
Mem:   993M  879M  113M  1.1M  15M  116M 

上記では、hogMemのために何が使用できますか?

私は、複雑なプログラミングの問題に陥ることなく、既存のコマンドでそれを行うことを望みます。グーグルでこの問題を解決する方法については、1000ページ分を取得します。続きを読む

アップデート2016年4月28日:

だから、私はこれを行うには、スーパー便利な方法を発見し、@Cyrus

により、ヒントのおかげ
[email protected]:~$ sudo mkdir -p /media/temporary_ram_disk 
[email protected]:~$ sudo mount -t tmpfs -o size=2048M tmpfs /media/temporary_ram_disk/ 
[email protected]:~$ sudo chown you:you /media/temporary_ram_disk/ 

[email protected]:~$ cd /media/temporary_ram_disk/ 
[email protected]:/media/temporary_ram_disk$ free -h 
      total  used  free  shared buffers  cached 
Mem:   993M  879M  113M  1.1M  15M  116M 

[email protected]:/media/temporary_ram_disk$ fallocate -l 100M empty_file_100M 
[email protected]:/media/temporary_ram_disk$ ls -l 
total 5120 
-rw-r--r-- 1 you you 5242880 Apr 28 12:05 empty_file_100M 

[email protected]:/media/temporary_ram_disk$ free -h 
      total  used  free  shared buffers  cached 
Mem:   993M  879M  13M  1.1M  15M  116M 

私が使用しているので、hogMem実際にはfallocateです!

+0

どのディストリビューションおよびバージョンを使用しますか? – Cyrus

+2

http://people.seas.harvard.edu/~apw/stress/ –

+0

@Diego Torres Milanoを試すことができます。ありがとう。これらはすべて本当に素晴らしいアイデアです。私はまだ一緒に行こうとしています。 –

答えて

3

おそらく、「メモリ使用量の多いサードパーティアプリケーションがメモリ条件を減らして動作する仕組み」を確認する最良の方法は、メモリ条件を減らして実行することです。 Linuxでは、これはprlimitで簡単に行えます。

例えば、1,000,000バイトに制限され、そのアドレス空間を持つdate実行すると、実行方法を確認するには:それは10,000,000バイトに制限され、そのアドレス空間で実行する方法

$ prlimit -v1000000 date 
Segmentation fault 

を確認するには、次のコマンドを実行します

$ prlimit -v10000000 date 
Wed Apr 27 12:00:13 PDT 2016 

他の多くのリソースへのターゲットプログラムのアクセスを制限することもできます。例えば、オープンファイルの最大数または最大CPU時間も制限することができます。

prlimitは、util-linuxパッケージに含まれています。操作の詳細については、man prlimitを参照してください。

関連する問題