nr_requests はブロック デバイスのパラメータです。読み取りまたは書き込みリクエストのブロック レイヤに割り当てられる最大リクエスト数を制御します。デフォルト値は 128 です .一般的に言えば、値を調整することが推奨される場合があります:
- 値を大きくすると I/O スループットが向上しますが、メモリ使用量も増加します。
- 値を小さくすると、レイテンシに敏感なリアルタイム アプリケーションにメリットがありますが、I/O スループットも低下します。
この投稿では、システムの再起動後もパラメーターを永続的に設定する方法について詳しく説明しています。
1.新しい udev ルールを作成します。
たとえば、/etc/udev/rules.d/71-nr-requests.rules ファイルを作成します。 、次の内容:
SUBSYSTEM!="block", GOTO="end_rule" ENV{DEVTYPE}=="partition", GOTO="end_rule" ACTION!="add|change", GOTO="end_rule" KERNEL=="sd*", ATTR{queue/nr_requests}="256" LABEL="end_rule"
上記のルールは、すべての sd* デバイスに対して nr_requests を 256 に設定します。一部 (sda や sdb など) をブラックリストに登録する必要がある場合は、次のようなルールを使用します:
SUBSYSTEM!="block", GOTO="end_rule" ENV{DEVTYPE}=="partition", GOTO="end_rule" ACTION!="add|change", GOTO="end_rule" KERNEL=="sda|sdb", GOTO="end_rule" KERNEL=="sd*", ATTR{queue/nr_requests}="256" LABEL="end_rule"
2.ルールを適用
ルールを適用する前に、「nr_requests」パラメータの値を確認してください:
$ grep "" /sys/block/sd*/queue/nr_requests /sys/block/sda/queue/nr_requests:128 /sys/block/sdb/queue/nr_requests:128
CentOS/RHEL 6 以降にルールを適用します:
# udevadm trigger
CentOS/RHEL 5 で使用
# udevtrigger
ルールを適用した後、「nr_requests」パラメータ値を確認してください:
$ grep "" /sys/block/sd*/queue/nr_requests /sys/block/sda/queue/nr_requests:256 /sys/block/sdb/queue/nr_requests:256