我有一个 .sh 脚本,里面有很多 jar 文件。每个 jar 文件都有唯一的启动参数。我必须限制所有 jar 文件每个使用的 CPU 不超过 %5。
nohup java -a dsasda -p adss
nohup java -a dsasad -p adds
nohup java -a dsdasa -p adsa
nohup java -a dsdsa -p adds
nohup java -a ddassa -p adas
Run Code Online (Sandbox Code Playgroud)
我一直在阅读 cpulimit 工具,如何使用它来定位单个 jars?
小智 7
cpulimit我会用你建议的工具来领导;cpulimit绝对可以为所欲为。
nohup cpulimit --background --limit=5 -- java -a dsasda -p adss
请记住,5% 是单个 CPU 内核的5% ,而不是机器总计算能力的5% 。如果您想使用 5% 的多核机器,请扩大规模。
您可能还想将--quiet参数传递给 cpulimit。
如果您的愿望不是将进程具体限制为 5%,而只是为了防止 java 使您的机器陷入困境,请考虑改为使用nice.
nicenice将降低您的 Java 进程的优先级,以便它们不会占用所有 CPU 时间并减慢速度。与cpulimit,不同,nice如果没有其他人想使用它,它将让 java 进程使用超过 5% 的 CPU。
nohup nice java -a dsasda -p adss
nice接受一个可选参数,--adjustment=N其中 N 是一个整数,范围从 19(非常低的优先级)到 0(正常)甚至到 -20(非常高的优先级,但仅当您是 root 用户时才可用)。它会默认为 10,这可能没问题。
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |