Производительность диска

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 05 ноя 2013, 19:40

Olej писал(а):Ещё один способ оценить производительность дисковой подсистемы, но на этот раз уже на уровне операций файловой системы (что может и правильнее) это что-то типа:
- запись:

Код: Выделить всё

[olej@notebook 28]$ dd if=/dev/zero of=dd.img bs=512 count=300000
...
По поводу измерений...
Используя dd с параметром (флагами) iflag=direct, удаётся получить устойчивые цифры:

Код: Выделить всё

[olej@notebook vm]$ sudo dd if=/dev/sda1 of=/dev/null iflag=direct bs=1M count=100
100+0 записей считано
100+0 записей написано
 скопировано 104857600 байт (105 MB), 3,10609 c, 33,8 MB/c
[olej@notebook vm]$ sudo dd if=/dev/sda1 of=/dev/null iflag=direct bs=1M count=10
10+0 записей считано
10+0 записей написано
 скопировано 10485760 байт (10 MB), 0,318991 c, 32,9 MB/c
[olej@notebook vm]$ sudo dd if=/dev/sda1 of=/dev/null iflag=direct bs=1M count=1
1+0 записей считано
1+0 записей написано
 скопировано 1048576 байт (1,0 MB), 0,0468517 c, 22,4 MB/c
Цифры практически совпадают с полученными с помощью hdparm:

Код: Выделить всё

[olej@notebook vm]$ sudo hdparm -t /dev/sda
/dev/sda:
 Timing buffered disk reads: 102 MB in  3.04 seconds =  33.51 MB/sec

Аватара пользователя
pondogor
Активист
Сообщения: 13
Зарегистрирован: 07 янв 2014, 03:08
Откуда: СССР
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение pondogor » 07 янв 2014, 14:12

По прошлогодней весне досталось мне больше двух десятков всякихразных Б/У хардов... Вначале растерялся, чего мне с ними делать, пока не придумалось, протестил их с помощью seeker, рассортировал по скорости, ну и сейчас уже всем нашел применение. Что то под бекапы себе оставил, кое чего по друзьям раскидал, короче утилита в самый раз пришлась! Тестирует seeker гораздо ближе к реальной работе жесткого диска и получаемые результаты тестов выглядят более правдоподобными, что оправдало себя.

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 29 окт 2014, 01:54

Olej писал(а):
Olej писал(а):но это твердотельный KINGSTON SDD, на нём субъективно видно как всё "летает", загрузка Ubuntu 10.4 идёт 8 сек. от включения питания...
Ещё раз пришлось вернуться к вопросам производительности диска в связи с настройками SSD диска:

Код: Выделить всё

olej@atom:~$ sudo hdparm -i /dev/sda
[sudo] password for olej:

/dev/sda:

 Model=KINGSTON, FwRev=AJXA0202, SerialNo=20LM10BQM83Z
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=58626288
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-3,4,5,6,7

 * signifies the current active mode
Попалась мне довольно последовательная (лучшая, что я видел), хоть и не самая свежая (30.05.2010) публикация: Оптимизация системы под SSD.
Рекомендую просмотреть. ;-)
P.S. ну и ещё такой вот источник есть: Настройка Ubuntu для работы с SSD.
SSD для ноутбуков, особенно с Linux - это становится уже чуть ли не стандартной конфигурацией. ;-)

Но по SSD есть и много различных рекомендаций по особой их настройке и оптимизации. Вот то новенькое, что мне показалось интересным - Оптимизация Linux (Fedora 20) для SSD диска:
19 окт 2014 20:31

4. TRIM. Известно что SSD диск со временем начинает работать все медленнее, для чего производители предусмотрели специальную команду, которую операционная
система должна периодически выполнять. К сожалению Fedora 20 пока этого не делает, но к счастью это легко исправить, есть даже несколько способов.
Способ 1: добавить в /etc/fstab опцию discard, но вообще последние руководства не советуют этот способ, т.к. он может привести к замедлению системы. Более предпочтительный способ 2: добавить вызов системной команды из скрипта загрузки.
В Fedora20 этот скрипт находится здесь: /etc/rc.d/rc.local, файл может и отсутствовать, тогда его следует создать, сделать ему chmod a+x /etc/rc.d/rc.local и добавить туда следующий текст:

