AFF Performance Review

WP_20160907_13_23_50_Pro

Αφού τελείωσε η φυσική εγκατάσταση του All Flash FAS ήρθε η ώρα να περάσουμε σε κάποια τυπικά test. Καταρχήν να μιλήσουμε λίγο για το Setup

O server πάνω από τον οποίο θα τρέξουμε το test έχει 2 CPU Xeon E5 2650 και 512GByte RAM. Επίσης έχει 4 κάρτες 10GBit SFP+ από τις οποίες θα χρησιμοποιήσουμε τις 2 κάρτες για το iSCSI Traffic. Το storage έχει 24 δίσκους SSD των 800GB σε RAIDDP (Dual Parity) με ένα spare, οπότε έχουμε 21 δίσκους στη διάθεσή μας, περιμένουμε περίπου 60Κ random IOPS 🙂

Πριν κάνουμε τα test θέλαμε να σιγουρέψουμε πως δε θα υπάρχει κάποιο bottleneck σχετικά με το NIC ή το CPU οπότε γυρίσαμε τα RSS σε Numa Scaling mode , έτσι ώστε με 2 NUMA Nodes να έχουμε 2 τουλάχιστον CPU για το network traffic. Σε περίπτωση που το traffic μπορούσε να περάσει τη χρήση 2  CPU ο Windows Server 2012 R2 θα φρόντιζε να κάνει assign περισσότερα έτσι ώστε να μπορέσει να εξυπηρετήσει την κίνηση. Παρόλα αυτά δεν φάνηκε σε κανένα test να έχουμε ανάγκη γιατί τα 2 CPU ήταν υπεραρκετά για τα 10GBit.Επίσης ανοίξαμε όλα τα offloads στην κάρτα για να έχουμε όσο το δυνατόν λιγότερη χρήση CPU.

Για τα test φτιάξαμε ένα LUN 2.8TB το οποίο περάσαμε σε έναν από τους cluster nodes,χωρίς να το βάλουμε στο CSV

numa-scaling

Και το αμέσως επόμενο βήμα ήταν να γεμίσουμε το κανάλι 10G με τη χρήση του DISKSPD. Για να το καταφέρουμε αυτό και να βεβαιώσουμε πως όντως έχουμε τη max χρήση του bandwidth τρέξαμε το command:

Diskspd.exe -b64K -d60 -h -L -o4 -t4 -r -w30 -c50M d:\io.dat

έτσι ώστε 64K με 4 queues και 4 threads να δούμε πόσα είναι τα max IOPS που μπορεί να βγάλει το μέσο μεταφοράς. Και τα αποτελέσματα ήταν τα παρακάτω:

64k-full-nic

64k-full-nic-result

15K Random IOPS ,64Κ size σε latency 1ms με τη χρήση του δικτύου στα 8,4GBit per second. Καθόλου κακό 🙂 Αν είχαμε ανοιχτά και τα Jumbo Frames αυτά τα νούμερα θα ήταν σίγουρα καλύτερα σε ποσοστό 7-9%

Το επόμενο test ήταν να δοκιμάσουμε την τύχη μας για ένα τυπικό φορτίο σε κάποιο VM. Πόσο θα ήταν δηλαδή το performance που θα μπορούσε να πάρει ένα ή δυο virtual machines , χωρίς σοβαρή πίεση στους δίσκους.

Το τεστ έγινε με 8K size ,το οποίο θεωρούμε ως normalized IO, 4 queues και 4 threads και τα αποτελέσματα ήταν πολύ ενδιαφέροντα:

8k-q4-t4

8k-q4-t4-result

33Κ random IOPS ! σε μισό ms με τη χρήση του δικτύου περίπου στα 2,5GBit. Συμπέρασμα : για κάποιο μικρό φορτίο αυτό το storage θα ήταν Overkill.

Και ώρα για το τελικό τεστ: Πόσα είναι τα ΜΑΧ IOPS κάτω από stress! Για αυτό το test τρέξαμε το diskspd με 8K size , με 16 queues και 16 threads.

8k-q16-t16

8k-q16-t16-result

70623 IOPS σε 3.6ms latency με τη χρήση του δικτύου γύρω στα 5GBit!

Και μια εικόνα από το storage !

8k-q16-t16-storage

Ως πρώτα νούμερα χωρίς κανένα optimization είναι εξαιρετικά εντυπωσιακά! Μάλιστα κατά τη διάρκεια του test κάναμε και Rolling Update το firmware για να βεβαιώσουμε πως η υπόσχεση non-disruptive update μπορεί να εκπληρωθεί ακόμη και κάτω από μεγάλο φορτίο 🙂