@EmmGold

Сколько было записано на SSD за всю жизнь?

Добрый день!

Из смарта: 241 Total_LBAs_Written = 132116 и Sector Size: 512 bytes - выходит порядка 65 мегабайт за почти полгода работы... странно как-то...

Или я что-то не понимаю, или кто-то врёт. Подскажите, как узнать TBW у SSD?

Кстати, удобная команда:
export LBAsW="Total_LBAs_Written" ; sudo smartctl -a /dev/sda | grep -q "$LBAsW" && echo "$(echo "scale=3; $(($(sudo smartctl -a /dev/sda | grep "$LBAsW" | awk '{ print $10 }') * 512)) / 1024 / 1024 / 1024 / 1024" | bc -l) TiB written in total" || echo "Not supported on your storage drive." ; unset LBAsW


smartctl pre-7.4 (build date Apr 12 2023) [x86_64-linux-5.4.0-146-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA-TR200
Serial Number:    97SB703WK46S
LU WWN Device Id: 5 00080d c009575a3
Firmware Version: SBFA12.2
User Capacity:    240 057 409 536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
TRIM Command:     Available
Device is:        Not in smartctl database
ATA Version is:   ACS-4 (minor revision not indicated)
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed Apr 12 20:55:32 2023 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Total time to complete Offline 
data collection: 		(   30) seconds.
Offline data collection
capabilities: 			 (0x00) 	Offline data collection not supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       3529
 12 Power_Cycle_Count       0x0012   100   100   000    Old_age   Always       -       1542
167 Unknown_Attribute       0x0022   100   100   000    Old_age   Always       -       0
168 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
169 Unknown_Attribute       0x0003   100   100   010    Pre-fail  Always       -       0
173 Unknown_Attribute       0x0012   179   179   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0012   100   100   000    Old_age   Always       -       111
194 Temperature_Celsius     0x0023   059   049   020    Pre-fail  Always       -       41 (Min/Max 10/51)
241 Total_LBAs_Written      0x0032   100   100   000    Old_age   Always       -       132116

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

Selective Self-tests/Logging not supported
  • Вопрос задан
  • 824 просмотра
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
возможно у вас параметр Total_LBAs_Written не в секторах отмеряется а сразу в гигах,
в принципе это легко проверить при помощи dd, для этого можете использовать код из этого ответа.

update
***скрипт***

закинуть в файл Total_LBAs_Written и сделать его исполняемым:
chmod +x Total_LBAs_Written
сам скрипт
#!/usr/bin/env bash

##############################################################################################################
# Описание
#
# Определение количества записанных данных на диск за всё время его работы исходя из RAW показателей smartctl
# Грубо говоря, это перевод значения показателя Total_LBAs_Written в человеко понятный вид за счет сравнения его 
# показателей до и после записи тестового файла на выбранный диск.
#
#
# Условие работы
#
# Для работы программы в системе должны присутствовать следующие утилиты:
#   smartctl
#   fzf
#
#
# Использование
#
# Примеры запуска программы:
# $ sudo Total_LBAs_Written
# $ sudo Total_LBAs_Written 2G
# $ sudo Total_LBAs_Written 100М
#
# далее в меню выберите нужный диск и нажмите Enter
# по умолчанию тестовый файл берётся в 1 гиг, но можно указать и своё значения передав его программе первым параметром.
# В меню будут отображаться тока те диски которые соответствуют критериям: 
# - несъёмный
# - примонтирован в системе
# - не быть в режиме только для чтения (для возможности записи на него временных тестовых данных)
# - иметь достаточно места для записи тестового файла
#
#
# Пример вывода программы
#
# $ sudo Total_LBAs_Written 100M
# Total_LBAs_Written (1) = 5860217375
# Total_LBAs_Written (2) = 5860422239 ~ 2999598811739 bytes = 2,8T
#              (2) - (1) = 204864 ~ 104857600 bytes = 100M (test file size)
# ==============================================================================
# Итого на диск /dev/sda было всего записанно порядка 2,8T
#
##############################################################################################################

# set -o xtrace
set -o nounset
set -o errexit
set -o pipefail

TESTFILE_SIZE=${1:-1G}
TESTFILE_SIZE_BYTES=$(numfmt --from=iec $TESTFILE_SIZE)

disk_partitions(){
	lsblk -plo PKNAME,NAME,MOUNTPOINT $(lsblk -rbpo "PATH,RM,RO,FSAVAIL" |awk -v size=$TESTFILE_SIZE_BYTES '$2==0&&$3==0&&$4>size{print $1}')
}

export TESTFILE_SIZE_BYTES
export -f disk_partitions


SELECTED_PARTITION=$(disk_partitions \
|fzf 	--bind 'ctrl-r:reload(bash -c 'disk_partitions')' \
		--header $'Ctrl+c\t- выйти\nCtrl+r\t- обновить\nEnter\t- выбрать\n\n' \
		--header-lines=1 \
		--layout=reverse \
|awk '{print $2}' )


DISK=$(lsblk -npo PKNAME $SELECTED_PARTITION)

TLW1=$(smartctl -a $DISK | awk '/Total_LBAs_Written/{print $NF}')
[[ -z $TLW1 ]] && echo "Параметр Total_LBAs_Written на текущем диске $DISK не найден !!!" && exit 1

TESTFILE_PATH=$(lsblk -no MOUNTPOINTS $SELECTED_PARTITION)/testfile


sync -f $SELECTED_PARTITION
dd if=/dev/zero of=$TESTFILE_PATH bs=$TESTFILE_SIZE_BYTES count=1 status=none
sync -d $TESTFILE_PATH
rm $TESTFILE_PATH

TLW2=$(smartctl -a $DISK | awk '/Total_LBAs_Written/{print $NF}')

echo "Total_LBAs_Written (1) = "$TLW1
TLW2_SIZE=$(echo "$TLW2*$TESTFILE_SIZE_BYTES/($TLW2-$TLW1)"|bc)
echo "Total_LBAs_Written (2) = $TLW2 ~ $TLW2_SIZE bytes = "$(numfmt --to=iec $TLW2_SIZE)
echo "             (2) - (1) = $[TLW2-TLW1] ~ $TESTFILE_SIZE_BYTES bytes = "$(numfmt --to=iec $TESTFILE_SIZE_BYTES)" (test file size)"

echo ==============================================================================
echo "Итого на диск $DISK за всё время его работы было записанно порядка $(numfmt --to=iec $TLW2_SIZE)"

exit
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы