История изменений
Исправление 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, умный планировщик диска в ОС и становится вообще страшно.
По сути чтобы обойти все особенности кешей и пр лабуды, недо просто смотреть с какой реально скорость происходит копирование/пермещение/чтение файликов и дальше уже разматывать клубок, в противно случае если делать множество операций за короткий промежуток времени на небольших объёмах то результат будет смаззаным, благодаря особеностям одного из многочисленных абстрактных слоёв, задействованных в процессе передачи данных