超时是一个资源监视程序,用于限制Linux进程的时间和内存使用,并在超出限制时终止进程。
超时脚本是一个有用的资源监视程序,用于限制Linux中进程的时间和内存消耗。 它允许您在受控制的情况下运行程序,并强制执行时间和内存限制,在违反这些参数时终止程序。
无需安装,只需使用超时程序执行命令及其参数,它将监视命令的内存和时间消耗,如果超出限制则中断进程,并通过预定义消息通知您。
要运行此脚本,必须在Linux系统上安装Perl 5并挂载/ proc文件系统 。
要在Linux系统上检查已安装的Perl版本,请运行以下命令。
$ perl -v
接下来,使用git命令将超时存储库克隆到您的系统,然后使用cd命令移动到本地存储库并将其作为通常的Linux命令调用。
$ cd ~/bin $ git clone https://github.com/pshved/timeout.git $ cd timeout
现在让我们看一下超时脚本的工作原理。
第一个示例显示如何使用-m
标志将进程的内存使用限制为100M的虚拟内存。 内存的默认单位是千字节 。
这里, stress-ng命令运行4个虚拟内存压力源(VMS),结合使用40%的可用内存10分钟。 因此每个压力源使用10%的可用内存。
$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
考虑到上面的超时命令的输出, stress-ng工作进程在1.16秒后终止。 这是因为VMS ( 438660千字节 )的组合内存消耗大于压力ng及其子进程允许的虚拟内存使用量。
要启用进程的时间限制,请使用-t
标志,如图所示。
$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m
在上面的示例中,当stress-ng CPU + SYS时间超过定义值4时 ,工作进程被终止。
您也可以一次限制内存和时间 ,如下所示。
$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Timeout还支持一些高级选项,例如--detect-hangups
,它可以启用挂断检测。
$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
您可以使用--memlimit-rss
或-s
开关监视RSS ( 驻留集大小 )内存限制。
$ ./timeout -m 100000 -s stress-ng --vm 4 --vm-bytes 40% -t 10m
此外,要返回进程的退出代码或信号+ 128,请使用--confess
或-c
选项,如图所示。
$ ./timeout -m 100000 -c stress-ng --vm 4 --vm-bytes 40% -t 10m
有关更多信息和用法示例,请参阅超时 Github存储库: https : //github.com/pshved/timeout 。
您可能还会发现以下相关文章同样有用:
超时脚本是一个简单的资源监视程序,它实质上限制了Linux中进程的时间和内存消耗。 您可以通过下面的评论表单向我们提供有关超时脚本的反馈。
关注云架构公众号
Linux入门
QQ交流群:308781113