Takhle to pouzivam ja:
[Unit] Description=Disk tuning After=local-fs.target [Service] Type=oneshot ExecStart=/tunici/skript.sh ExecStop=/skript/ktery/nastavi/puvodni/hodnoty.sh RemainAfterExit=true StandardOutput=journal [Install] WantedBy=multi-user.target
/tunici/skript.sh
#!/bin/bash
for disk in /sys/block/sd*; do
echo bfq > /sys/block/$disk/queue/scheduler
done
Asi bych to spíš řešil přes udev pravidla, např. něco jako
SUBSYSTEM=="block", KERNEL=="nvme?n?", ATTR{wwid}=="eui.0025385791b0c2ef", ATTR{queue/scheduler}="..."
Nebo to rovnou řešit podle rozlišení typu disku (SSD/NVME, klasický). Koneckonců už přímo v distribučních pravidlech vidím
KERNEL=="sd*[!0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
V systemd lze rc.local taky použít, jenom se možná musí aktivovat, něco jako sudo systemctl enable rc-local
Svatou valku initu bych do toho netahal. Snad vsechny distra nacitaj neco jako /etc/sysctl.d/ nebo /etc/sysctl.conf ne?
tesne vedle :-) existuji sysfsutils... s configy /etc/sysfs.d/ a v /etc/sysfs.conf
25. 2. 2020, 08:39 editováno autorem komentáře
V RHELu 8 se doporučuje nastavit diskový plánovač buď pomocí Tuned nebo pravidel udev: Setting the disk scheduler
Možná proto, že produkční distra pro koncové uživatele s jádrem 5.4 nebo vyšším povětšinou ještě nevyšla? Současné Ubuntu má 5.3, Fedora tuším taky, Debian, RHEL a CentOS mají mnohem starší verze.