Όπως σας έλεγα χτες, έκανα μερικές δοκιμές data transfer στο μικρό LANάκι του σπιτιού μου. Ο σκοπός των δοκιμών ήταν να διαπιστωθεί το CPU load ενός Media Server κατά τη διάρκεια μεταφοράς αρχείων σε ρυθμούς Gigabit Ethernet.
Θα ξεκινήσω λέγοντας ότι το setup μου μόνο αναφοράς δεν είναι! Έχω καταλήξει σε αυτό χωρίς ουσιαστικό προγραμματισμό, απλά ακολουθώντας τη διαδικασία των αναβαθμίσεων κάθε φορά που το θεωρούσα σκόπιμο.
Μέρος του LAN λειτουργεί out of spec για Gigabit Ethernet, και εξηγούμαι.
Η διασύνδεση μεταξύ του switch και του server γίνεται με περίπου 8 μέτρα καλώδιο CAT5. Όπως όλοι γνωρίζουμε, το καλώδιο CAT5 δεν υποστηρίζει επίσημα ταχύτητες Gigabit Ethernet. Παρόλα αυτά, λόγω του ότι είναι εξαιρετικά δύσκολο να το αλλάξω, επέλεξα να το ρισκάρω και να το χρησιμοποιήσω. Το αποτέλεσμα είναι να λειτουργεί φαινομενικά καλά, συγχρονίζοντας πάντα στο 1Gbps. Η επιτυχία της σύνδεσης υποψιάζομαι ότι έχει να κάνει με το σχετικά μικρό μήκος του καλωδίου. Δεν έχω κάποιο δείγμα ότι βγάζει CRC errors, λόγω του πολύ καλού ping και των καλών επιδόσεων (σχετικά) του όλου δικτύου, αλλά δεν έχω και network analyzer για να το μετρήσω.
Στη συνέχεια, έχουμε ένα switch της NetGear, το GS105. Διαθέτει 5 πόρτες 10/100/1000 auto negotiating, auto MDI/MDI-X και δεν είναι managed οπότε δεν έχουν ορισθεί priorities, limits, QoS γενικότερα.
Στο άκρο του server, έχουμε ένα μηχάνημα στημένο σε motherboard Asus A7V600 με ενσωματωμένη κάρτα δικτύου 3Com 3c940. Το συγκεκριμένο chip κυκλοφορούσε τότε σε πολλά motherboards, και θεωρούταν μέτριο σε επιδόσεις. Ο επεξεργαστής είναι ένας Athlon 2600 (1.9GHz), η μνήμη 1GB DDR266 και οι δίσκοι μια συλλογή από ποικιλία χωρητικοτήτων και ηλικιών. Για τους λόγους της δοκιμής μετέφερα αρχεία από έναν δίσκο WD 200GB PATA 7200RPM. Το λειτουργικό σύστημα είναι Windows Server 2003 32bit standard με όλα τα Service Packs και updates. Τα drivers είναι οι τελευταίες διαθέσιμες εκδόσεις από τους επίσημους δικτυακούς τόπους των κατασκευαστών.
Στο άκρο του client, έχουμε ένα μηχάνημα στημένο σε motherboard Asus M2NPV-VM με ενσωματωμένη κάρτα δικτύου στο south bridge της Nvidia (nForce 430). Η συγκεκριμένη λύση ethernet θεωρείται σήμερα μέτρια σε επιδόσεις, αν και σαφώς καλύτερο από του server. Ο επεξεργαστής είναι ένας Athlon Χ2 4600, η μνήμη 2GB DDR2 533 και οι δίσκοι 2 x Seagate 320GB SATA II μη συνδεδεμένοι σε RAID. Το λειτουργικό σύστημα είναι Windows Vista Ultimate 32bit με όλα τα updates. Τα drivers είναι οι τελευταίες διαθέσιμες εκδόσεις από τους επίσημους δικτυακούς τόπους των κατασκευαστών.
Παρακάτω παραθέτω screen captures από τα δύο μηχανήματα πριν ξεκινήσω την μεταφορά δεδομένων, ώστε να φανεί πιο είναι το idle CPU time:
Νομίζω ότι είναι προφανές ότι το πρώτο screen είναι από τον server και το δεύτερο από τον client.
Παρατηρείτε το χάλι που έχουν τα Vista σε σχέση με τα 2003.. παρότι στα 2003 τρέχουν στο background και αρκετά P2P προγράμματα.
Οι παρακάτω εικόνες αντιστοιχούν σε συνθήκες μεταφοράς αρχείου της τάξης των 4GB από τον server στον client. Η ταχύτητα μεταφοράς ήταν λίγο πάνω από τα 22ΜΒ/sec.
Βλέπουμε στον server ένα CPU usage της τάξης του 60%, για 18% utilization της Gigabit γραμμής. Στον client τα πράγματα είναι αρκετά καλύτερα, με αύξηση του load κατά περίπου 14%.
Στη συνέχεια είπα να βάλω ένα ακόμα αρχείο να μεταφέρεται (παράλληλα με το πρώτο) από άλλο δίσκο του server σε άλλο δίσκο του client, ώστε να δω εαν το bottleneck είναι στο Gigabit Ethernet ή σε κάποιον από τους δίσκου. Το αποτέλεσμα ήταν αυτό:
Λίγο καλύτερη αξιοποίηση του bandwidth, με λίγο αυξημένο CPU load.
Πριν κλείσω, θα ήθελα να πω ότι σκοπός της δοκιμής δεν ήταν να επιτύχω το καλύτερο δυνατό transfer rate, αλλά να δω CPU utilization. Οπότε, οι δίσκοι δεν είναι defragged, δεν έχουν επιλεγεί αρχεία σε σωστές θέσεις των δίσκων, και δεν έχω κλείσει άλλα προγράμματα τα οποία κάνουν χρήση των ίδιων δίσκων.
Ακούω τα σχόλιά σας..