#SSD δίσκοι. Ρυθμίσεις για αύξηση χρόνου ζωής

by 3:28 μ.μ. 0 σχόλια


Όπως πιθανό να γνωρίζετε, υπάρχουν μηχανικοί δίσκοι και οι τύπου SSD. Οι SSD, αν και πιο γρήγοροι, έχουν περιορισμένο χρόνο ζωής εάν χρησιμοποιείτε τις προκαθορισμένες ρυθμίσεις της διανομής που εγκαταστήσατε. Αν κάνετε κάποιες ρυθμίσεις τότε βελτιώνετε τον χρόνο ζωής του. Υπάρχουν πολλές ιστοσελίδες με οδηγίες το τι να κάνετε. Εγώ χρησιμοποίησα κυρίως το wiki της διανομής Arch καθώς και το άρθρο του Fran. Τέλος, το άρθρο σχετικά με την εφαρμογή σε openSUSE και το wiki openSUSE, είναι πολύ καλές πηγές για πληροφορίες.

Το post αυτό το γράφω κυρίως για εμένα ;-) , ποιες ρυθμίσεις χρειάζεται να κάνω σε περίπτωση δίσκου SSD. Ας τα δούμε όμως με την σειρά.


ΚΑΝΟΝΑΣ 1
Δημιουργία κατατμήσεων

Κατά τη δημιουργία κατατμήσεων, ΜΗΝ δημιουργήσετε την κατάτμηση για την μνήμη swap.
Eπίσης αφήστε ένα 7% περίπου του δίσκου σας χωρίς κατάτμηση (unallocated). Δεν είναι της παρούσης να εξηγηθεί γιατί. Απλά να έχετε υπόψιν σας ότι αυτό βελτιώνει την αντοχή ενός SSD δίσκου με κατανομή του συνολικού αριθμού εγγραφών σε αυτόν.

Τέλος, το καλύτερο σύστημα αρχείων είναι το ext4. Θα πραγματοποιήσει τον ελάχιστο αριθμό εγγραφών στον δίσκο σας.

ΠΡΟΣΟΧΗ: μην επιλέξετε BTRFS! Στην έκδοση openSUSE 13.2 το BTRFS είναι το προεπιλεγμένο σύστημα αρχείων κατά τη διάρκεια της εγκατάστασης. Αυτό προκαλεί πολλές εγγραφές λόγω των snapshots τα οποία κάνει το Snapper. Δεν είναι καλό για έναν SSD....

ΚΑΝΟΝΑΣ 2
Ρυθμίσεις δίσκων στο fstab


Οι περισσότερες διανομές χρησιμοποιούν την επιλογή ‘relatime’ στις κατατμήσεις στο /etc/fstab. Εάν δεν σας ενδιαφέρει πότε προσπελάστηκε το αρχείο (που λογικά δεν θα σας ενδιαφέρει), το αλλάζετε. Αυτό όχι μόνο βελτιώνει τον χρόνο ζωής του δίσκου σας αλλά μειώνει και τις μη απαραίτητες εγγραφές.

Για να κάνετε αυτές τις αλλαγές, ανοίξτε το τερματικό (χρησιμοποιείστε τον editor που σας αρέσει, πχ nano, gedit κλπ):

sudo nano /etc/fstab


Αφαιρέστε το ‘relatime’ (εάν υπάρχει) και προσθέστε την ρύθμιση ‘noatime’. Πρέπει να μοιάζει κάπως έτσι:

/dev/sdaX / ext4 noatime,acl,user_xattr 0 1
/dev/sdaY /home ext4 noatime,acl,user_xattr 0 2


Μην χρησιμοποιείτε τις ρυθμίσεις 'nodiratime' και 'discard'. Για την 'discard' πρέπει να είστε σίγουροι ότι έχετε έκδοση πυρήνα 2.6.33 και άνω ΚΑΙ ότι ο δίσκος SSD υποστηρίζει την τεχνολογία TRIM. Αλλιώς μπορεί να χάσετε δεδομένα!


ΚΑΝΟΝΑΣ 3
Μετακινήστε στη μνήμη RAM ότι είναι προσωρινό (προεραιτικό)


Κάθε εφαρμογή δημιουργεί κάποια αρχεία καταγραφής (logs). Αυτά καλό θα ήταν να τα μεταφέρετε στην μνήμη RAM με την χρήση του συστήματος αρχείων ‘tmpfs’, το οποίο αυξάνει ή μειώνεται δυναμικά όπως χρειάζεται. Υπάρχει ένα μικρό ρίσκο, μια εφαρμογή να καταρρεύσει γιατί δεν έχει πρόσβαση σε αρχεία ιστορικού που έχουν δημιουργηθεί. Στην πράξη, αυτό το ρίσκο είναι πολύ μικρό.

Ανοίξτε πάλι το fstab με την εντολή:

sudo nano /etc/fstab


Και προσθέστε τις γραμμές:

tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/spool tmpfs defaults,noatime,mode=1777 0 0


Για να δημιουργείτε την δομή των καταλόγων στο /var/log, πρέπει να προσθέσετε τις εντολές:

