【问题标题】:Check CPU utilization of rsync and kill if it crosses a threshold检查 rsync 的 CPU 利用率,如果超过阈值则终止
【发布时间】:2017-07-06 05:39:52
【问题描述】:

我有一个 shell 脚本依次运行四个 rsync 命令。此脚本计划使用 CRON 作业每 20 分钟运行一次。 有时 rsync 进程会占用高达 30% 的 CPU 利用率,从而降低服务器速度。这会导致问题。

这是我的脚本:

### rsync_script.sh

#!/bin/bash

rsync -avz --delete --bwlimit=5000 /path1/to/file/filename_* root@1.1.1.1:/destination/path1/

rsync -avz --delete --bwlimit=5000 /path2/to/file/filename_* root@1.1.1.1:/destination/path2/

rsync -avz --delete --bwlimit=5000 /path3/to/file/filename_* root@1.1.1.1:/destination/path3/

rsync -avz --delete --bwlimit=5000 /path4/to/file/filename_* root@1.1.1.1:/destination/path4/

我运行 cron 作业:

*/20 * * * * /bin/sh  /path/to/script/rsync_script.sh

我需要检查一下,如果 rsync 的 CPU 利用率超过 5%,那么我需要停止脚本。

感谢任何帮助。

谢谢

【问题讨论】:

  • 由于数据完整性问题,不建议在中途终止 rsync 会话。

标签: linux bash shell rsync


【解决方案1】:

如果使用过多的 CPU 是您的问题,那么与其终止进程,不如将其安排在较低的优先级。

有关执行此操作的工具的说明,请参阅 man 1 nice

您使用的-z 选项是一个压缩选项 - 如果您的 CPU 受限,可能需要调整和测试。

--stats 选项可让您了解 rsync 的内部效率统计数据,在调整时也可以查看。

祝你好运 - 幸运的是你可以调整一些东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2018-10-27
    相关资源
    最近更新 更多