수명 동안 SSD에 얼마나 많은 데이터가 기록 되었습니까? 몇 번의 사이클이 수행되었는지 알고 싶기

디스크 전체 수명 동안 SSD에 몇 GB가 기록되었는지 표시하는 터미널 명령이 있습니까? 몇 번의 사이클이 수행되었는지 알고 싶기 때문에 묻습니다. SSD는 유형에 따라 약 1000–2000주기를 수행 할 수 있습니다.



답변

적절한 도구 *를 사용하여 SSD의 다음 SMART 속성을 읽으십시오.

241-쓴 총 LBA : 장치의 전체 수명 동안 기록 된 총 512 바이트 섹터 수.

242-Total LBAs Read : 장치의 전체 수명 동안 읽은 총 512 바이트 섹터 수입니다.

두 번째 속성 세트는 다음과 같습니다.

174-Host_Reads_MiB
175-Host_Writes_MiB

그러나 두 번째 세트에서 찾은 값이 실제로 의미가 있는지는 모르겠습니다 (적어도 Fusion 드라이브의 일부로 120GB SSD를 사용하는 경우) SSD를 통해 HDD보다 훨씬 많은 데이터가 SSD에 기록되기 때문에 크기의 1/25 만 있습니다.

0xae Host_Reads_MiB          ----CK   100   100   000    -    12268569 (~12 TiB)
0xaf Host_Writes_MiB         ----CK   100   100   000    -    16481745 (~16 TiB) 

3TB HDD (Fusion 드라이브의 두 번째 부분)와 비교 한 결과 :

0xf1 Total_LBAs_Written      ------   100   253   000    -    21361815408 (~10 TiB)
0xf2 Total_LBAs_Read         ------   100   253   000    -    23925221693 (~11 TiB)

smartmontools를 설치 한 후 “242 Total_LBAs_Written”속성이 존재하면 다음 명령은 GB 단위로 작성된 데이터를 제공합니다.

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/DiskIdentifier | grep 0xf1 | awk '{ print $8/1953125 }'

또는 TB로 :

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/DiskIdentifier | grep 0xf1 | awk '{ print $8/1953125000 }'

“DiskIdentifier”를에서 찾은 내부 SSD의 식별자로 바꿉니다 diskutil list. 아마 disk0입니다.

다음 명령은 “175-Host_Writes_MiB”속성이 존재하면 기록 된 데이터를 GB 단위로 제공합니다 (주의하여 결과를 처리하십시오).

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/DiskIdentifier | grep 0xaf | awk '{ print $8/953.67 }'

앞에서 언급 한 것처럼 “DiskIdentifier”를로 찾은 내부 SSD의 식별자로 바꿉니다 diskutil list. 아마 disk0입니다.

위의 smartctl 명령은 (적어도 나에게는) 매우 안정적으로 작동하지 않습니다.
“SMART 데이터 읽기 실패 : 정의되지 않은 오류 : 0″과 같은 오류가 발생하면 smartctl -A /dev/disk0먼저 시도하십시오 .
“SMART 사용 안함. -on 옵션과 함께 옵션 -s를 사용하여 사용으로 설정하십시오.”와 같은 오류 smartctl -s on -A /dev/disk0
가 표시되면 위 명령을 재 시도하여 디스크에 기록 된 데이터를 읽고 계산하십시오.

* smartmontools


답변

원래 게시물은 SSD에 1000-2000주기 제한이있어 문제를 지나치게 단순화한다고 언급했습니다. SSD의 개별 셀 에는 이러한 제한이있을 수 있지만 SSD는 오버 프로비저닝 및 쓰기 레벨링에서 Sandforce의 독점적 인 중복 제거, 압축 및 데이터 차별화 기술 모음 인 “DuraWrite”에 이르기까지 다양한 솔루션을 구현합니다.

원래 게시물로 돌아갑니다. iostat관련 기술 은 총체적인 활동을 보여 주지만 각 셀에 대해 얼마나 많은 프로그램 / 삭제주기가 수행되었는지, 그리고 거기에서 SSD에 남아있는 수명을 알기 위해서는 역으로 작업하기가 매우 어렵습니다.

유용한 권장 사항은 명시된 용량의 20 % 정도까지 SSD를 채우지 않고 적절한 백업없이 사용한 SSD를 배포하지 않는 것입니다.

Ars Technica에는 SSD의 작동 방식에 대한 몇 가지 유용한 기사가 있습니다. 가장 직접적으로 유용한 것은 ” 소비자 급 SSD는 실제로 오래 지속된다 “는 것입니다. 자세한 내용은 여기 , 특히 5 페이지를 참조 하십시오 .


답변

Homebrew ( ) 와 함께 GSmartControl 을 설치 하고 다음을 얻었습니다.brew install gsmartcontrol

SMART 속성 번호 173 (Erase Count 또는 Wear Leveling)은 사용 된 전체 섹터 쓰기를 의미해야합니다.

My MacBook 2015에서이 답변에 응답했습니다 (0xf1 ID 없음).

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/disk0
smartctl 6.4 2015-06-04 r4109 [x86_64-apple-darwin15.0.0] (local build)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     APPLE SSD SM0256G
...
LU WWN Device Id: 5 002538 900000000
Firmware Version: BXW1SA0Q
User Capacity:    251 000 193 024 bytes [251 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
...
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID#  ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
0x01 Raw_Read_Error_Rate     -O-RC-   200   200   000    -    0
0x05 Reallocated_Sector_Ct   PO--CK   100   100   000    -    0
0x09 Power_On_Hours          -O--CK   099   099   000    -    180
0x0c Power_Cycle_Count       -O--CK   099   099   000    -    650
0xa9 Unknown_Attribute       PO--C-   229   229   010    -    1975773037504
0xad Unknown_Attribute       -O--CK   200   200   100    -    4296081414
0xae Unknown_Attribute       -O---K   099   099   000    -    2547718
0xaf Program_Fail_Count_Chip -O---K   099   099   000    -    1304888
0xc0 Power-Off_Retract_Count -O--C-   099   099   000    -    1
0xc2 Temperature_Celsius     -O---K   059   022   000    -    41 (Min/Max 19/78)
0xc5 Current_Pending_Sector  -O---K   100   100   000    -    0
0xc7 UDMA_CRC_Error_Count    -O-RC-   200   199   000    -    0
                             ||||||_ K auto-keep
                             |||||__ C event count
                             ||||___ R error rate
                             |||____ S speed/performance
                             ||_____ O updated online
                             |______ P prefailure warning

ATA_READ_LOG_EXT (addr=0x00:0x00, page=0, n=1) failed: 48-bit ATA commands not implemented
Read GP Log Directory failed

Device Statistics (GP/SMART Log 0x04) not supported

답변

이 질문에 대한 매우 자세한 답변이 여기에 주어졌습니다.

다음 명령

iostat -Id disk0

장치가 장착 된 순간부터 iostat 명령이 실행 된 순간까지의 데이터 전송 통계를 반영합니다.