sudo nano /etc/rc.d/boot.local

Πάνω από την γραμμή "exit 0".

#
# Modification for SSD
for dir in apparmor apt cups dist-upgrade fsck gdm installer samba unattended-upgrades ;
do
if [ ! -e /var/log/$dir ] ; then
mkdir /var/log/$dir
fi
done


ΚΑΝΟΝΑΣ 4
Μην δημιουργείτε προσωρινή μνήμη στους browsers


Υπάρχει η άποψη να ΜΗΝ μετακινήσουμε την προσωρινή μνήμη των browsers στην RAM.

Ο εύκολος τρόπος είναι να ανοίξετε τον Firefox και να κάνετε το εξής:

1. Ορίστε την cache σε 0:
Στο μενού του Firefox (οι 3 παύλες) - Προτιμήσεις - Για προχωρημένους
Επιλέξτε την καρτέλα Δίκτυο και στο Cached Web Content επιλέξτε το Override automatic cache management και ορίστε την cache σε 0 MB.

2. Εάν έχετε εγκατεστημένη την Oracle Java, περιορίστε τις ενέργειες εγγραφής στο πρόσθετο Java:
Ανοίξτε το Java Control Panel - Tab General: Temporary Internet Files - Settings...
Αποεπιλέξτε το Keep temporary files on my computer.

Ο δύσκολος τρόπος είναι:

Για Firefox:
1. Πληκτρολογήστε στο navigation toolbar το about:config
2. Πληκτρολογήστε browser.cache στην μπάρα στην κορυφή.
3. Βρείτε browser.cache.disk.enable και ορίστε το στο false (με διπλό κλικ πάνω του).
4. Ορίστε το browser.cache.memory.enable στο true
5. Δημιουργήστε μια νέα επιλογή με δεξί κλικ οπουδήποτε > new και επέλεξε Integer.
6. Ονομάστε τη νέα επιλογή browser.cache.memory.capacity και πατήστε OK.
7. Στο επόμενο παράθυρο που ζητά τον αριθμό των kilobytes που θέλετε να προσθέσετε στην cache. Απλά βάλτε -1 για να δώσετε εντολή στον Firefox να καθορίσει δυναμικά το μέγεθος της cache.
8. Δημιουργήστε ακόμα μια νέα επιλογή με δεξί κλικ οπουδήποτε, επιλέξτε New -> String, προσθέτοντας το λεκτικό browser.cache.disk.parent_directory.
9. Εν συνεχεία κάντε modify στο νέο string που μόλις ονομάσατε δηλώνοντας ένα directory εκτός SSD δίσκου. Αν δεν έχετε άλλον δίσκο τότε δηλώστε το directory /tmp.

Όσον αφορά το Chrome:

Ο εύκολος τρόπος είναι:

Ανοίξτε τον Chrome και πατήστε το πλήκτρο F12 για να ανοίξει η κονσόλα των developers. Σε αυτό το παράθυρο καντε κλικ στο γρανάζι στο κάτω δεξιό κάτω μέρος, ώστε να ανοίξετε τις ρυθμίσεις. Στο παράθυρο αυτό, κάντε κλικ στο Disable cache. Πατήστε πάλι το F12 για να κλείσει. Επαναλάβατε για κάθε λογαριασμό χρήστη.

Υπάρχει και ο δύσκολος τρόπος. Όσον αφορά τον Chrome-Chromium, πρέπει να κάνετε κάποιες αλλαγές στο αρχείο rc.local.

sudo gedit /etc/rc.local


και προσθέτουμε τις παρακάτω γραμμές :
mkdir /tmp/chrome
mount -t tmpfs -o size=1024M,mode=0744 tmpfs /tmp/chrome/
chmod 777 /tmp/chrome/ -R


Τελευταίο βήμα είναι η δημιουργία symlink μεταξύ του καταλόγου του του browser και του νέου καταλόγου στην μνήμη RAM.

rm -rf ~/.cache/google-chrome
ln -s /tmp/chrome/ ~/.cache/google-chrome


Εναλλακτικά μπορείτε να ενεργοποιήσετε την εντολή που κάθε φορά που ανοίγει ο browser να χρησιμοποιεί τον κατάλογο στη RAM. Δώστε σε τερματικό την εντολή:
sudo nano /usr/local/share/applications/google-chrome.desktop

Αντικαταστήστε την γραμμή:
#Exec=/opt/google/chrome/google-chrome %U

με

Exec=/opt/google/chrome/google-chrome –disk-cache-dir=”/tmp/chrome/”


ΚΑΝΟΝΑΣ 5
Εάν έχετε αρκετή μνήμη RAM, ελαχιστοποιήστε την χρήση της μνήμης SWAP


Στον υπολογιστή που έχω τον SSD, έχω 4GB μνήμη RAM. Έτσι έχω αρκετή μνήμη για εφαρμογές αλλά και προσωρινή μνήμη. Αν έχετε και εσείς παρόμοιο μηχάνημα, μπορείτε να το ρυθμίσετε ώστε να γίνεται χρήση της μνήμης SWAP όταν είναι απαραίτητη. Η διαδικασία περιγράφεται στο wiki του Arch.

