Данное руководство есть объединение информации в интернетах с пояснениями простым языком что да как.
Итак, лично я использую на десктопе Fedora 29 поэтому все пояснения будут даны для федоры, но всё тоже самое будет справедливо для
любого дистрибутива с systemd на борту.
TRIM
Для начала нам нужно включить trim. Ранее вы скорее всего видели руководства что для этого нужно включить опцию discard в fstab.
Это устаревший метод, называемый online discard или continuous trim. Не рекомендуется его использовать, так как во-первых он может вызвать ошибки в файловой системе:
https://bugs.launchpad.net/ubuntu/+source/fstrim/+bug/1449005
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790520
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/ata/libata-core.c#n4519
а во-вторых он создаёт лишнюю нагрузку с которой должен бороться.
Вместо этого следует включить таймер:
Код: Выделить всё
sudo systemctl enable fstrim.timer
scheduler
По умолчанию на большинстве дистрибутивов планировщик дисковых операций установлен в CFQ.
Проверить это можно так:
Код: Выделить всё
$ cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
Чтобы автоматически менять планировщик при загрузке создаём файлик
Код: Выделить всё
/etc/udev/rules.d/60-schedulers.rules
Код: Выделить всё
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
swapiness
В ядре есть замечательная опция swapiness, которая может принимать значение от 0 до 100. Чем выше значение, тем активнее ядро использует подкачку.
В федоре имеется файлик
Код: Выделить всё
/etc/sysctl.d/99-sysctl.conf
Код: Выделить всё
vm.swappiness=1
Супержлоб: Выключаем логи.
Вот за меня могут критиковать, однако лично я вообще на своём десктопе никогда в лог не смотрю. А если и смотрю, меня интересует исключительно лог уже работающей системы а не то что было до ребута.
Прежде всего нам нужно заставить journald писать лог не на диск а в оперативку. Для этого открываем
Код: Выделить всё
/etc/systemd/journald.conf
Код: Выделить всё
[Journal]
Storage=volatile
волатиль будет писать лог в /run/log/journal а /run живёт в оперативке.
Всё, теперь можно вписывать
Код: Выделить всё
tmpfs /var/log tmpfs defaults 0 0
Отдельная нота о безопасности:
Spoiler
Код: Выделить всё
/etc/tmpfiles.d/varlog.conf
Код: Выделить всё
d /var/log/audit
d /var/log/sssd
Таким же макаром можно "починить" самбу, которая требует директорию /var/log/samba
или например апач который иногда любит писать в /var/log/httpd
Подробнее о tmpfiles.d можно почитать тут: https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
Обратите внимание, мы не потеряли возможность смотреть логи. Мы лишь перестали писать их на диск, из-за чего потеряли возможность смотреть лог после перезагрузки.
Кэш браузеров
Всякие браузеры очень любят писать всякий кэш на диск в виде кучи мелких файлов. Что между прочем очень засоряет диск.
Пример:
Код: Выделить всё
[kasak@kasak-pc .cache]$ du -hs *
429M google-chrome
Код: Выделить всё
ln -sf /home/kasak/.cache /home/kasak/HDD/.cache
Код: Выделить всё
export XDG_CACHE_HOME=~/HDD/.cache
Данный мануал может быть полезен так же тем кто пытается накатить систему на sd карту. Потому как sd и так медленные, а если ещё и писать на них кучу лишнего, всё становится только хуже.
Хотелось бы посоветовать читателю, что все эти меры хоть и приносят пользу, но на самом деле мизерную. Лучше всего напичкать компьютер огромным количеством оперативы. 8 Гб в наше время уже не так много. Лучше бы конечно иметь хотя бы 16. Тогда и диск будет меньше насиловаться. Да и слухи о том что ссд умирают от ресурса преувеличены. Linux в этом плане ведет себя в тысячу раз лучше вездесущей паршивой винды, которая насилует диски как только может, и диски живут, даже самые простенькие.