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
スクリプトにすべてを処理させることができます。)