Strona 1 z 1

Jak wydłużyć żywot dysku SSD?

: 20 lis 2021, 11:50
autor: Tomfoc
Stosujecie jakieś triki w celu wydłużenia życia dysku SSD? Na przykład jakieś wpisy/zmiany w plikach konfiguracyjnych systemu? Może coś innego?

Re: Jak wydłużyć żywot dysku SSD?

: 20 lis 2021, 12:42
autor: kszyhus
Ja nie stosuję żadnych trików, ani wpisów w systemie. Zdaję się na ich żywotność i jak do tej pory nie mam z nimi żadnych problemów.
Mój najstarszy dysk Plextor SSD 128GB PX-128M5S zakupiłem w 2014 roku
Plextor SSD 128GB PX-128M6S w 2015 i mają się całkiem dobrze.
Fakt, że systemy mam teraz na dyskach Samsunga NVME M.2 EVO Plus
Mogę dodać jedynie, że od czasu do czasu robię ręczny trim dysków.

Re: Jak wydłużyć żywot dysku SSD?

: 20 lis 2021, 13:00
autor: jacekalex
Mam takiego jednego grata:
Zamontowany jako:

Kod: Zaznacz cały

/dev/sdb1 on / type ext4 (rw,relatime,discard)
/dev/sdb2 on /G2 type ext4 (rw,relatime,lazytime,discard,nobarrier,i_version)
/dev/sdb3 on /Bazy type btrfs (rw,relatime,lazytime,ssd,space_cache,subvolid=5,subvol=/)
/dev/sdb5 on /ssdtmp type btrfs (rw,relatime,lazytime,ssd,space_cache,subvolid=5,subvol=/)
/dev/sdb7 on /Debian type ext4 (rw,relatime,lazytime,nobarrier,i_version)
/dev/sdb9 on /boot/efi type vfat (rw,nosuid,nodev,noexec,relatime,lazytime,fmask=0022,dmask=0022,codepage=852,iocharset=iso8859-2,shortname=mixed,utf8,errors=remount-ro)
/dev/sdb3 on /Bazy/docker type btrfs (rw,relatime,lazytime,ssd,space_cache,subvolid=287,subvol=/docker)
/dev/sdb3 on /Bazy/docker/btrfs type btrfs (rw,relatime,lazytime,ssd,space_cache,subvolid=287,subvol=/docker)
Model dyzia:

Kod: Zaznacz cały

/dev/sdb - Symbol: TOSHIBA-TR200
/dev/sdb - Seria: Z8RB60UDK3LS
/dev/sdb: Power_On_Hours = 13088

Kod: Zaznacz cały

------------------------------
 SSD Status:   /dev/sdb
------------------------------
 On time:      13,088 hr
------------------------------

Zużycie dysku - zapis - zostało jeszcze:  88.31%
Dyziowi zostało jeszcze: 89% życia 
------------------------------------------------
To są dane ze smartctl, wyliczone z odczytanych danych o zapisie na dysku (góra),
i z parametrów Percentage Used Endurance Indicator z wyjścia smartctl.

Skrypt do oceny dyzia:
wyczesany na necie, oryginał do Samsunga, ale dane przeliczeniowe w zmiennych musiałem dodawać metodą prób i błędów, żeby się zbliżyć do prawdopodobnych wyników zużycia:

Kod: Zaznacz cały

#!/bin/bash

#######################################
# Variables                           #
#######################################

SSD_DEVICE="/dev/sdb"

ON_TIME_TAG="Power_On_Hours"
WEAR_COUNT_TAG="Wear_Leveling_Count"
LBAS_WRITTEN_TAG="Total_LBAs_Written"
### LBA_SIZE=512 # Value in bytes
LBA_SIZE=33554432
### LBA_SIZE=1048576

### BYTES_PER_MB=512
### BYTES_PER_GB=524288
### BYTES_PER_TB=536870912

### To są BZDURNE DANE wyliczone empirycznie
BYTES_PER_MB=1048576
BYTES_PER_GB=1073741824
BYTES_PER_TB=1099511627776

#######################################
# Get total data written...           #
#######################################

# Get SMART attributes
SMART_INFO=$(sudo /usr/sbin/smartctl -A "$SSD_DEVICE")
SMARTDEV=$(sudo /usr/sbin/smartctl -l devstat  "$SSD_DEVICE" |  grep "Percentage Used Endurance Indicator" |awk '{print $4}')
# Extract required attributes
ON_TIME=$(echo "$SMART_INFO" | grep "$ON_TIME_TAG" | awk '{print $10}')
WEAR_COUNT=$(echo "$SMART_INFO" | grep "$WEAR_COUNT_TAG" | awk '{print $4}' | sed 's/^0*//')
LBAS_WRITTEN=$(echo "$SMART_INFO" | grep "$LBAS_WRITTEN_TAG" | awk '{print $10}')

# Convert LBAs -> bytes
BYTES_WRITTEN=$(echo "$LBAS_WRITTEN * $LBA_SIZE" | bc)
MB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_MB" | bc)
GB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_GB" | bc)
TB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_TB" | bc)

# Output results...
echo "------------------------------"
echo " SSD Status:   $SSD_DEVICE"
echo "------------------------------"
echo " On time:      $(echo $ON_TIME | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta') hr"
echo "------------------------------"
echo " Data written:"
echo "           MBW: $(echo $MB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "           GBW: $(echo $GB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "           TBW: $(echo $TB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "------------------------------"
echo " Mean write rate:"
echo "        MB/hr: $(echo "scale=3; $MB_WRITTEN / $ON_TIME" | bc | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "------------------------------------------------"
echo "scale=2; 100-($TB_WRITTEN*100/60)" | bc -l|awk '{print "Zużycie dysku - zapis - zostało jeszcze:  "  $1"%"}' 
echo "100-$SMARTDEV" |bc |awk '{print "Dyziowi zostało jeszcze: "  $1"% życia " }'
echo "------------------------------------------------"

PS:
Całe wyjście skrypta;

Kod: Zaznacz cały

# pacjent ~> ssdlife 
------------------------------
 SSD Status:   /dev/sdb
------------------------------
 On time:      13,088 hr
------------------------------
 Data written:
           MBW: 7,358,464.000
           GBW: 7,186.000
           TBW: 7.017
------------------------------
 Mean write rate:
        MB/hr: 562.229
------------------------------------------------
Zużycie dysku - zapis - zostało jeszcze:  88.31%
Dyziowi zostało jeszcze: 89% życia 
------------------------------------------------
Pozdro
:craz:

Re: Jak wydłużyć żywot dysku SSD?

: 20 lis 2021, 13:34
autor: Tomfoc
W necie można znaleźć różne poradniki - https://easylinuxtipsproject.blogspot.com/p/ssd.html - ale nie wiem czy warto stosować. Dane mojego dysku:

Kod: Zaznacz cały

inxi -D
Drives:    Local Storage: total: 953.87 GiB used: 379.56 GiB (39.8%) 
           ID-1: /dev/nvme0n1 vendor: Western Digital model: PC SN730 NVMe WDC 1024GB size: 953.87 GiB 

Re: Jak wydłużyć żywot dysku SSD?

: 21 lis 2021, 05:38
autor: pijetja
Cześć,
Tmp i cache montowane w RAM jako tmpfs, w celu ograniczenia zapisu.
P.