Мы очень заинтересованы в изучении возможности использования SSD-накопителей в серверной среде. Однако одна вещь, которую нам необходимо установить, - это ожидаемая долговечность дисков. В соответствии с Эта статья изготовители сообщают о ресурсах накопителей в виде «общего количества записанных байтов» (TBW). Например. из этой статьи SSD Crucial C400 рассчитан на 72 ТБ TBW. Существуют ли в экосистеме Linux какие-либо скрипты / инструменты, которые помогут нам измерить TBW? (а затем принять более обоснованное решение о целесообразности использования SSD-накопителей)
Другая возможность - посмотреть / proc / diskstats. Он не сохраняется при перезагрузках, но содержит данные для каждого блочного устройства. Возможно, наиболее интересным для вас является поле 10, в котором указано общее количество записанных секторов. В системе с дисками scsi с размером сектора 512 байт вы можете запустить
awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats
чтобы узнать, сколько мегабайт было записано на каждое устройство. Результат будет выглядеть как
sda 728.759
sda1 79.0908
sda2 649.668
Я боролся с той же проблемой на своем ноутбуке, но, поскольку я перезагружал его почти каждый день, принятый ответ не помог. У меня есть SSD-накопитель Samsung mSATA с атрибутом SMART # 241 Total_LBAs_Written. Согласно официальная документация,
Чтобы вычислить общий размер (в байтах), умножьте исходное значение этого атрибута на 512 Б.
Итак, следующая команда дает мне общий ТБ, записанный на моем SSD-диске (sdb)
sudo smartctl -A /dev/sdb | awk '/^241/ { print "TBW: "($10 * 512) * 1.0e-12, "TB" } '
Поскольку он также работает на моем жестком диске, я предполагаю, что он должен работать практически на каждом современном жестком диске.
Вы можете увидеть, сколько данных было записано в файловую систему ext4, посмотрев в / sys / fs / ext4 / $ DEVICE / life_write_kbytes.
Можешь попробовать iostat
. Он дает вам статистику, связанную с использованием ввода-вывода и процессора. Взгляните на руководство man iostat
.
Для моего KINGSTON SEDC400S37480G в Ubuntu Server 14.04 я использую следующий сценарий для мониторинга TBW. Я запускаю его из cron один раз в день. Скрипт выводит в файл журнала.
Для работы вам понадобится калькулятор. Установите calc, используя:
apt-get install apcalc
Содержание скрипта:
echo "*** $(date -R) ***" >> /scripts/tbw/log.txt
tbw=$(cat /sys/fs/ext4/sda1/lifetime_write_kbytes)
TB=1000000000
echo TB written to sda1: >> /scripts/tbw/log.txt | calc $tbw / $TB >> /scripts/tbw/log.txt
Выведет:
*** Thu, 20 Jul 2017 03:02:51 +0300 ***
TB written to sda1:
3.062138442