それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

圧縮処理のnice値を下げて、圧縮処理はのんびりやりたい。

HDDバックアップデータの圧縮処理とかそんなに急がないんですよ。
でもlzma とか選ぶとCPUリソースを食って、レスポンスが悪くてシェルの作業が止まる。

自分の時間が一番の高コストです。圧縮処理のためにLinuxの応答待ちとかちょっと我慢できない。

圧縮処理は後回しで、自分のことやりたい

沢山のlzma の圧縮をしながら、別処理をしたい時とかあります。


dd したデータをlzma圧縮の優先度を下げる。

圧縮処理は終わればいいのであって、急いで終わる必要がない。

そこでLinuxのプロセスの優先度である。

niceが大きいほど他のプロセスに道を譲る。つまり、nice値は大きいほどナイスガイになる。

Nice初期値は0でニュートラルである。

お急ぎ -19,ー18,ー17,、、、、−1、0、1,2,、、、、18,19 ゆっくり

ただし

通常 使えるNice値は 0~20 。

優先度20以上は許されない。
優先度−1から下もマイナス制限されている。

/etc/security/limits.confを書き換えで制限を外すことが出来る。

普通は、そこまで必要ないので

デフォルトの0が優先、急がないプロセスは優先度を落とす。という設計方針でいい。

たとえばバックアップをnice=3にすれば、

バックアップより、通常処理が優先されるよね。されるよね。ってことですの。

niceの決め方。

nice値を指定するのは プログラム起動時、起動後のどちらでもいい。

プログラム起動時に指定する

 nice -n 番号 コマンド

プログラム起動後に変更する

 renice 番号 -p プロセス番号

Nice値の確認

お馴染みpsコマンドを引数を増やして使う。

ps auxf のオプション nice

何もしてない時

takuya@atom:~$ ps f -U takuya  -o  args,pid,nice
COMMAND                       PID  NI
sshd: takuya@pts/0           2509   0
 \_ -bash                    2510   0
     \_ screen               2617   0
         \_ SCREEN           2618   0
             \_ /bin/bash    2619   0
             |   \_ sudo dd  2687   0
             \_ /bin/bash    2694   0
             |   \_ lzma de  2778   0
             \_ /bin/bash    2782   0
             |   \_ sudo ap  2979   0
             \_ /bin/bash    2916   0
                 \_ ps f -U  3072   0


ddも全部ゼロですねー

niceを変えてみましょう

lzmaの優先度を下げます。lzmaは遅いです。バックアップファイルを圧縮しているのですが、lzmaは小さくなるが、処理に時間が掛かるし、そもそもバックアップの圧縮なら、時間を着にしないので、優先度を下げましょう

takuya@atom:~$ renice 3 2778
2778 (process ID) old priority 0, new priority 3

変更を確認

takuya@atom:~$ ps f -U takuya  -o  args,pid,nice
COMMAND                       PID  NI
sshd: takuya@pts/0           2509   0
 \_ -bash                    2510   0
     \_ screen               2617   0
         \_ SCREEN           2618   0
             \_ /bin/bash    2619   0
             |   \_ sudo dd  2687   0
             \_ /bin/bash    2694   0
             |   \_ lzma de  2778   3
             \_ /bin/bash    2782   0
             \_ /bin/bash    2916   0
                 \_ ps f -U  3089   0


ちゃんと変わりました。これでとりあえず起動しておいて、細かいことはあとで!とできます。安心です