はじめに
こんにちは!今回はniceコマンドについて解説します。
niceはプロセスの優先度を設定して実行するコマンドです。コンピュータのCPUパワーを効率的に配分するときに使います。バックアップなど時間のかかる処理を実行する際に、システム全体の動作を遅くしないようにするのに便利ですね。
「プロセス君、ちょっと遠回りしてもいい?」みたいな感じで、優先度を下げて実行できるコマンドです。
niceコマンドとは
niceは、プロセスの優先度(nice値)を指定してコマンドを実行する外部コマンドです。
Linuxではプロセスに優先度があって、優先度が高いほどCPUを多く使用できます。niceコマンドを使うと、優先度を下げてプロセスを実行でき、他のプロセスに邪魔にならないようにできます。バックアップやログ解析など、時間がかかっても構わない処理に最適ですね。
基本構文
|
|
nice値は-20から19までの範囲で指定でき、数字が小さいほど優先度が高く、大きいほど優先度が低くなります。デフォルト値は0です。
主なオプション
| オプション | 説明 |
|---|---|
-n 値 |
nice値を指定(-20~19、デフォルト0) |
--help |
ヘルプを表示 |
--version |
バージョン情報を表示 |
使用例
例1: デフォルト優先度を下げて実行
|
|
実行結果:
|
|
tarコマンドを実行する際、デフォルト値(10)下げた優先度で実行します。
例2: 優先度を明示的に指定
|
|
実行結果:
|
|
nice値を5に設定して、ファイル検索を実行します。
例3: 最も低い優先度で実行
|
|
実行結果:
|
|
nice値を19(最も低い値)に設定してバックアップを実行。システムへの影響が最小限になります。
例4: スクリプトを低優先度で実行
|
|
実行結果:
|
|
シェルスクリプトを優先度を下げて実行します。
例5: データベースダンプを低優先度で実行
|
|
実行結果:
|
|
大きなデータベースのダンプを取得する際、システムに負荷をかけにくくなります。
例6: 定期的なクリーンアップを低優先度で実行
|
|
実行結果:
|
|
古いテンポラリファイルの削除を低優先度で実行。
例7: パイプで複数コマンドを組み合わせ
|
|
実行結果:
|
|
複数のコマンドをパイプで組み合わせる場合、bashで一つのプロセスとして実行します。
例8: ビデオ変換を低優先度で実行
|
|
実行結果:
|
|
CPU負荷が高い動画変換を低優先度で実行。
Tips・注意点
スーパーユーザーのみ優先度を上げられる
|
|
優先度を上げる(マイナスの値)場合は、sudoで実行する必要があります。一般ユーザーは優先度を下げることのみできます。
crontabで低優先度実行
|
|
cronで定期実行するジョブを低優先度で実行すると、日中のユーザー操作に邪魔になりません。
既存プロセスの優先度変更
|
|
niceは実行時に優先度を指定しますが、既に実行中のプロセスの優先度を変更したい場合はreniceコマンドを使います。
実践的な使い方
定期的なバックアップタスク
|
|
毎日実行するバックアップスクリプトを低優先度で実行。通常業務に支障が出ません。
ログ圧縮処理
|
|
30日以上前のログファイルを低優先度で圧縮。ディスク容量を効率的に管理できます。
インデックス再構築
|
|
大きなテーブルのインデックス再構築を低優先度で実行。データベース操作による負荷を最小化できます。
ファイルシステムの整理
|
|
ゼロサイズのファイルをシステム全体から削除。低優先度で実行することで、システムのレスポンスに影響しません。
まとめ
niceコマンドのポイント:
- プロセスの優先度を指定して実行する外部コマンド
- -n 値: nice値を指定(-20~19、デフォルト0)
- 一般ユーザーは優先度を下げることのみ可能
- スーパーユーザーは優先度を上下できる
- バックアップやログ処理など時間がかかる処理に最適
- 既に実行中のプロセスはreniceで変更
- よく使う組み合わせ:
nice -n 10,nice -n 15
バックアップや重い処理を実行する際にniceを使うと、システム全体のユーザー体験が向上します。時間に余裕のある処理に優先度を下げるのは、Linux管理者の基本技ですよ!