mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - ionice でディスクI/Oによる負荷を調整!

[ pc_tips ] [ Linux ]

こんばんは。

ご存知のとおり、プロセス実行優先度の管理は nice コマンドで行います。

今回は、ディスク I/O 優先度の管理を行う ionice についての備忘録です。

0. 前提条件

  • Debian GNU/Linux 8 Jessie での作業を想定。

1. 使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ ionice --help

ionice - sets or gets process io scheduling class and priority.

Usage:
  ionice [OPTION] -p PID [PID...]
  ionice [OPTION] COMMAND

Options:
  -c, --class <class>   scheduling class name or number
                           0: none, 1: realtime, 2: best-effort, 3: idle
  -n, --classdata <num> scheduling class data
                           0-7 for realtime and best-effort classes
  -p, --pid=PID         view or modify already running process
  -t, --ignore          ignore failures
  -V, --version         output version information and exit
  -h, --help            display this help and exit
  • スケジューリングクラス(-c)について
    • 1(RealTime) … 最も優先度が高い。
    • 2(Best-Effort) … 1(RealTime) と 3(Idle) の間。
    • 3(Idle) … 最も優先度が低い。
  • プライオリティ(-n)について
    • スケジューリングクラス 1(RealTime) と 2(Best-Effort) にのみ使用可能。
    • 07 … 値が小さいほど優先度が高い。

2. 使用例

以下は、コマンド cmd をディスク I/O 優先度を最高にして実行する例。

1
$ ionice -c 1 cmd

以下は、コマンド cmd をディスク I/O 優先度を最低にして実行する例。

1
$ ionice -c 3 cmd

以下は、コマンド cmd をディスク I/O 優先度をベストエフォート(優先度最低)にして実行する例。

1
$ ionice -c 2 -n 7 cmd

以下は、プロセス番号 1234 で実行中のプロセスのディスク I/O 優先度を確認する例。

1
$ ionice -p 1234

以下は、プロセス番号 1234 で実行中のプロセスのディスク I/O 優先度を最低に変更する例。

1
$ ionice -c 3 -p 1234

以下は、コマンド cmd をプロセス優先度を最低、ディスク I/O 優先度も最低にして実行する例。(マシンに最も負荷をかけない方法)

1
$ nice -n 19 ionice -c 3 cmd

非力なマシンで作業を行うことの多い当方にとっては、非常によく使用するコマンドです。

当然ながら、ディスク I/O の負荷が低く抑えられる代わりに処理に時間がかかります。

以上。

Comments