BLOGTIMES
«Prev || 1 || Next»
2008/08/07
[ by hsur at 16:44]

バックグラウンドで重いプログラムを走らせるときには

 

このサーバはログの分析や、バックアップなどで重たいバッチを1日に何回か起動させています。そのようなバッチの起動中にはHTTPのレスポンスが低下してしまうので、バッチ処理を行っているプロセスの優先度を下げる設定を調べてみました。

Manpage of nice

引数なしで実行すると、 nice は自身が継承したスケジューリング優先度を表示する。それ以外の場合には、 nice はスケジューリング優先度を調整してから与えられた command を実行する。 adjustment が与えられなかった場合には、 command の優先度は 10 増加される。 nice によって調整できる優先度の範囲は -20 (優先度最高) から 19 (優先度最低) までである。負の adjustment を与えるには適切な特権 (通常はスーパーユーザー権限) が必要である。 ほとんどのシェルには同名の組み込みコマンドがあるので、単に "nice" として実行すると、ここで記述されたものとは異なった機能のものが実行されるだろう。

例えば./hoge.plの優先度を最低で起動するには以下のようにすればいいようです。

/bin/nice -n 19 ./hoge.pl

ちなみに既に起動されているプロセスの優先度を変更するにはreniceで変更することができるようです。
ちょっとバッチに仕込んでみて様子を見ようと思います。

Category: Tips | / | Comment(0) | TrackBack(0) | Permalink |
«Prev || 1 || Next»