通过xinetd为rsync设置nice和ionice

通过xinetd为rsync设置nice和ionice

我正在尝试通过 xinetd 为 rsync 设置 Nice 和 ionice。我正在运行 Fedora 16。我想使用这些值的原因是将 rsync 进程减少到空闲状态,以便其他进程运行不受影响。

我试图用来/etc/default/rsync设置nice和ionice值,但看起来这些对我不起作用。 rsync 进程始终以良好的 0 值启动,即使我将其设置为 19。这些设置在 xinetd 中有效吗?还有另一种方法可以通过 xinetd 实现良好的 rsync 吗?

这是我的配置文件:

/etc/rsync.conf:

log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[share]
<shares go here>

/etc/xinetd.d/rsync:

service rsync
{
    disable = no
    flags           = IPv6
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/bin/rsync
    server_args     = --daemon
    log_on_failure  += USERID
}

/etc/default/rsync:

RSYNC_ENABLE=inetd
RSYNC_OPTS=''
RSYNC_NICE='19'
RSYNC_IONICE='-c3'

答案1

感谢 sr_ 的指点,我似乎有了解决方案。

/etc/xinet.d/rsync添加/更改了这些行:

service rsync
{
...
    nice            = 19
    server          = /usr/bin/ionice
    server_args     = -c 3 /usr/bin/rsync --daemon
...
}

要使用ionice,我需要将服务器值更改为ionice而不是rsync。然后添加rsync到参数部分以便ionice启动它。

答案2

这些 Debian 的片段/etc/default/rsync(Fedora 可能不会转移太多),

# run rsyncd at a nice level?
# ...
RSYNC_NICE=''

# run rsyncd with ionice?
# ...
# RSYNC_IONICE='-c3'

让我觉得*NICE价值观只影响rsyncd守护进程。观察一下/etc/init.d/rsync,我们发现

if [ -s $RSYNC_DEFAULTS_FILE ]; then
    . $RSYNC_DEFAULTS_FILE
    case "x$RSYNC_ENABLE" in
        xtrue|xfalse)   ;;
        xinetd)         exit 0
# ... the next lines examine the *NICE variables...

即,如果rsync与 一起使用inetd,则这些*NICE值根本不重要。

您可以尝试替换rsync中的行inetd.conf

rsync   stream  tcp     nowait  root   /usr/bin/rsync rsyncd --daemon
                                       ^^^^^^^^^^^^^^

我想,用一些命令行设置你的[io]nice值。

编辑划掉您正在使用的最后一句话,xinetd因此,如果您想尝试它,则必须更改rsync您所包含的片段中的命令:

service rsync
{
...
    server          = /usr/bin/rsync
...
}

编辑2判断从,有一个xinetd配置项要求nice命令的良好性:

nice    Changes the server priority like the nice command does.

因此,您可以尝试组合设置nice=19/etc/xinetd.d/rsyncserver命令前面加上有人ionice打电话,例如ionice -c3

(不过,我不确定这是否有效。但如果不起作用,您仍然可以rsyncd作为守护进程运行并让/etc/init.d脚本处理一切。)

相关内容