gpt4 book ai didi

linux - 如何故意将 Linux 中的可用内存减少给定量?

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:32 25 4
gpt4 key购买 nike

我正在寻找一种快速而肮脏的方法来分析内存密集型第三方应用程序在内存减少的情况下的行为,并确定“最小可用可用内存”阈值。

you@yours:~$ free
total used free shared buffers cached
Mem: 993M 879M 113M 1.1M 15M 116M

you@yours:~$ hogMem 100 &
you@yours:~$ free
total used free shared buffers cached
Mem: 993M 979M 13M 1.1M 15M 116M

you@yours:~$ date; runTheThing; date;
you@yours:~$ fg
you@yours:~$ ^C
you@yours:~$ free
total used free shared buffers cached
Mem: 993M 879M 113M 1.1M 15M 116M

在上面,我可以用什么来hogMem

我希望使用现有命令来完成此操作,而不会陷入复杂的编程问题。通过谷歌搜索这个问题,我找到了 1,000 个页面,内容是关于如何获得更多可用内存,而不是更少。

更新2016/04/28:

所以,感谢@Cyrus的提示,我找到了一个 super 方便的方法来做到这一点

you@yours:~$ sudo mkdir -p /media/temporary_ram_disk
you@yours:~$ sudo mount -t tmpfs -o size=2048M tmpfs /media/temporary_ram_disk/
you@yours:~$ sudo chown you:you /media/temporary_ram_disk/

you@yours:~$ cd /media/temporary_ram_disk/
you@yours:/media/temporary_ram_disk$ free -h
total used free shared buffers cached
Mem: 993M 879M 113M 1.1M 15M 116M

you@yours:/media/temporary_ram_disk$ fallocate -l 100M empty_file_100M
you@yours:/media/temporary_ram_disk$ ls -l
total 5120
-rw-r--r-- 1 you you 5242880 Apr 28 12:05 empty_file_100M

you@yours:/media/temporary_ram_disk$ free -h
total used free shared buffers cached
Mem: 993M 879M 13M 1.1M 15M 116M

所以hogMem我使用的实际上是 fallocate !

最佳答案

了解“内存密集型第三方应用程序在内存减少的情况下如何表现”的最佳方法可能是在内存减少的情况下运行它。在 Linux 上,可以使用 prlimit 轻松完成此操作。

例如,要查看 date 如何在其地址空间限制为 1,000,000 字节的情况下运行,请运行:

$ prlimit -v1000000 date
Segmentation fault

要查看它在地址空间限制为 10,000,000 字节的情况下如何运行,请运行:

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

还可以限制目标程序对许多其他资源的访问。例如,还可以限制打开文件的最大数量或最大 CPU 时间。

prlimit 包含在 util-linux 包中。有关其操作的更多详细信息,请参阅 man prlimit

关于linux - 如何故意将 Linux 中的可用内存减少给定量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36898226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com