Резкое падение производительности жесткого диска

Резкое падение производительности жесткого диска

Основная информация об оборудовании:
Жесткий диск, о котором идет речь, — Seagate BarraCuda 4TB (номер модели: ST4000DM004). Более подробную информацию см. в выводе hdparm -Iодного из приложений в конце.

Описание проблемы и тесты:
Проблема, на первый взгляд, выглядит как кэширование данных, которые должны быть записаны на диск, в то время как скорость записи ниже. Однако в этом случае все не так просто.

Копирование файлов (в файловой системе NTFS):
При записи достаточно большого объема данных производительность диска резко и внезапно упадет. Опять же, обычно это просто кэширование файлов в оперативной памяти, после чего диск некоторое время работает. Однако здесь при мониторинге файла /proc/meminfo(под Ubuntu) наблюдаемое поведение, похоже, не подтверждает это. Дажепослезаписывая данные (либо большие файлы, либо несколько файлов поменьше) и вызывая sync, объем «грязной» памяти будет продолжать уменьшаться некоторое время, а затем постепенно остановится почти полностью. Он будет продолжать уменьшатьсяоченьмедленно, пока иногда в конце концов не ускорится. Это может повторяться, в зависимости от количества оставшихся данных. Чтение устройства также крайне вяло, когда скорость записи падает, и останется таким некоторое время даже после syncзавершения, если оно делает это в «медленном режиме».

Первоначальные тесты проводились как в Ubuntu 21.10, так и в Windows 10, и их поведение было схожим.

Дополнительное замечание для Windows:
Когда диск оставался медленным после завершения операции копирования, и я пытался читать файлы с диска (например, воспроизводить видео, которое продолжало запаздывать), Монитор ресурсов и Диспетчер задач показывали высокий процент использования диска на устройстве (100% или около того), в то время как фактическая отображаемая скорость была <1 МБ/с. (Операционная система также умудрялась полностью зависать в какой-то момент, но это может быть или не быть строго связано.)

Тесты производительности диска:
Чтобы узнать, связано ли это с файловой системой или с самим оборудованием, я провел бенчмарки на устройстве с помощью утилиты gnome-disks. Результат одного из таких бенчмарков, который я покажу здесь, иллюстрирует то, что я описал выше: скорости чтения и записи резко падают почти до нуля после определенной точки, а затем восстанавливаются (синий и красный — это соответственно скорости чтения и записи в каждой отдельной выборке, взятой в местах, идущих от внешней стороны диска к внутренней, всего 1000; зеленые точки и линии соответствуют бенчмарку времени доступа, который отделен от других):

Тест чтения/записи

Обратите внимание, что, насколько я понимаю, инструмент бенчмаркинга устраняет такие факторы, как кэширование записи. Кроме того, /proc/meminfoв любом случае было показано, что в течение медленных периодов в кэше практически не хранится никаких данных, ожидающих записи; полное его содержимое можно увидеть в приложениях.

При отключении записи в тесте подобного явления не наблюдается, хотя, по-видимому, наблюдается аномальное внезапное снижение скорости во внутренних разделах диска:

Тест только для чтения

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

Аналогичные тесты на других, предположительно исправных жестких дисках в системе дают ожидаемые, регулярные результаты, например:

Тест чтения/записи на здоровом диске

Заключение/Вопрос:
Из этого я делаю вывод, что проблема, скорее всего, вызвана каким-то сбоем оборудования или прошивки, но, возможно, я упустил из виду еще ряд вещей.

Каковы вероятные причины представленного явления? Какие дальнейшие шаги мне следует предпринять для дальнейшей диагностики проблемы? Любая помощь будет высоко оценена.

Приложения:
Подробная информация об оборудовании (выведенная hdparm -I):

/dev/sdb:

ATA device, with non-removable media
        Model Number:       ST4000DM004-2CV104
        Serial Number:      ZFN3J8RH
        Firmware Revision:  0001
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
        Used: unknown (minor revision code 0x006d)
        Supported: 10 9 8 7 6 5
        Likely used: 10
Configuration:
        Logical         max     current
        cylinders       16383   16383
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:    16514064
        LBA    user addressable sectors:   268435455
        LBA48  user addressable sectors:  7814037168
        Logical  Sector size:                   512 bytes
        Physical Sector size:                  4096 bytes
        Logical Sector-0 offset:                  0 bytes
        device size with M = 1024*1024:     3815447 MBytes
        device size with M = 1000*1000:     4000787 MBytes (4000 GB)
        cache/buffer size  = unknown
        Form Factor: 3.5 inch
        Nominal Media Rotation Rate: 5425
