上一篇: 搜狐开源镜像网站上线
ulimit CPU Time 详谈
[ 2009/09/30 12:08 | by selboo ]
在 ulimit 工具中,有一行 cpu time 选项。在搜索其功能的过程中,大多数文档解释时,就给出一句“CPU 使用最大时间”。并没有详细说明。
这个 CPU 时间,指的是单独一个进程累积使用 CPU 时间限制。
首先,CPU 时间并不是指进程开启了多久,而是指进程占用 CPU 了多少时间。从 top 和 ps 都可以得到具体的数值。
其次,CPU 时间是对单进程累计的,并不是对用户累计的。
我们来看两个例子:
1. 我用户登录一台主机,cpu time 限制为 10 秒。这时我开了一个 screen,在 screen 下跑了两个程序,每个占用 cpu time 5秒。我的程序还能继续运行么?
不能!
因为我的父进程 screen 已经占用了 cpu time 10 秒,此时 screen 被杀掉了。同理,如果你 ssh 进入一台机器,在一个 ssh 下跑了多个程序,ssh 会被杀掉。
2.在 HostMonster 上 apache 是以 nobody 用户跑的,而他出发的 fastcgi 都是以你的用户跑的,假设用户为 tom。
首先,nobody 肯定没有了时间限制,不然 apache 要挂掉了。
apache 触发了两个以 tom 用户为所属的 php 进程。
则这两个进程 cpu time 是不累加的,当每一个达到 10s 时,就会被 kill 掉。
好,有着两个例子,应该很好理解了。
linux ulimit http://selboo.com.cn/Linux_Ulimit/
最后编辑: selboo 编辑于2012/01/16 19:48