Δείτε την swap σας:

cat /proc/sys/vm/swappiness

Το αποτέλεσμα της εντολής μπορεί να είναι περίπου 60, το οποίο είναι μεγάλος αριθμός. Μειώστε το σε 1:

Τροποποιήστε το αρχείο /etc/sysctl.conf:

sudo nano /etc/sysctl.conf


και προσθέστε τις γραμμές:

# Sharply reduce swap inclination
vm.swappiness=1


ΚΑΝΟΝΑΣ 6
Απενεργοποίηση του hibernation


Το Hibernation προκαλεί πολλές εγγραφές στον δίσκο σας, κάτι που δεν είναι καλό. Για απενεργοποίηση, πρέπει να αφαιρέσετε το πακέτο pm-utils.

sudo zypper rm pm-utils


ΚΑΝΟΝΑΣ 7
Χρήση "καθαρισμού" με τεχνολογία TRIM


Το TRIM είναι κάτι σαν αυτόματη ανασυγκρότηση και το έχουν όλοι οι SSD τελευταίας γενιάς, βοηθώντας τους να παραμένουν πάντα γρήγοροι. Το ext4 file system είναι ότι καλύτερο, αυτή την στιγμή, από πλευράς υποστήριξης του TRIM και η επιλογή του από έναν απλό χρήστη είναι μονόδρομος.

Μπορούμε να το εκτελούμε μόνοι μας ανά τακτά χρονικά διαστήματα (πχ με τη χρήση του bashrc).

$ sudo /usr/sbin/fstrim -v /

και

$ sudo /usr/sbin/fstrim -v /home

Αν και στις περισσότερες αναφορές είδα την εντολή μόνο ως fstrim -v /, προσωπικά δεν δούλεψε και έτσι πρόσθεσα όλα τα υπόλοιπα. Δουλεύει μια χαρά.

Θα σας δώσει πχ ένα αποτέλεσμα:

/: 9937715200 bytes were trimmed


Πόσο συχνά χρειάζεται να εκτελείτε αυτή την διαδικασία και πόσο χρόνο θα πάρει να ολοκληρωθεί, εξαρτάται από την προσωπική χρήση του δίσκου SSD.

1. Εάν θέλετε να εκτελείται κάθε φορά που ανοίγετε τον υπολογιστή σας (/etc/rc.d/boot.local).

Πρέπει να προσθέσετε την εντολή στο /etc/rc.d/boot.local. Αυτή η εντολή θα εκτελείται αυτόματα όταν εκκινεί ο υπολογιστής σας. Ελάχιστα καθυστερεί την διαδικασία εκκίνησης. Αυτή είναι ίσως η καλύτερη μέθοδος.

Ανοίξτε το αρχείο με την εντολή:

sudo nano /etc/rc.d/boot.local

Στο τέλος του αρχείου προσθέστε τις εντολές TRIM για κάθε ext4 κατάτμηση που προσαρτείτε.


2. Για υπολογιστές που είναι μόνιμα ανοικτοί (cron).

Ανοίξτε με το τερματικό:

sudo nano /etc/cron.daily/trim

και προσθέστε τις γραμμές

#!/bin/sh
sudo /usr/sbin/fstrim -v / && sudo /usr/sbin/fstrim -v /home

Εκτελέστε την εντολή

sudo chmod +x /etc/cron.daily/trim

Με αυτό τον τρόπο, το σύστημά σας θα εκτελεί την εντολή στις 06:25 ή εάν δεν είναι ανοικτό, θα εκτελείται λίγο αργότερα.


ΚΑΝΟΝΑΣ 8
Αλλαγή I/O από scheduler σε deadline


Καταρχήν τσεκάρετε την κατάσταση του scheduler.

cat /sys/block/sda/queue/scheduler

Το αποτέλεσμα θα είναι της μορφής:
noop deadline [cfq]

Που σημαίνει όλα είναι ενεργά.

Ανοίξτε το grub.

sudo nano /etc/default/grub

Βρείτε την γραμμή:

GRUB_CMDLINE_LINUX_DEFAULT=

πχ
GRUB_CMDLINE_LINUX_DEFAULT=" resume=/dev/sda1 splash=silent quiet showopts"

και προσθέστε το elevator=deadline

πχ
GRUB_CMDLINE_LINUX_DEFAULT=" resume=/dev/sda1 splash=silent quiet showopts elevator=deadline"


Δώστε την εντολή για ενημέρωση του grub

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Ενδιάμεσα καλό είναι να κάνετε και κάποιες επανεκκινήσεις για να βλέπετε εάν η αλλαγή που κάνετε ισχύει ή δημιουργεί πρόβλημα.

Εδώ βρίσκεται και το Αγγλικό.

Efstathios Iosifidis

openSUSE and GNOME foundation member

I'm Farm Animal Manager and dairy products technician looking for new opportunities.

0 σχόλια:

Δημοσίευση σχολίου