Проверка скорости работы диска (SSD или нет?)
Как понять, ssd у меня диск или нет?
Ответы (3 шт):
Можно проверить скорость чтения/записи на диск следующей командой в linux:
dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=direct
В случае, если у Вас ssd, тогда скорость вряд ли будет ниже 200M. Если у Вас НЕ ssd, то она будет существенно ниже, порядка 50M/s. Пример вывода (НЕ ssd):
1+0 records in
1+0 records out
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 28,3923 s, 37,8 MB/s
ssd:
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.35849 s, 455 MB/s
Можно ориентироваться на параметр ROTATIONAL RW.
Для этого получаем список дисков, к примеру так:
lsblk -nb -D --output NAME,TYPE | awk '/disk/{print $1}'
И передаем на обработку в цикл
#!/bin/bash
while read device; do
# Получаем значение по типу устройства
RW=`cat /sys/block/${device}/queue/rotational`
#Если позиционирующего устройства нет, тогда ssd, иначе hdd
if [[ ${RW} -eq 0 ]]; then
type=ssd
else
type=hdd
fi
#Добавляем каждый диск к массиву
result+=( "$device-$devtype;" )
done< <(lsblk -nb -D --output NAME,TYPE | awk '/disk/{print $1}')
После чего можно посмотреть результат
echo "${result[@]}"
К примеру на одном из серверов вернулся результат:
sda-ssd;sdb-hdd;
На мой взгляд, самый простой и, в то же время, самый надёжный способ определения типа дисков - прочитать оглавление /dev/disk/by-id. На моём компе оно выглядит вот так:
ata-Samsung_SSD_860_EVO_250GB_S3Y9NX0NB05112E wwn-0x5000c5003251db33
ata-Samsung_SSD_860_EVO_250GB_S3Y9NX0NB05112E-part1 wwn-0x5000c5003251db33-part1
ata-Samsung_SSD_860_EVO_250GB_S3Y9NX0NB05112E-part2 wwn-0x5000c5003251db33-part2
ata-Samsung_SSD_860_EVO_250GB_S3Y9NX0NB05112E-part3 wwn-0x5000c5003251db33-part3
ata-Samsung_SSD_860_EVO_250GB_S3Y9NX0NB05112E-part4 wwn-0x5000c5003251db33-part4
ata-Samsung_SSD_860_EVO_250GB_S3Y9NX0NB05112E-part5 wwn-0x50014ee2b846f850
ata-ST31000528AS_5VP7E7K6 wwn-0x50014ee2b846f850-part1
ata-ST31000528AS_5VP7E7K6-part1 wwn-0x50014ee2b846f850-part2
ata-ST31000528AS_5VP7E7K6-part2 wwn-0x5002538e90b71d85
ata-ST31000528AS_5VP7E7K6-part3 wwn-0x5002538e90b71d85-part1
ata-ST31000528AS_5VP7E7K6-part4 wwn-0x5002538e90b71d85-part2
ata-WDC_WD10EZRZ-00HTKB0_WD-WCC4J3UDCA5R wwn-0x5002538e90b71d85-part3
ata-WDC_WD10EZRZ-00HTKB0_WD-WCC4J3UDCA5R-part1 wwn-0x5002538e90b71d85-part4
ata-WDC_WD10EZRZ-00HTKB0_WD-WCC4J3UDCA5R-part2 wwn-0x5002538e90b71d85-part5
Если убрать part и wwn, то останутся три строки:
ata-Samsung_SSD_860_EVO_250GB_S3Y9NX0NB05112E
ata-ST31000528AS_5VP7E7K6
ata-WDC_WD10EZRZ-00HTKB0_WD-WCC4J3UDCA5R
довольно очевидно, что SSD - это Samsung_SSD_860_EVO_250GB.
Думаю, что не так уж сложно будет найти в иНете полный список винтов всех марок. Не больше нескольких тысяч записей будет. И сделать из них табличку на SQLite.