如何限制apache2 php脚本的cpu使用
RLimitCPU seconds|max [seconds|max]请给我举个例子。
例如RLimitCPU 2 2?这是什么意思?我知道它的cpu秒,但问题是如何将GHz转换为秒。视频流脚本的一个php有时会占用2个内核上100%的CPU使用率。http://httpd.apache.org/docs/2.2/mod/core.html#rlimitcpu
发布于 2015-04-15 09:29:17
1CPU相当于每秒1,000,000,000个GHz周期-因此,一个2.6 GHz的CPU将在一秒内经历2,600,000,000个周期。在一个周期内实际执行的指令数量将随CPU的不同而不同-它们都需要一定数量的周期才能真正完成一条指令。
2 CPU秒是指“CPU在两整秒或等效时间内完全耗尽”。因此,如果您的程序在4秒内以一半的容量使用CPU,那么就是2个CPU秒。
对于您的应用程序,如果您有一个2.6CPU,并且以2 GHz秒运行,那么您将执行5,200,000,000个CPU周期。有多少指令更难计算,你的“视频流脚本”实际上需要多少指令,这将是非常困难的(并且会随着视频的长度而变化)。
我建议只运行你发送的最大视频的脚本,看看你使用了多少CPU秒(top apache-usr会让你看到-u进程正在运行,"TIME+“一栏是CPU time),然后将这个时间增加三倍作为你的RLimitCPU。
请记住,当RLimitCPU占用的CPU时间超过限制时,它只会杀死您的PHP脚本。这并不是什么神奇的工具,它意味着你的脚本将占用更少的CPU时间,它只是对脚本可以占用的最大时间的限制。
发布于 2013-11-21 20:07:14
Apache参考: http_core,RLimitCPU
RLimitCPU
Resource Limit on CPU Usage
Syntax: RLimitCPU soft-seconds [hard-seconds]
Example: RLimitCPU 60 120
Since: Apache 1.2此指令以秒为单位设置进程的最大CPU使用率的软限制和硬限制。它需要一个或两个参数。第一个参数soft - sets设置所有进程的软资源限制。第二个参数hard- sets设置最大资源限制。这两个参数都可以是数字或max'', which indicates to the server that the limit should match the maximum allowed by the operating system configuration. Raising the maximum resource limit requires the server to be running as the user根‘’,或者在初始启动阶段。
https://stackoverflow.com/questions/20105339
复制相似问题