プロセスの開始時にプロセスをイオン化したいと思います。
ホスティング環境では、古いParallels Confixxサーバーを使用します。 (はい、わかっています。Confixxは古いですが問題ではありません。)
Expressを使用してメールを送信するときに、プロセスが/usr/bin/imap Maildir
I / O全体を消費し、CPU負荷が高くなることがあります。私たちは常にionice –c 3 –p [PID]
プロセスを手動でイオン化()し、I / Oを削除します。各imapプロセスを自動的にイオン化する最良の方法は何ですか?私はエクスプレスメールサーバーの経験はあまりありません。
答え1
ionice
デフォルトのIMAPプロセスで実行できます。この設定は子プロセスに継承されます。
find /path -printf""
おそらく、ページキャッシュにメタデータを保持するために、毎分すべてのメールディレクトリでそれを実行すると便利です(データが多すぎて他のコンテンツにさらにキャッシュが必要な場合を除く)。
答え2
別のソリューションで宅配プロセスを分離することができます。グループ階層を指定し、パラメータを指定します(あなたのIO帯域幅)。ブロックIOコントローラ。
私は以下から派生することができる特に簡単な例を見つけました。このリンク。
さらに、cpuact、memory、net_prioなどの他のコントローラーパラメータを指定できます。以下でより多くのコンテンツを見つけることができます。Linuxカーネルドキュメント。
答え3
基本プロセスの ionice が機能しないようで、「courier-imap」と「courier-imap-ssl」のinitスクリプトを修正しましたが、これはうまくいくようです。
case "$1" in
start)
if [ "$START" = "yes" ]; then
log_daemon_msg "Starting $PROGRAM" "$DAEMON"
umask $IMAP_UMASK
ulimit -v $IMAP_ULIMITD
/usr/bin/env - /bin/sh -c " set -a; \
bindir=${bindir}; \
. ${sysconfdir}/imapd; \
if [ "$SSLCONFIG" ]; then . ${sysconfdir}/imapd-ssl; fi; \
IMAP_STARTTLS=$IMAPDSTARTTLS ; export IMAP_STARTTLS ; \
PROXY_HOSTNAME=$PROXY_HOSTNAME;
TLS_PROTOCOL=$TLS_STARTTLS_PROTOCOL ; \
ionice -c3 /usr/sbin/courierlogger -pid=$PIDFILE -start $LOGGEROPTS \
$TCPD -address=$ADDRESS \
-maxprocs=$MAXDAEMONS -maxperip=$MAXPERIP \
$TCPDOPTS \
$PORT ${libexecdir}/courier/imaplogin \
${bindir}/imapd $MAILDIRPATH"
log_end_msg 0
fi
誰でも改善のための提案があれば教えてください。