LINUX.ORG.RU

История изменений

Исправление sparks, (текущая версия) :

Было актуально, лет 20 назад, сейчас что процессоры, что девайсы в целом по сложности работы и взаимодействия приближаются к вызову фаербола из воздуха, ну кроме размера блока и его связь с размером страницы памяти, так называемое direct io требует чтобы блоки памяти которые планируются записать должны быть выровненны.

В плане dd - вполне годидся, из проблем не обладает достаточной гибкостью, т.к. умеет только линейное чтение запись, что к реальной жизни имеет оч простредственное отношение, и для более качественной оценки нужны всякие там random/read/write/rewrite/parallel…, да оно умеет в direct io, но оно отбрасывает не только кеш ОС, но и кеш самого диска, что напроч смазывает картину, по сути если хочется измерить предельные возможности железа, то необходимо использовать направленное на это ПО, часто предоставляемое бесплатно вендорами, но в реалиях приложения работают с файлами и директориями на ФС и вот это уже реально интересно.

Про размер блоков дисков, да, чаще всего совпадает с 4к, можно посмотреть чрезе smartctl

=== START OF INFORMATION SECTION ===
Device Model:     ST20000NT001-3LT101
Serial Number:    ZVT9X0MN
LU WWN Device Id: 5 000c50 0e6f514fd
Firmware Version: EN01
User Capacity:    20,000,588,955,648 bytes [20.0 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database 7.3/5319
ATA Version is:   ACS-4 (minor revision not indicated)
SATA Version is:  SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Tue Jun 27 15:41:21 2023 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

ну или для nvme, там чутка другие правила игры, т.к. обмен происходит через буфер страниц, размера N, но всёже

=== START OF INFORMATION SECTION ===
Model Number:                       ASint AS806 512GB
Serial Number:                      AA000000000000003801
Firmware Version:                   V0808A0
PCI Vendor/Subsystem ID:            0x126f
IEEE OUI Identifier:                0x000000
Controller ID:                      1
NVMe Version:                       1.3
Number of Namespaces:               1
Namespace 1 Size/Capacity:          512,110,190,592 [512 GB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Tue Jun 27 16:10:08 2023 CEST
Firmware Updates (0x12):            1 Slot, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0015):     Comp DS_Mngmt Sav/Sel_Feat
Log Page Attributes (0x03):         S/H_per_NS Cmd_Eff_Lg
Maximum Data Transfer Size:         64 Pages
Warning  Comp. Temp. Threshold:     83 Celsius
Critical Comp. Temp. Threshold:     85 Celsius

но фича в том, для обратной совместимости досихпор эмулируют 512байтные сектора, да и работа с самим диском, в случае с HDD, идёт через LBA контроллер, который собсно и рулит кешем, мапингом номера сектора в головка/диск/дорожка и пр, с ФС и НФС там вообще жесть начинается, а если ещё LVM, умный планировщик диска в ОС и становится вообще страшно.

По сути чтобы обойти все особенности кешей и пр лабуды, надо просто смотреть с какой реально скорость происходит копирование/пермещение/чтение файликов, при «регулярном» использовании, и дальше уже разматывать клубок, в противно случае если делать множество операций за короткий промежуток времени на небольших объёмах то результат будет смаззаным, благодаря особеностям одного из многочисленных абстрактных слоёв, задействованных в процессе передачи данных

Исходная версия sparks, :

Было актуально, лет 20 назад, сейчас что процессоры, что девайсы в целом приближаются к вызову фаербола из воздуха, ну кроме размера блока и его связь с размером страницы памяти, так называемое direct io требует чтобы блоки памяти которые планируются записать должны быть выровненны.

В плане dd - вполне годидся, из проблем не обладает достаточной гибкостью, т.к. умеет только линейное чтение запись, что к реальной жизни имеет оч простредственное отношение, и для более качественной оценки нужны всякие там random/read/write/rewrite/parallel…, да оно умеет в direct io, но оно отбрасывает не только кеш ОС, но и кеш самого диска, что напроч смазывает картину, по сути если хочется измерить предельные возможности железа, то необходимо использовать направленное на это ПО, часто предоставляемое бесплатно вендорами, но в реалиях приложения работают с файлами и директориями на ФС и вот это уже реально интересно.

Про размер блоков дисков, да, чаще всего совпадает с 4к, можно посмотреть чрезе smartctl

=== START OF INFORMATION SECTION ===
Device Model:     ST20000NT001-3LT101
Serial Number:    ZVT9X0MN
LU WWN Device Id: 5 000c50 0e6f514fd
Firmware Version: EN01
User Capacity:    20,000,588,955,648 bytes [20.0 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database 7.3/5319
ATA Version is:   ACS-4 (minor revision not indicated)
SATA Version is:  SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Tue Jun 27 15:41:21 2023 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

но фича в том, для обратной совместимости досихпор эмулируют 512байтные сектора, да и работа с самим диском, в случае с HDD, идёт через LBA контроллер, который собсно и рулит кешем, мапингом номера сектора в головка/диск/дорожка и пр, с ФС и НФС там вообще жесть начинается, а если ещё LVM, умный планировщик диска в ОС и становится вообще страшно.

По сути чтобы обойти все особенности кешей и пр лабуды, недо просто смотреть с какой реально скорость происходит копирование/пермещение/чтение файликов и дальше уже разматывать клубок, в противно случае если делать множество операций за короткий промежуток времени на небольших объёмах то результат будет смаззаным, благодаря особеностям одного из многочисленных абстрактных слоёв, задействованных в процессе передачи данных