Linux filesystems benchmarks - Μέρος 2ο

Έπεται η συνέχεια του benchmarking των Linux filesystems. Όπως ανέφερα και στην πρώτη δημοσίευση, θα έκανα ένα δεύτερο τεστ χρησιμοποιώντας αυτή τη φορά ένα μικρότερο partition, των 17GiB.

Αυτή τη φορά, συμπεριέλαβα και το ext3 επιπλέον όταν γίνεται mount το partition με την παράμετρο data=writeback. Επίσης, όσον αφορά στο XFS, έκανα δύο μετρήσεις, την πρώτη φορά με τις εξ' ορισμού τιμές κατά τη δημιουργία του filesystem και τη δεύτερη φορά, αυξάνοντας (για την ακρίβεια διπλασιάζοντας) το μέγεθος του log file, καθώς και τετραπλασιάζοντας τον αριθμό των agcount (από 4 στα 16).

Δεν υπάρχουν πολλά να πούμε και πάλι. Το JFS παραμένει ένα άριστο filesystem, με τα ReiserFS και ext3 να είναι κοντά. Το XFS δεν εντυπωσιάζει.

Μάλλον η επιλογή του JFS για το μεγάλο partition που χρειάζομαι στο νέο μου δίσκο είναι προφανής.

Ελπίζω να σας φανούν χρήσιμα οι δύο αυτές μετρήσεις.

υπολογιστές / computers: 
Χρήσιμο / Useful: 
No votes yet
Ψηφίστε για την ποιότητα του άρθρου / Vote for the article's quality
ΣυνημμένοΜέγεθος
PDF icon Linux-FS-Benchmarks-part2.pdf46.19 KB

Σχόλια

