fix mq-deadline for hdds: 2
This commit is contained in:
@@ -44,13 +44,20 @@
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
path = with pkgs; [
|
||||
coreutils
|
||||
gawk
|
||||
zfs
|
||||
];
|
||||
script = ''
|
||||
for dev in /sys/block/sd*; do
|
||||
[ -f "$dev/queue/rotational" ] || continue
|
||||
[ "$(cat "$dev/queue/rotational")" = "1" ] || continue
|
||||
|
||||
# skip removable devices (USB sticks report removable=1)
|
||||
[ "$(cat "$dev/removable")" = "0" ] || continue
|
||||
# Only tune disks in the hdds pool — not all rotational disks.
|
||||
# zpool status gives by-id device names; we resolve to /sys/block/<name>.
|
||||
zpool status hdds | awk '/^\t/ && $1 ~ /^(ata-|nvme-|scsi-)/ {print $1}' | while read -r id; do
|
||||
link="/dev/disk/by-id/$id"
|
||||
[ -L "$link" ] || continue
|
||||
name=$(basename "$(readlink -f "$link")")
|
||||
dev="/sys/block/$name"
|
||||
[ -d "$dev" ] || continue
|
||||
|
||||
echo mq-deadline > "$dev/queue/scheduler"
|
||||
echo 4096 > "$dev/queue/read_ahead_kb"
|
||||
@@ -63,7 +70,7 @@
|
||||
|
||||
echo 4096 > "$dev/queue/max_sectors_kb" 2>/dev/null || true
|
||||
|
||||
echo "Tuned $(basename "$dev"): mq-deadline, 4M readahead, 15s deadlines"
|
||||
echo "Tuned $id -> $name: mq-deadline, 4M readahead, 15s deadlines"
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user