Capabilities:
        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 16
        Recommended acoustic management value: 208, current value: 208
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    SMART feature set
                Security Mode feature set
           *    Power Management feature set
           *    Write cache
           *    Look-ahead
           *    Host Protected Area feature set
           *    WRITE_BUFFER command
           *    READ_BUFFER command
           *    DOWNLOAD_MICROCODE
                Power-Up In Standby feature set
           *    SET_FEATURES required to spinup after power up
                SET_MAX security extension
           *    48-bit Address feature set
           *    Mandatory FLUSH_CACHE
           *    FLUSH_CACHE_EXT
           *    SMART error logging
           *    SMART self-test
           *    General Purpose Logging feature set
           *    WRITE_{DMA|MULTIPLE}_FUA_EXT
           *    64-bit World wide name
                Write-Read-Verify feature set
           *    WRITE_UNCORRECTABLE_EXT command
           *    {READ,WRITE}_DMA_EXT_GPL commands
           *    Segmented DOWNLOAD_MICROCODE
           *    unknown 119[6]
           *    unknown 119[7]
           *    Gen1 signaling speed (1.5Gb/s)
           *    Gen2 signaling speed (3.0Gb/s)
           *    Gen3 signaling speed (6.0Gb/s)
           *    Native Command Queueing (NCQ)
           *    Host-initiated interface power management
           *    Phy event counters
           *    READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
           *    DMA Setup Auto-Activate optimization
                Device-initiated interface power management
           *    Software settings preservation
                unknown 78[7]
           *    SMART Command Transport (SCT) feature set
           *    SCT Write Same (AC2)
           *    SCT Data Tables (AC5)
                unknown 206[7]
                unknown 206[12] (vendor specific)
                unknown 206[13] (vendor specific)
           *    DOWNLOAD MICROCODE DMA command
Security:
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
                frozen
        not     expired: security count
                supported: enhanced erase
        490min for SECURITY ERASE UNIT. 490min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5000c500c6a79fae
        NAA             : 5
        IEEE OUI        : 000c50
        Unique ID       : 0c6a79fae
Checksum: correct

/proc/meminfoво время первого теста, когда скорость чтения/записи была низкой:

MemTotal:       16323712 kB
MemFree:         9894056 kB
MemAvailable:   12815716 kB
Buffers:          138380 kB
Cached:          3038420 kB
SwapCached:            0 kB
Active:          1533040 kB
Inactive:        4396560 kB
Active(anon):       2960 kB
Inactive(anon):  2817480 kB
Active(file):    1530080 kB
Inactive(file):  1579080 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:      17577980 kB
SwapFree:       17577980 kB
Dirty:               176 kB
Writeback:             0 kB
AnonPages:       2752844 kB
Mapped:           694816 kB
Shmem:             73200 kB
KReclaimable:     137092 kB
Slab:             260112 kB
SReclaimable:     137092 kB
SUnreclaim:       123020 kB
KernelStack:       13872 kB
PageTables:        33292 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    25739836 kB
Committed_AS:    9749696 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       76616 kB
VmallocChunk:          0 kB
Percpu:             8128 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      512904 kB
DirectMap2M:     7813120 kB
DirectMap1G:     8388608 kB

решение1

Seagate ST4000DM004 используетСМРдля записи данных на поверхность диска. Это означает, что для записи одного байта, возможно, придется перезаписать несколькогигабайты.

При «нормальном использовании» (как это определено поставщиками жестких дисков, а не пользователями!) это не создает больших проблем — данные записываются наКМРкэш на внешнем ободе диска. Позже, когда использование диска снизится, прошивка переместит дату на ее конечное место в диапазоне SMR.

При записи больших объемов данных за один раз этот кэш CMR исчерпывается, и процесс ввода-вывода в полосы SMR должен взять на себя управление — это на порядки медленнее.

Примечание: Это не кэш RAM — это небольшая часть поверхности диска, записанная в CMR (т.е. без перекрывающихся дорожек), чтобы сделать ужас SMR менее заметным для пользователей.

решение2

Жесткие диски записывают данные секторами на дорожках, однако существует ограничение на то, насколько близко друг к другу можно размещать дорожки, не мешая друг другу.

Поставщики жестких дисков поняли, что проблему мешающих друг другу соседних дорожек можно смягчить, если отказаться от традиционной модели произвольной записи и записывать большие области данных последовательно. Каждая записанная дорожка будет слегка перекрывать предыдущую. Это означает больше данных на пластину, что означает большую емкость и/или меньшую стоимость. Это известно как «черепичная магнитная запись» (СМР), по аналогии с наложением кровельной черепицы.

Конечно, что жесткий диск, требующий серьезных изменений в ОС, не будет продаваться очень хорошо. Поэтому они добавили прошивку-транслятор иКМРобласть кэша, так что диск SMR будет выглядеть как обычный диск для ОС. Это не так уж и отличается от того, что уже делают поставщики SSD.

Разница в том, что флэш-память быстрая, поэтому даже с трансляционным слоем SSD-накопители все равно были намного быстрее HDD. С другой стороны, производительность SMR-HDD резко падает, когда заканчивается область кэша CMR и приводу приходится блокировать новые операции записи в медленном процессе перезаписи шинглов.

К сожалению, все три оставшихся поставщика HDD решили, что они выпустят эту технологию, вставив ее в линейку продуктов, не сообщая об этом людям. Поэтому вместо того, чтобы сделать осознанный выбор, принимать ли обрыв производительности в обмен на немного более низкую стоимость за единицу хранения, люди неосознанно получили эти диски. Под давлением СМИ они в конечном итоге опубликовали информацию о том, какие модели дисков были SMR, но это все еще не стало очевидным для клиентов.

Поскольку это сделали все три основных поставщика жестких дисков, вы не можете просто бойкотировать виновных, поэтому, похоже, единственный выход — тщательно проверять каждый жесткий диск, который вы покупаете с этого момента.

Любопытно, что, несмотря на то, что изначально SMR была ориентирована на емкость, похоже, самыми большими дисками по-прежнему оставались CMR, а SMR в основном встречалась на дисках емкостью в несколько терабайт.

Связанный контент