Domyślnym planistą We/Wy w openSUSE jest CFQ i radzi on sobie z klasycznymi dyskami talerzowymi całkiem dobrze. Więcej informacji o samym planiście CFQ można znaleźć w dokumentacji kernela a przegląd planistów dostępnych w dystrybucji openSUSE dostępny jest w podręczniku openSUSE, rozdział 13 . Dla dysków SSD lepszym wyborem zdaje się być planista Deadline bądź Noop.

Sprawdzić aktualnie używanego planistę można za pomocą:

cat /sys/block/sda/queue/scheduler

TERMINAL
noop deadline [cfq]
Kliknij, aby rozwinąć i zobaczyć więcej

Jako root możemy zmienić planistę w ’locie’:

echo noop > /sys/block/sda/queue/scheduler

Skoro już wiemy jak zmienić planistę po uruchomieniu systemu, pozostaje tylko ten proces zautomatyzować. Jeśli posiadamy w komputerze tylko jeden dysk, i jest nim dysk SSD (lub kilka, lecz wszystkie są SSD), najprostszym rozwiązaniem będzie dodanie parametru elevator (nazwa planisty jako wartość) do listy wywołania jądra. W tym celu edytujemy plik:

sudo vi /etc/default/grub

I dodajemy nasz parametr do pozostałych dla opcji GRUB_CMDLINE_LINUX_DEFAULT. Przykładowy fragment ww. pliku może wyglądać tak:

CONFIG
GRUB_CMDLINE_LINUX_DEFAULT=" video=1680x1050 resume=/dev/disk/by-id/ata-Hitachi_HDS721050CLA362_JP1521HN0MUHTA-part5 splash=silent quiet showopts radeon.audio=0 radeon.dpm=1 elevator=deadline"
Kliknij, aby rozwinąć i zobaczyć więcej

Pozostaje nam jeszcze zaktualizowanie menu rozruchowego, za pomocą:

grub2-mkconfig -o /boot/grub2/grub.cfg

A co gdy mamy kilka dysków, różnego typu, zarówno talerzowe jak i SSD? Wówczas nie ruszamy menu gruba, tylko korzystamy z dobrodziejstw udev. Tworzymy zestaw prostych reguł, dzięki którym przydzielimy planistę w zależności od typu dysku. Tworzymy plik /etc/udev/rules.d/50-io-schedulers.rules z zawartością:

CONFIG
# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"
Kliknij, aby rozwinąć i zobaczyć więcej

Reguły będą mieć zastosowanie po ponownym uruchomieniu komputera. Dla przykładu, w komputerze dysk /dev/sda jest dyskiem SSD a /dev/sdb jest dyskiem talerzowym. Wyjście polecenia cat /sys/block/sd{a,b}/queue/scheduler zwróci:

TERMINAL
noop [deadline] cfq
noop deadline [cfq]
Kliknij, aby rozwinąć i zobaczyć więcej

Informacje o prawach autorskich

Autor: Mario

Link: https://notatnik.domowy.top/legacy/2014/03/planista-we/wy-dla-dysk%C3%B3w-ssd-w-opensuse/

Licencja: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

Rozpocznij wyszukiwanie

Wprowadź słowa kluczowe, aby wyszukać artykuły

↑↓
ESC
⌘K Skrót