xinetdを介してrsyncにniceとioniceを設定する

xinetdを介してrsyncにniceとioniceを設定する

xinetdを介してrsync用のNiceとioniceを設定しようとしています。私はFedora 16を使用しています。この値を使用する理由は、rsyncプロセスをアイドル状態に減らして、他のプロセスが影響を受けずに実行できるようにするためです。

niceとioniceの値を設定しようとしていますが、/etc/default/rsyncこれは私には適していないようです。 rsync プロセスは 19 に設定しても常に良い値 0 で始まります。この設定は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/rsyncの前に以下を追加してみることができます。server誰かがionice電話する、例えばionice -c3

(これがうまくいくかどうかはわかりませんが、うまくいかない場合でもrsyncdデーモンとして実行し、/etc/init.dスクリプトにすべてを処理させることができます。)

関連情報