nr_requests adalah parameter untuk perangkat blok, ia mengontrol permintaan maksimum yang dapat dialokasikan di lapisan blok untuk permintaan baca atau tulis, nilai defaultnya adalah 128 . Terkadang, mungkin disarankan untuk menyesuaikan nilainya, secara umum:
- Meningkatkan nilai akan meningkatkan throughput I/O, tetapi juga akan meningkatkan penggunaan memori.
- Menurunkan nilai akan menguntungkan aplikasi waktu nyata yang sensitif terhadap latensi, tetapi juga menurunkan throughput I/O.
Posting ini menjelaskan tentang cara mengatur parameter secara permanen di seluruh sistem reboot.
1. Buat aturan udev baru.
Misalnya, buat file /etc/udev/rules.d/71-nr-requests.rules , dengan konten berikut:
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"
Aturan di atas akan menyetel nr_requests ke 256 untuk semua perangkat sd*, jika Anda perlu memasukkan beberapa perangkat ke daftar hitam (misalnya sda, dan sdb), gunakan aturan seperti:
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. Terapkan aturan
Sebelum menerapkan aturan, verifikasi nilai parameter “nr_requests”:
$ grep "" /sys/block/sd*/queue/nr_requests /sys/block/sda/queue/nr_requests:128 /sys/block/sdb/queue/nr_requests:128
Terapkan aturan pada CentOS/RHEL 6 atau lebih tinggi:
# udevadm trigger
Gunakan ini di CentOS/RHEL 5
# udevtrigger
Setelah menerapkan aturan, verifikasi nilai parameter “nr_requests”:
$ grep "" /sys/block/sd*/queue/nr_requests /sys/block/sda/queue/nr_requests:256 /sys/block/sdb/queue/nr_requests:256