SSD Read/Write Performance Probleme

  • Hallo,


    kann mir jemand die geringeren Lese/Schreibraten bei den kleinere Blocksizes des "größeren" Server erklären?


    Natürlich ähnliche Unterschiede auch bei wiederholten Messungen.


    VPS Eggcellent (16vCPu 2,3TB SSD) vs RS Fast Rabbit (12 dedicated, 2TB SSD)


    (Bei größeren Blocksizes ist es wieder andersherum)


    https://github.com/masonr/yet-another-bench-script

  • Nur eine Vermutung

    Meines Wissens arbeitet "fio" auch mit mehreren Threads bzw. mit mehreren vCors. Von daher kann ich mir nur vorstellen, dass es an der Anzahl der Threads bzw. der vCores liegen wird.


    VPS = 16 Threads (vCores)

    RS = 12 Threads (vCores oder auch tatsächlich dedizierte Kerne eventuell auch sogar angepinnt)


    Was tatsächlich an den einzelnen virtuellen Maschinen weitergereicht wird, kann dir aber nur Netcup mitteilen. Denn auf deren Webseite steht für VPS = "vCore" und für RS = "dedizierte Kerne".


    Eventuell liegt es aber auch nur an dem jeweils ausgewählten Adapter (VIRTIO oder SCSI) der jeweiligen VM.

  • Der Adapter ist jeweils derselbe mit VIRTIO, dasselbe Problem sehe ich auch im sequentiellen Lesen/Schreiben in sysbench. (Warum auch immer Virtio, aber der war iwie voreingestellt, normalerweise habe ich immer scsi hab nur bisher bei den beiden servern nichtd rauf geguckt).


    Bei größeren Blöcken im obigen Benchscript mit fio ist ja auch der RS Server besser. Aber das sind halt Abweichungungen im Schnitt um den Faktor 2 bei sysbech sogar faktor 9-10


    Und ja ganz selten habe ich mal Peaks beim RS die vergleichbar sind mit dem VPS. Kann es sein dass die Platte einfach von Nachbarn merkbar intensiver belagert wird?

  • Hab mal testweise auf scsi gewechselt. Hab nichtmals mehr ganz die Hälfte an Durchsatz.... ;)


    Ansonsten habe ich mir mal die fio Prozesse in top angeguckt. Maximal 3 mit jeweils <15% Auslastung


    Die 4k Blockgrößen Geschwinigkeiten sinken halt mit VIRTIO bis unter 50 MB/s wo sie beim Eggcellent niemals auch nur unter 110 kommen. Und das durchgehend seit ca. 4h :|

  • Eventuell ist das Script, welches du verwendest, fehlerhaft.

    Probiere es mal mit folgendem Befehl auf beiden VM´s:

    Code
    fio --rw=readwrite --name=test --size=50M --direct=1 --bs=512K --numjobs=1 --ioengine=libaio --iodepth=32 --refill_buffers --group_reporting
  • Trimilur, deine Messungen mit dem Script sehen eher so aus als würde es den Durchsatz vom RAM der jeweiligen VM messen, aber nicht den tatsächlichen Durchsatz deiner virtuellen Platte.


    Wenn du den Einzeiler mal mit copy and past in deiner Shell reinwerfen würdest, würdest du mit Sicherheit sehr schnell überrascht sein, wie doch sehr klein der Durchsatz deiner virtuellen Festplatte gegenüber dem Ergebnis des Scripts sein wird. Denn dieser Einzeiler verhindert während der Messung die Nutzung von RAM und Cache.


    Der Einzeiler generiert nur zum Anfang jeder Messung neue Zufallszahlen und legt diese im Cache zwecks Schreibvorgang auf der virtuellen Platte ab. Und bevor es von der virtuellen Platte liest, wird zuerst der Inhalt des Cache gelöscht. So dass dann tatsächlich nur noch von der virtuellen Platte gelesen werden kann.