Установите флэш-накопитель USB как не вращающийся

procstat - ваш друг.

Вы можете получить информацию для определенного pid , используя:

procstat -v $pid

Или, если вы хотите, чтобы все процессы были просто:

procstat -va

Результат будет примерно таким:

$ procstat -v 61303
  PID              START                END PRT  RES PRES REF SHD   FL TP PATH
61303           0x400000           0x438000 r-x   46   47   2   0 CN-- vn /usr/local/bin/ksh
61303           0x638000           0x63c000 rw-    4    4   1   0 CN-- df
61303        0x800638000        0x800655000 r-x   29   30 204   0 CN-- vn /libexec/ld-elf.so.1
61303        0x800655000        0x800675000 rw-   23   23   1   0 CN-- df
61303        0x800855000        0x800857000 rw-    2    2   1   0 CN-- df
61303        0x800857000        0x8009cd000 r-x  293  329 218 102 CN-- vn /lib/libc.so.7
61303        0x8009cd000        0x800bcd000 ---    0    0   1   0 CN-- df
61303        0x800bcd000        0x800bd9000 rw-   12    0   1   0 C--- vn /lib/libc.so.7
61303        0x800bd9000        0x800c03000 rw-    8    8   1   0 CN-- df
61303        0x801000000        0x801800000 rw-   26   26   1   0 C--- df
61303     0x7ffffffdf000     0x7ffffffff000 rw-    3    3   1   0 C--D df
61303     0x7ffffffff000     0x800000000000 r-x    1    1 208   0 ---- ph

Вы видите разделяемые библиотеки (и сам двоичный файл) в PATH

1
21.04.2018, 16:59
2 ответа

Запустите hdparm -Iдля каждого из ваших дисков:

hdparm -I /dev/sda
hdparm -I /dev/sdb

Если вывод строки hdparm -Iсодержит строку типа:

Nominal Media Rotation Rate: Solid State Device

...тогда и только тогда атрибут /sys/block/sd*/queue/rotationalбудет установлен в 0.

Если флэш-накопитель USB имеет тип USB2, любая оптимизация на основе планировщика -, скорее всего, будет перегружена неэффективностью протокола USB. Беспокойтесь об этом только в том случае, если у вас есть настоящий накопитель USB3 SuperSpeed.

1
27.01.2020, 23:43

Да, это сложная и запутанная проблема; вот соответствующая ошибка ядра 90761 (, о которой сообщалось в 2015 году ), и запись в блоге 2019 года , посвященная исследованию этой . Предположительно, это просто косметическая проблема, так как все традиционные планировщики ввода-вывода -были заменены mq -крайним сроком .. Тем не менее, -почесав голову, я придумал применимое правило, поэтому я подумал, что с таким же успехом могу опубликовать его здесь.

/etc/udev/rules.d/usb-flash-drive-non-rotational.rules:

# Try to catch USB flash drives and set them as non-rotational. Probably no impact whatsoever : /
# c.f. https://mpdesouza.com/blog/kernel-adventures-are-usb-sticks-rotational-devices/

# Device is already marked as non-rotational, skip over it
ATTR{queue/rotational}=="0", GOTO="skip"

# Device has some sort of queue support, likely to be an HDD actually
ATTRS{queue_type}!="none", GOTO="skip"

# Flip the rotational bit on this removable device and give audible signs of having caught a match
ATTR{removable}=="1", SUBSYSTEM=="block", SUBSYSTEMS=="usb", ACTION=="add", ATTR{queue/rotational}="0"
ATTR{removable}=="1", SUBSYSTEM=="block", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/bin/beep -f 70 -r 2"

LABEL="skip"
1
01.05.2021, 13:34

Теги

Похожие вопросы