Το XFS χρειάζεται αρκετά δυνατο hardware και επαρκή ποσότητα μνήμης, αλλιώς δεν έχει νόημα. To JFS δουλεύει μιά χαρά σε low end hardware ακριβώς γιατί έχει σχεδιαστεί. Το reiserfs δυστυχώς θα έχει ένα άδοξο τέλος :(. Για αυτά και άλλα πολλά, ορίστε κάποια links:

http://fsbench.netnation.com/
http://www.debian-administration.org/articles/388
http://linuxgazette.net/122/TWDT.html#piszcz

Γενικά, το XFS είναι cpu and memory intensive, άρα, δεν κάνει για EeePC.

Υπάρχουν αρκετά περισσότερα πράγματα, αλλά ας τα αφήσουμε για τώρα. Ίσως θα έπρεπε να είσαι λίγο πιό συντηρητικός όταν λές ότι κάτι δεν εντυπωσιάζει.

Αγαπητέ επισκέπτη,

Δεν κατάλαβα γιατί αναφέρεις το eeePC. Τι σχέση έχει αυτό; Το PC μου πιστεύω είναι αρκετά δυνατό (ως PC τουλάχιστον), με διπλοπύρηνο Intel Core 2 στα 3GHz και 4GiB μνήμης. Νομίζω ότι το XFS έχει αρκετό περιθώριο για να δείξει τα δόντια του σε ένα τέτοιο μηχάνημα. Άλλωστε XFS και ReiserFS χρησιμοποιώ αυτή τη στιγμή, οπότε δεν είμαι προκατειλημμένος απέναντί του, απλά αναφέρω τι έδειξαν οι δοκιμές που έκανα, κάτι που δεν σχολίασες καν αν ήταν σωστές ή όχι.

Σχετικά με τη φράση μου «ότι δεν εντυπωσιάζει»... Έχω την εντύπωση ότι γράφω στην προσωπική μου ιστοσελίδα, άλλωστε ούτε έβρισα κανέναν ούτε έθιξα κάτι. Αν έχεις κάτι να πεις επί της διαδικασίας και των αποτελεσμάτων, ορίστε να τα πεις.

Ευχαριστώ για τους συνδέσμους, θα τους κοιτάξω.

Απλά διάβασε τα links. Δεν σχολίασα τα αποτελέσματά σου γιατί απλά δεν έχεις την πλήρη μεθοδολογία, το ακριβές hardware που χρησιμοποίησες όσον αφορά chipset, ram clock (667? 800? ...) etc, το load του συστήματος κάτω από το οποίο έγιναν τα benchmarks. Το να λέμε ότι πήραμε ένα γρήγορο δίσκο δεν θα πεί τίποτε. Ακόμα και το φυσικό τμήμα του δίσκου στο οποίο έχεις κάνει το partition έχει σημασία, καθότι υπάρχει i/o performance degradation με τις κινήσεις τις ακίδας. Πόσο περισσότερο εάν υπάρχουν controllers που επιρρεάζουν τo i/o λόγω των drivers. Η ακόμη και λόγω σχεδιασμού (π.χ. PCI express 1x vs kati kalytero). Από αυτά που είδα στο adslgr (i am NOT a member there) έχεις προδιαγραφές συστήματος: Gentoo Linux x86_64, πυρήνας 2.6.26-gentoo-r1 (vanilla 2.6.26.2 + gentoo patchset), modules για τα filesystems ενσωματωμένα στον πυρήνα, Intel Core2 E8400 με P35 chipset, 4GiB RAM, δίσκος WD6400AAKS. Και πάλι, με τέτοιo σύστημα, θα έπρεπε να έχεις καλύτερες αποδόσεις στο XFS. Bios settings?

Για αυτό το λόγο, δεν θα σχολιάσω τις μετρήσεις σου. Αν θέλεις, παίξε και με την τοποθεσία του log file (in high i/o you will put it in different drives, not partitions...). Επίσης, η άυξηση του agcount είναι δίκοπο μαχαίρι χωρίς κατάλληλο σχεδιασμό. Όσοι ασχολούνται με το XFS, και θέλουν το μέγιστο, πρέπει δυστυχώς να ιδρώσουν. Άλλωστε, είχε σχεδιαστεί για μηχανήματα SGI που και τα τροφοδοτικά τους ακόμα, άφηναν να γίνει καθαρό shutdown σε περίπτωση power failure.

Πάντως, η επικρατούσα επιλογή για high - end σε επίπεδο linux με έντονο network i/o, μεγάλα αρχεία κλπ είναι το XFS. Ένας απο τους λόγους είναι η επιθετική χρήση που κάνει στη μνήμη.

Η προσωπική σου ιστοσελίδα googleάρεται. Άρα, θα έπρεπε να τα αναφέρεις αυτά, αφού προσπαθείς να δώσεις λύσεις σε γνωστά προβλήματα. Απλά κάνω μία παρατήρηση, καλοπροαίρετα.

Καλύτερα τώρα.

Η αφορμή που έκανα τις μετρήσεις αυτές ήταν η αγορά του νέου δίσκου και η επιλογή των filesystems που θα χρησιμοποιήσω. Δεν ήταν το ότι πήρα απλά ένα γρήγορο δίσκο. Δεν είμαι ειδικός στα filesystems και ούτε το παίζω, από κάποιες σελίδες στο internet είδα πχ. ότι αυξάνοντας το log file και τα agcount, μπορείς να πάρεις καλύτερες επιδόσεις. Τα αποτελέσματα είναι ενδεικτικά και εφόσον το JFS έχει καλύτερες επιδόσεις για τις δεδομένες συνθήκες, αυτό κατά πάσα πιθανότητα θα χρησιμοποιήσω.

Ωστόσο, θα διεξάγω και άλλες μετρήσεις (πχ. copy directories, untarring μεγάλου archive, κτλ.) και θα δω τι γίνεται και σε εκείνες τις συνθήκες.

Τα links τα επισκέφθηκα πριν από λίγο και κατάλαβα ότι τα είχα ξαναδεί παλιότερα. Ωστόσο, η αλήθεια είναι ότι είναι αρκετά παλιά (και ημερολογιακά) αναφορικά με τις εκδόσεις των προγραμμάτων, τον πυρήνα, κτλ. που σημαίνει ότι πχ. από τον 2.6.14 ή 2.6.0 μέχρι τον 2.6.26 σίγουρα έχουν αλλάξει τα δεδομένα. Η μεθοδολογία είναι σίγουρα όμως χρήσιμη.

Επειδή φαίνεται ότι γνωρίζεις αρκετά επί του θέματος XFS, είμαι ανοικτός σε προτάσεις, ιδέες. Αν θέλεις περισσότερες λεπτομέρειες σχετικά με το hardware μου, πες μου πιο συγκεκριμένα τι θέλεις και θα στο πω.

Ευχαριστώ!

Δεν γνωρίζω την δουλεία των patchaδόρων του gentoo καθότι παίζω με debian και πάντοτε με δικό μου kernel. Πάντως, από ότι βλέπω ειδικά στα εδραιωμένα filesystems, δεν υπάρχουν διαφορές ουσίας από την εποχή των τελευταίων εκδόσεων του πειραματικού κάποτε 2.5.x.

Οι ρυθμίσεις που χρειάζεσαι είναι και στο μέγεθος του log, κατα τη δημιουργία του XFS filesystem, και όχι απλά στο logbuf. Το mount τού XFS με logbufs=8 θα βοηθήσει στην περίπτωση spiked activity σε επίπεδο metadata, αλλά εάν το logsize είναι μικρό, πρόκειται για δώρον άδωρον.

Επίσης, πρέπει να υπολογίσεις το γεγονός ότι οι διαφορετικοί συνδιασμοί log, logbuf, agcount μπορεί να έχουν δραματικά διαφορετικά αποτελέσματα. Ένα ενδιαφέρον link είναι το http://everything2.com/index.pl?node_id=1479435 . (για μένα, χρησιμοποίησα ενα log των 128mb το οποίο ήταν το καλύτερο στα δικά μου τεστ, αυτό μπορεί και να μήν ισχύει για σένα). Εκτός απο το μέγεθος του log, πρέπει να λάβεις υπόψη την αντιστρόφως ανάλογη συμπεριφορά των allocation groups με το μέγεθος του partition που χρησιμοποιείς.

Είναι εξαιρετικά απίθανο to JFS να ξεπεράσει σε performance το XFS όταν το τελευταίο έχει χρησιμοποιηθεί με τα κατάλληλα settings, και το google εχει σχετικά links που συμφωνούν όλα σε αυτό. Είναι επίσης γνωστό ότι σε επίπεδο METADATA κατα τη δημιουργία directories etc, το XFS θέλει δουλίτσα και σε επίπεδο disk cache (hdparm...). Δεν θα συνιστούσα το XFS σε κάποιον που απλά θέλει ενα καλό out of the box performance, ποτέ. Και ιδιαίτερα για μικρά αρχεία. Εξαίρεση είναι οι υπολογισμοί σε συστοιχίες RAID, όπου εκεί, είναι ο ουσιαστικός νικητής σε όλα τα σενάρια, λόγω του alignment που μπορείς να κάνεις με agcount, swidth,sunit με το block size. Νικητής επίσης και στο network i/o λόγω του μηχανισμού των allocation groups.

Πρέπει επίσης να μελετήσεις το κεφάλαιο write barriers στο documentation στο site της SGI, το οποίο είναι καλύτερα να δείς πρίν αρχίσεις να παίζεις με external log files, real time storage etc..

Good luck for the rest.

εγω πάλι νομίζω οτι δεν χρειάζεται (δεν είναι και τόσο σωστό) να φορτώνεις το kernel με πολλά διαφορετικά FS αν απλώς θέλεις ένα stable workstation (όχι για server εκεί συμφωνώ ότι σηκώνει πολύ customization η δουλειά ανάλογα με την περίπτωση)

γενικά προτιμώ ext3 για συμβατότητα/σταθερότητα.