首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cpulimit实际上并不限制CPU的使用。

cpulimit实际上并不限制CPU的使用。
EN

Unix & Linux用户
提问于 2019-11-27 16:30:02
回答 1查看 2.9K关注 0票数 3

我从cron打电话给D1

00 16 * * * /usr/bin/cpulimit --limit 20 /bin/sh /media/storage/sqlbackup/backups.sh

当作业开始时,CPU会像往常一样发出尖峰和警报,没有实际的可识别的限制发生。作业本身遍历一个由许多子目录组成的目录,每次执行rsync's操作,我认为这是生成rsync子进程(运行top将为被调用的rsync提供一个pid,几分钟后,rsync将有一个不同的pid )。

我不知道如何正确地利用cpulimit来有效地限制这个过程所消耗的使用量。

记住这是一个带有2GRAM和1vCPU的VM,这一点可能很重要。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-11-27 17:16:36

默认情况下,cpulimit不限制子进程,因此rsync完全不受限制。如果您正在运行一个最新版本的cpulimit,您应该能够使用--include-children (或-i)选项。(另见这个答案。)

代码语言:javascript
复制
$ cpulimit -h
Usage: cpulimit [OPTIONS...] TARGET
   OPTIONS
      -l, --limit=N          percentage of cpu allowed from 0 to 400 (required)
      -v, --verbose          show control statistics
      -z, --lazy             exit if there is no target process, or if it dies
      -i, --include-children limit also the children processes
      -h, --help             display this help and exit
   TARGET must be exactly one of these:
      -p, --pid=N            pid of the process (implies -z)
      -e, --exe=FILE         name of the executable program file or path name
      COMMAND [ARGS]         run this command and limit it (implies -z)

Report bugs to .

将您的cron条目更改为:

00 16 * * * /usr/bin/cpulimit --include-children --limit 20 /bin/sh /media/storage/sqlbackup/backups.sh

编辑:正如OP自己回答的那样,它将对脚本中的cpulimit命令进行rsync操作,但这并不能确保脚本在执行其他功能时表现得很好。例如,如果脚本必须处理一个庞大的目录,它可能会使系统陷入瘫痪,并导致CPU尖峰和警报。

票数 9
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/554459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档