--
    --.--

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加
    2014
    05.30

    プロセスの優先度を変える

    ブログの月間アクセス。
    あと滋賀・鳥取・愛媛・佐賀県の4県からアクセスがあれば
    全国制覇なんですけど、なかなか埋まりません^-^;

    というか、今年の1月までさかのぼってみても
    鳥取県からは一度もアクセスがない(爆)
    嫌われてるんだろうか?^-^;
    見に来て下さいおねがいします。



    前回やったプロセス優先度を変える方法。
    いろいろ勉強になったので
    自分用にまとめてみました。

    psコマンドでプロセスの情報をチェック


    例として、Rapport Trusteerというアプリのプロセス(rapportd)の優先度を上げる操作をしてみます。
    ターミナルでの作業になります。

    psコマンドを使ってプロセスの情報を見てみます。
    ps alxww | grep -i rapportdと入力。
    501 747 142 0 33 0 972704 44208 - S ?? 0:02.42 /Library/Rapport/bin/rapportd.app/Contents/MacOS/rapportd
    501 1192 1091 0 31 0 2435548 308 - U+ s000 0:00.00 grep -i rapportd

    出てきた結果は2件。1つ目が目的のRapportのプロセス、
    2つ目はこの検索で使ったgrepのプロセスなので関係ないです。

    余計なgrepのプロセスを表示しないようにするには

    ps alxww | grep -i rapportd | grep -v grepとか
    ps alxww | grep -i "[r]apportd"と入力するといいみたい。

    改めてrapportdのプロセスを見てみると
    ps alxww | grep -i "[r]apportd"
    501 747 142 0 33 0 972704 44208 - S ?? 0:02.42 /Library/Rapport/bin/rapportd.app/Contents/MacOS/rapportd

    2つ目の項目がprocess ID(747)、6つ目の項目がnice値=プロセスの優先度(0)。

    psコマンドにはオプションの設定方法が複数ある

    ここまではハイフンをつけずにオプションを設定するBSDオプション方法でやっていました。
    ハイフンをつけるUNIXオプションだと解釈も変わってきます。
    ps -alxww | grep -i "[r]apportd"
    501 747 142 4000 0 33 0 973744 38492 - S 248c0000 ?? 0:57.58 /Library/Rapport/bin/rapportd.app/Contents/MacOS/rapportd

    さっきと若干表示が変わり、2つ目の項目がprocess ID、7つ目の項目がnice値になります。


    ちなみに、一発でprocess IDをとってくるには…
    ps -alwxx | grep -i "[r]apportd" | awk '{print $2}'
    psでプロセス一覧を取得、その結果からgrepでrapportdを含む行を抽出、awkで2つ目の項目を抽出、という一連の動作になります。
    パイプ(|)でつなぐことで結果を次々に渡していってくれます。

    reniceコマンドでプロセスの優先度を変える


    psコマンドでは情報を見るだけ。
    nice値を変えるにはniceまたはreniceコマンドを使います。
    nice 設定したいnice値 processIDといった形で設定します。

    現在起動中のプロセスのnice値を変更したい時はreniceコマンドを使います。
    renice 設定したいnice値 processID

    nice値はプロセスの優先度を決める値(-20 ~ 20)で、
    20が優先度最低、0が基準値、-20が最優先になります。

    なお、nice値をマイナス値、例えば-15に設定するときは
    管理者権限が必要なのでsudoを先頭につけて実行します(実行時にパスワードを聞かれます)。
    process IDが747のときは以下のようなコマンドになります。
    sudo renice -15 747

    ここまでの一連の動作を一行のシェルスクリプトにすると以下のようになります。
    sudo renice -15 `ps -alwxx | grep -i "[r]apportd" | awk '{print $2}'`
    バッククオートでくくった範囲がコマンドとして実行され、結果がreniceコマンドに使われます。
    いろんな技があるんですね〜

    参考1:不定期メモ: OS X でプロセスの優先度を変更するには?
    参考2:psをgrepした結果からgrep自身を除外する方法 - Linux入門 - Webkaru
    参考3:tangram_pieces: reniceコマンドで少しだけ快適に(Mac OS X)(2013-5-25 追記)
    関連記事

    このエントリーをはてなブックマークに追加
    トラックバックURL
    http://w6o6n.blog.fc2.com/tb.php/115-3c28a406
    トラックバック
    コメント
    管理者にだけ表示を許可する
     
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。