niceとは何か?
Linuxでは、プロセスの優先度は「Niceness(ナイス値)」で表現されます。`nice`コマンドはこの値を設定してプログラムを実行します。
Niceness(ナイス値)の理解
値が**大きいほど良い(Nice)**プロセスです。つまり、他のプロセスにリソースを譲ります。
- 範囲: -20 (最も高い優先度/自己中心的) ~ 19 (最も低い優先度/譲歩)
- デフォルト値: 0 (標準優先度)
- 負数の使用: 優先度を上げる(負の値)にはルート(root)権限が必要です。
主要オプション (Shell)
優先度値(`-n`)と実行するコマンドを組み合わせて使用します。
1. 優先度を指定して実行
2. ヘルプ
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`nice` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用シナリオ例
実務でシステム負荷を管理するために使用するパターンです。
低い優先度でバックアップを実行 (リソースを譲る)
nice -n 10 tar -czf backup.tar.gz /var/www
大容量の圧縮(`tar`)タスクを実行する際に、Webサーバーなどの他の重要なサービスが遅くならないように、ナイス値を10に上げて(譲って)実行します。
非常に低い優先度で実行
nice -n 19 ./heavy_computation.sh
最大値である19を与え、システムがアイドル状態のときのみCPUを使用するようにします。
高い優先度で実行 (root権限が必要)
sudo nice -n -10 ./critical_service
重要なプロセスに高い優先度(-10)を与え、CPUを優先的に使用させます。負の値を設定するには`sudo`が必要です。
表記法の注意
nice -n -5 command
オプションの`-`と負数の`-`が合わさると`-10`のように見えることがあります。`nice -10`は`nice -n 10`(正の10)の古い表記法であるため、混同を避けるために`-n`を明示することをお勧めします。
インストール
niceは「GNU Coreutils」に含まれる基本コマンドであり、ほとんどすべてのLinuxディストリビューションに標準でインストールされています。
インストール確認
別途インストールなしで、すぐに使用できます。
ヒント&注意事項
nice vs renice
2つのコマンドの違いを明確に理解しておいてください。
- nice: コマンドを**新しく開始する際に**優先度を付与します。
- renice: **すでに実行中の**プロセス(PID)の優先度を変更します。
- 確認方法: `top`や`htop`で`NI`カラムを見ると、現在のプロセスのnice値を確認できます。