Код: Выделить всё

    #!/bin/bash
    fstrim -v /
...
6. Системный планировщик. В Fedora 20 по-умолчанию используется планировщик cfq, который не очень хорошо оптимизирован для SSD дисков.
Проверить какой в текущий момент используется планировщик можно следующей командой: cat /sys/block/sda/queue/scheduler
В ответ мы получим что-то такое:

Код: Выделить всё

    noop deadline [cfq]
Это значит что в системе установлено 3 планировщика, а используется сейчас тот, что в квадратных скобках, а именно cfq.
Следует его поменять на dedaline или noop, которые лучше подходят для работы с SSD, для чего можно либо добавить загрузочный параметр ядра,
либо в /etc/rc.d/rc.local прописать такую строку:

Код: Выделить всё

    echo "deadline" > /sys/block/sda/queue/scheduler
Проверяю у себя:

Код: Выделить всё

[Olej@modules ~]$ time sudo fstrim -v /
[sudo] password for Olej: 
/: 3,1 GiB (3369431040 bytes) trimmed

real	1m11.461s
user	0m0.022s
sys	0m0.313s
Обратите внимание на время выполнения, при том, что это на весьма быстром процессоре:

Код: Выделить всё

[Olej@modules ~]$ inxi
CPU~Dual core Intel Core i5-3230M (-HT-MCP-) speed/max~2450/3200 MHz Kernel~3.16.6-200.fc20.x86_64 x86_64 Up~8:56 Mem~2575.0/7864.9MB HDD~441.1GB(42.7% used) Procs~285 Client~Shell inxi~2.2.14  

Код: Выделить всё

[Olej@modules ~]$ sudo hdparm -t /dev/sda
/dev/sda:
 Timing buffered disk reads: 944 MB in  3.01 seconds = 314.13 MB/sec

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 15 май 2017, 12:49

Ещё один тест в копилку, на совершенно другом, только собранном компьютере:

Код: Выделить всё

[olej@xenix ~]$ inxi -C
CPU:       Quad core Intel Xeon L5420 (-HT-MCP-) cache: 6144 KB 
           clock speeds: max: 2499 MHz 1: 2499 MHz 2: 2003 MHz 3: 2003 MHz 4: 2003 MHz

[olej@xenix ~]$ inxi -m
Memory:    Using dmidecode: you must be root to run dmidecode

[olej@xenix ~]$ sudo inxi -m
Memory:    Used/Total: 1372.4/3884.7MB
           Array-1 capacity: 8 GB (check) devices: 2 EC: None
           Device-1: DIMM0 size: No Module Installed type: N/A
           Device-2: DIMM1 size: 4 GB speed: 1066 MHz type: SDRAM
Диски:

Код: Выделить всё

[olej@xenix ~]$ inxi -D
Drives:    HDD Total Size: 240.1GB (5.3% used)
           ID-1: /dev/sda model: SAMSUNG_SP0802N size: 80.1GB
           ID-2: /dev/sdb model: INTEL_SSDSA2MH16 size: 160.0GB
Очень старенький IDE HDD Samsung + довольно свеженький SATA SSD Intel...

Код: Выделить всё

[olej@xenix ~]$ hdparm -tT /dev/sdb
/dev/sdb: Permission denied

[olej@xenix ~]$ sudo hdparm -tT /dev/sdb
/dev/sdb:
 Timing cached reads:   11504 MB in  2.00 seconds = 5758.75 MB/sec
 Timing buffered disk reads: 724 MB in  3.00 seconds = 241.32 MB/sec

[olej@xenix ~]$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   11222 MB in  2.00 seconds = 5617.44 MB/sec
 Timing buffered disk reads: 178 MB in  3.01 seconds =  59.15 MB/sec
Разница без кеширования <5 раз ... менее, чем можно было ожидать.
А разницы с кешированием - так и вообще практически без различий.

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 04 июл 2019, 17:47

Очень интересный (более чем hdparm и dd) инструмент для замера скоростей:

Код: Выделить всё

olej@ACER:~$ aptitude search ioping
p   ioping                                                                     - Simple disk I/O latency measuring tool                                               

