Las nr_requests es un parámetro para el dispositivo de bloque, controla el máximo de solicitudes que se pueden asignar en la capa de bloque para solicitudes de lectura o escritura, el valor predeterminado es 128 . Ocasionalmente, se puede sugerir ajustar el valor, en términos generales:
- Aumentar el valor mejorará el rendimiento de E/S, pero también aumentará el uso de la memoria.
- Reducir el valor beneficiará a las aplicaciones en tiempo real que son sensibles a la latencia, pero también reduce el rendimiento de E/S.
Esta publicación explica cómo configurar el parámetro de forma permanente en los reinicios del sistema.
1. Cree una nueva regla udev.
Por ejemplo, cree el archivo /etc/udev/rules.d/71-nr-requests.rules , con el siguiente contenido:
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"
Las reglas anteriores establecerán nr_requests en 256 para todos los dispositivos sd*, si necesita incluir algunos en la lista negra (por ejemplo, sda y sdb), use reglas como:
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. Aplicar la regla
Antes de aplicar la regla verifique el valor del parámetro “nr_requests”:
$ grep "" /sys/block/sd*/queue/nr_requests /sys/block/sda/queue/nr_requests:128 /sys/block/sdb/queue/nr_requests:128
Aplique la regla en CentOS/RHEL 6 o superior:
# udevadm trigger
Use esto en CentOS/RHEL 5
# udevtrigger
Después de aplicar la regla, verifique el valor del parámetro "nr_requests":
$ grep "" /sys/block/sd*/queue/nr_requests /sys/block/sda/queue/nr_requests:256 /sys/block/sdb/queue/nr_requests:256