Tuesday 26 February 2008

Optimize Linux (Μέρος 1ο)

Το Linux είναι γρήγορο,σταθερό και ασφαλές. Και βεβαία υπάρχουν τρόποι να γίνει γρηγορότερο,σταθερότερο και ασφαλέστερο.

Ο παρακάτω οδηγός απευθύνεται σε οικιακούς χρήστες που θέλουν να αυξήσουν την ταχύτητα χωρίς όμως να διακινδυνέψουν... πολύ, την σταθερότητα και την ασφάλεια του συστήματος.

Τα παρακάτω έχουν δοκιμαστεί με επιτυχία σε Ubuntu και σε Fedora και έχουν αυξήσει αρκετά την συνολική απόδοση του συστήματος.

Swappiness

Το σύστημα από προεπιλογή έχει την τάση να χρησιμοποιεί εικονική μνήμη ακόμα και οτάν δεν την χρειαζόμαστε, με αποτέλεσμα να χάνουμε σε ταχύτητα. Αυτό μπορούμε να το αλλάξουμε, αλλάζοντας την τιμή του vm.swappiness.
Για να έχουμε όφελος από την αλλαγή θα πρέπει το σύστημα μας να διαθέτει και αρκετή μνήμη βεβαία. Πχ 512mb+

από wikipedia->
"The backing store for a virtual memory operating system is typically many magnitudes slower than RAM. Therefore it is desirable to reduce or eliminate swapping, where practical. Some operating systems offer settings to influence the kernel's decisions.

1. Linux offers the /proc/sys/vm/swappiness parameter, which changes the balance between swapping out runtime memory, as opposed to dropping pages from the system page cache.
2. Windows 2000, XP, and Vista offer the DisablePagingExecutive registry setting, which controls whether kernel-mode code and data can be eligible for paging out."

Πάντα πριν πειράξουμε ένα αρχείο συστήματος το κάνουμε backup...
su -c 'cp /etc/sysctl.conf /etc/sysctl.conf.backup'

έπειτα το ανοίγουμε σαν root
su -c 'gedit /etc/sysctl.conf'

και προσθέτουμε την παρακάτω γραμμή ή αν υπάρχει αλλάζουμε την τιμή σε 0
vm.swappiness = 0


Noatime

Υπάρχουν αρκετά tips για να αυξηθεί η απόδοση του filesystem και κατά συνέπεια του συστήματος.
Αλλά πολλά απο αυτά επηρεάζουν αρνητικά την σταθερότητα του, όπως πχ το writeback στο ext3 ή η απενεργοποίηση του ελέγχου κατά το boot.
Ένα από τα χαρακτηριστικά του filesystem που σπάνια χρειάζεται ο οικιακός χρήστης είναι το "access time" των αρχείων.
Με την χρήση των noatime,nodiratime μπορούμε να βελτιώσουμε την απόδοση του συστήματος μας αρκετά.

από το kernel trap.org
"Atime updates are by far the biggest IO performance deficiency that Linux has today. Getting rid of atime updates would give us more everyday Linux performance than all the pagecache speedups of the past 10 years, _combined_."


κάνουμε backup το /etc/fstab:
su -c 'cp /etc/fstab /etc/fstab.backup'

και το ανοίγουμε με έναν επεξεργαστή κειμένου:
su -c 'gedit /etc/fstab'

στα mount options των ext3 δισκων μας προσθέτουμε το noatime,nodiratime.

Πχ το δίκο μου /etc/fstab μετά τις αλλάγες:
LABEL=/ / ext3 defaults,noatime,nodiratime 1 1
LABEL=/home /home ext3 defaults,noatime,nodiratime 1 2
LABEL=/disks/stuff /disks/stuff ext3 defaults,noatime,nodiratime 1 2
LABEL=/disks/multimedi /disks/multimedia ext3 defaults,noatime,nodiratime 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sda3 swap swap defaults 0 0


Preload

Υπάρχουν διαφορές τεχνικές να επιταχύνουμε την απόδοση των εφαρμογών. O γρηγορότερος και ασφαλέστερος τρόπος κατά την ταπεινή μου άποψη είναι η χρήση του preload.

από wikipedia->
"preload is a Free Linux program written by Behdad Esfahbod which runs as a daemon and records statistics about usage of programs using Markov chains; files of more frequently-used programs are, during a computer's spare time, loaded into memory. This results in faster application startup times as less data needs to be fetched from disk. preload is often paired with prelink."

Απλά το εγκαθιστούμε:
su -c 'yum install preload' (σε Fedora)
sudo apt-get install preload (σε Debian,Ubuntu)
Kαι απολαμβάνουμε γρηγορότερα τις αγαπημένες μας εφαρμογές :)

Καλή διασκέδαση!

Keywords: Linux,Optimizing,Guide,preload,swappiness,noatime

1 comment:

Anonymous said...

Edw kai kairo psaxno na brw sto net kati analogo.
Pou8ena,... ma pou8ena den brika kati analogo.
Se eyxaristw gia ayto poy moy/mas prosfereis, apo oti blepw 8a perasw para poly kairo eyxarista wste na diabasw ola ayta ta kalogrammena kai endiaferonta pragmata.

Me ektimhsh
DG