olej@ACER:~$ sudo apt install ioping
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  ioping
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Необходимо скачать 18,5 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 51,2 kB.
Пол:1 http://deb.debian.org/debian buster/main amd64 ioping amd64 1.1-1 [18,5 kB]
Получено 18,5 kB за 0с (60,8 kB/s)
Выбор ранее не выбранного пакета ioping.
(Чтение базы данных … на данный момент установлено 399562 файла и каталога.)
Подготовка к распаковке …/ioping_1.1-1_amd64.deb …
Распаковывается ioping (1.1-1) …
Настраивается пакет ioping (1.1-1) …
Обрабатываются триггеры для man-db (2.8.5-2) …

Код: Выделить всё

olej@ACER:~$ ioping -h
 Usage: ioping [-ABCDRLWYykq] [-c count] [-i interval] [-s size] [-S wsize]
               [-o offset] [-w deadline] [-pP period] directory|file|device
        ioping -h | -v

      -c <count>      stop after <count> requests
      -i <interval>   interval between requests (1s)
      -l <speed>      speed limit in bytes per second
      -t <time>       minimal valid request time (0us)
      -T <time>       maximum valid request time
      -s <size>       request size (4k)
      -S <wsize>      working set size (1m)
      -o <offset>     working set offset (0)
      -w <deadline>   stop after <deadline> time passed
      -p <period>     print raw statistics for every <period> requests
      -P <period>     print raw statistics for every <period> in time
      -A              use asynchronous I/O
      -C              use cached I/O (no cache flush/drop)
      -B              print final statistics in raw format
      -D              use direct I/O (O_DIRECT)
      -R              seek rate test
      -L              use sequential operations
      -W              use write I/O (please read manpage)
      -G              read-write ping-pong mode
      -Y              use sync I/O (O_SYNC)
      -y              use data sync I/O (O_DSYNC)
      -k              keep and reuse temporary file (ioping.tmp)
      -q              suppress human-readable output
      -h              display this message and exit
      -v              display version and exit
Интересен мне от тем, что он в качестве цели может использовать как диск, так и путь: файл, каталог, виртуальное устройство отображающее RAM как путевое имя... и т.д. и т.п.

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 04 июл 2019, 18:34

Olej писал(а): Интересен мне от тем, что он в качестве цели может использовать как диск, так и путь: файл, каталог, виртуальное устройство отображающее RAM как путевое имя... и т.д. и т.п.
Вот как выглядит тестирование для раздела swap:
- запись:

Код: Выделить всё

root@ACER:~# ioping -S64M -L -s4k -WWW -c 10 /dev/sda3
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=1 time=740.6 us (warmup)
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=2 time=1.69 ms
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=3 time=722.1 us
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=4 time=1.70 ms
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=5 time=582.1 us
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=6 time=701.3 us
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=7 time=1.73 ms (slow)
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=8 time=719.7 us
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=9 time=1.80 ms (slow)
4 KiB >>> /dev/sda3 (block device 11.9 GiB): request=10 time=699.3 us

--- /dev/sda3 (block device 11.9 GiB) ioping statistics ---
9 requests completed in 10.3 ms, 36 KiB written, 869 iops, 3.40 MiB/s
generated 10 requests in 9.00 s, 40 KiB, 1 iops, 4.44 KiB/s
min/avg/max/mdev = 582.1 us / 1.15 ms / 1.80 ms / 522.1 us
-чтение:

Код: Выделить всё

root@ACER:~# ioping -A -D -s16k -c 10 /dev/sda3
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=1 time=549.0 us (warmup)
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=2 time=265.9 us
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=3 time=467.6 us
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=4 time=326.1 us
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=5 time=449.3 us
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=6 time=467.7 us
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=7 time=525.2 us (slow)
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=8 time=517.7 us (slow)
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=9 time=280.4 us
16 KiB <<< /dev/sda3 (block device 11.9 GiB): request=10 time=522.6 us (slow)

--- /dev/sda3 (block device 11.9 GiB) ioping statistics ---
9 requests completed in 3.82 ms, 144 KiB read, 2.35 k iops, 36.8 MiB/s
generated 10 requests in 9.00 s, 160 KiB, 1 iops, 17.8 KiB/s
min/avg/max/mdev = 265.9 us / 424.7 us / 525.2 us / 99.1 us

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 20 окт 2019, 21:37

