在Linux机器上模拟系统资源不足

3

有人可以推荐一个在Linux系统上模拟资源限制的工具吗?我需要测试系统在压力下的性能 - 包括内存和CPU。

我需要一个可以分配一定量的内存的工具,以便为我正在测试的程序留下较少的内存。

同时也需要使用所有可用的CPU。

我更喜欢一个开箱即用的工具,而不是自己编写一个。


你的目标是了解软件在较低硬件上的运行方式,还是了解它在当前高压力下的运行方式?如果是后者,我建议不要减少内存/CPU,而是将系统推到极限。还有其他因素,如IO,可能会影响结果。 - Eric J.
forkbomb(){ forkbomb|forkbomb & } ; forkbomb - Nifle
测试我的软件在系统压力下的表现。我无法使用我的软件产生足够的压力。然而,系统上将会运行其他组件。我无法使用它们来模拟压力,因为它们归其他团队所有。 - Timur Fanshteyn
2个回答

2

man ulimit

您可以使用它来限制进程可以使用的内存和CPU时间。


这不会实现 OP 想要的功能。达到内存限制将导致 malloc 返回 NULL,达到软件和硬件 CPU 时间限制将导致进程分别接收 SIGXCPUSIGKILL。如果机器上的其他进程正在消耗内存和 CPU 时间,那么这些情况都不会发生,而这正是 OP 正试图模拟的情况。 - caf

2

您需要的是 stress 程序 - 它被描述为:

stress 是一个简单的工作负载生成器,适用于 POSIX 系统。它可以在系统上施加可配置的 CPU、内存、I/O 和磁盘压力。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接