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
Запустите 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.
Да, это сложная и запутанная проблема; вот соответствующая ошибка ядра 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"