Попутно к производительности HDD - о тестировании на ошибки и диагностику средствами S.M.A.R.T.
Оно описано подробно (как установить, использовать) здесь: оптимизация под SSD.
Здесь я приведу только то, с чего начинается диагностика - с проверки наличия S.M.A.R.T на ваших дисках:

Код: Выделить всё

[olej@xenix 08]$ sudo smartctl -i /dev/sda
smartctl 7.0 2019-03-31 r4903 [x86_64-linux-5.2.17-200.fc30.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar
Device Model:     WDC WD2500BB-22DWA0
Serial Number:    WD-WMAEH1241345
Firmware Version: 15.05R15
User Capacity:    250 059 350 016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA/ATAPI-6 (minor revision not indicated)
Local Time is:    Sun Oct 20 21:29:32 2019 EEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Код: Выделить всё

[olej@xenix 08]$ sudo smartctl -i /dev/sdb
smartctl 7.0 2019-03-31 r4903 [x86_64-linux-5.2.17-200.fc30.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar SE
Device Model:     WDC WD1600JB-00FUA0
Serial Number:    WD-WMAES1729881
Firmware Version: 15.05R15
User Capacity:    160 041 885 696 bytes [160 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA/ATAPI-6 (minor revision not indicated)
Local Time is:    Sun Oct 20 21:29:35 2019 EEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 23 янв 2021, 18:47

Olej писал(а):
15 май 2017, 12:49
Ещё один тест в копилку, на совершенно другом, только собранном компьютере:
Возвращаюсь к теме производительности дисков в связи с:
- участием в очень крупном промышленном проекте, где полная компиляция дерева GIT составляет порядка 90 минут (и это при сборке не make а ninja, который Googl и произвела из-за длительности сборки Ghromium/Chrome);
- необходимость подбора и модернизации оборудования;
- появление в доступном обиходе NVME дисков

В конце концов, после недолгого (достаточно поверхностного) выбора остановился на таком вот Samsung 970 EVO Plus NVMe M.2 SSD 250ГБ
Изображение
Стоимость порядка $69
Но и заявленные скорости:
- чтения 3500 Mb/sec
- записи 3300 Mb/sec

Выбор здесь предопределило то, что скорость записи приближается к скорости чтения (не для всех это так) - я кина не смотрю, а компьютер этот комплектуется для компиляции-сборки крупного проекта в ходе его разработки.

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 24 янв 2021, 14:14

Olej писал(а):
23 янв 2021, 18:47
В конце концов, после недолгого (достаточно поверхностного) выбора остановился на таком вот Samsung 970 EVO Plus NVMe M.2 SSD 250ГБ
... и вот прошло дней 5, и мне прислали новый диск и собран новый компьютер (пока в макетном, тестовом варианте - ещё предстоит выбрать высокопроизводительный процессор и сменить).

Код: Выделить всё

olej@nvme:~$ inxi -Dxxx
Drives:    Local Storage: total: 381.94 GiB used: 18.49 GiB (4.8%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 970 EVO Plus 250GB size: 232.89 GiB speed: 31.6 Gb/s lanes: 4 
           serial: S4EUNX0NA18725Z rev: 2B2QEXM7 scheme: GPT 
           ID-2: /dev/sda vendor: Samsung model: HD160JJ size: 149.05 GiB speed: 3.0 Gb/s serial: S08HJ1OL519119 
           rev: 0-41 scheme: MBR 
HDD Samsung стоит здесь для бэкапов (Timeshift).

Аватара пользователя
Olej
Писатель
Сообщения: 14703
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Производительность диска

Непрочитанное сообщение Olej » 24 янв 2021, 14:31

Код: Выделить всё

olej@nvme:~$ sudo hdparm -t /dev/nvme0n1
[sudo] пароль для olej:       

/dev/nvme0n1:
 HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
 Timing buffered disk reads: 6604 MB in  3.00 seconds = 2201.32 MB/sec
Это ещё не 3500 и в этом, по-видимому, сказывается процессор (и тогда это будет критерием подбора процессора).

Код: Выделить всё

olej@nvme:~$ sudo hdparm -t /dev/sda
[sudo] пароль для olej:       

/dev/sda:
 Timing buffered disk reads: 178 MB in  3.01 seconds =  59.09 MB/sec

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя