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

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
Awatar użytkownika
Tomfoc
Gibki Gibbon
Gibki Gibbon
Posty: 2183
Rejestracja: 30 lis 2011, 21:14
Płeć: Mężczyzna
Wersja Ubuntu: 22.04
Środowisko graficzne: GNOME
Architektura: x86_64

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

Post 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?
Awatar użytkownika
kszyhus
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1105
Rejestracja: 19 lis 2010, 08:34
Płeć: Mężczyzna
Wersja Ubuntu: 22.04
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: okolice Ostrowa Wielkopolskiego

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

Post 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.
:clap: PC: ASRock Z270-Pro4 *** Intel i7 7700K *** 32GB RAM
PC: Gigabyte H270-HD3 *** Intel i5 7600K *** 16GB RAM
Laptop: Dell Vostro 3590 *** Intel i5-10210U *** 16GB RAM
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4681
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

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

Post 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:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
Awatar użytkownika
Tomfoc
Gibki Gibbon
Gibki Gibbon
Posty: 2183
Rejestracja: 30 lis 2011, 21:14
Płeć: Mężczyzna
Wersja Ubuntu: 22.04
Środowisko graficzne: GNOME
Architektura: x86_64

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

Post 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 
Awatar użytkownika
pijetja
Wytworny Kaczor
Wytworny Kaczor
Posty: 304
Rejestracja: 05 cze 2010, 07:04
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Lokalizacja: Altreich

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

Post autor: pijetja »

Cześć,
Tmp i cache montowane w RAM jako tmpfs, w celu ograniczenia zapisu.
P.
ODPOWIEDZ

Wróć do „Instalacja, aktualizacja i konfiguracja Ubuntu”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość