Datendurchsatz ermitteln

  • Lass doch einfach per Script eine größere Datei erzeugen (idealerweise >500MB) oder mehrere kleine Dateien und berechne den Datendurchsatz ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Eine schnelle Quick & Dirty Lösung in PHP:
    [PHP]#!/usr/bin/php
    <?php


    // HDD Durchsatz ermitteln
    // http://forum.netcup.de/showthread.php?t=1543


    // Temporäre Datei
    $tmp = '/tmp/hdd_avg_'.md5('!"§$%&/()=?'.microtime());
    $handle = fopen($tmp, 'w+');
    if(!is_resource($handle))
    {
    trigger_error('Can\'t open tmp file', E_USER_ERROR);
    }


    // Wie groß soll die Datei sein?
    $size = 1024 * 1024 * 1024;


    // Startzeit speichern
    $start = microtime(true);


    // Schreibdurchsatz
    $new_size = $i = 0;
    while(true)
    {
    fwrite($handle, str_repeat(md5(rand()), 32));
    $i += 1024;

    if($i >= $size)
    {
    $new_size = $i;
    break;
    }
    }


    $time = microtime(true) - $start;
    $avg = $new_size / $time;
    echo "Write: " . number_format($avg / 1024 / 1024, 1, ',', '.') . " MB/s\n";


    // Startzeit speichern
    $start = microtime(true);


    // Dateizeiger zurücksetzen
    fseek($handle, 0);


    // Lesedurchsatz
    while(!feof($handle))
    {
    fread($handle, 1024);
    }


    $time = microtime(true) - $start;
    $avg = $new_size / $time;
    echo "Read: " . number_format($avg / 1024 / 1024, 1, ',', '.') . " MB/s\n";


    // Datei wieder löschen
    fclose($handle);
    unlink($tmp);


    ?>[/PHP]
    Wie genau die ist, ist eine andere Frage :D



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Eine Transferratenmessung per hdparm wird dir keine brauchbaren Informationen über die Geschwindigkeit (d)eines v-Servers geben. Wenn du unbedingt benchmarken willst, analysiere die Ausführungsgeschwindigkeit des Programms, das du später auch nutzen willst.


    Jedes Programm erzeugt eine ganz eigene io- und Cpu-Last. Das hat mit "ich lese 300MB Daten in einem Stück von der Platte" (hdparm) nicht viel zu tun. (Und man kann ohne Probleme einen Server bauen der traumhafte Werte unter hdparm hat, aber in realen Szenarien unter Last sofort zusammenbricht.)

  • Hab gerade bemerkt, das ich Aufgrund des Problems, was ich analysieren möchte, hier wohl im falschen Forum bin.
    Auf einen COD4 Gameserver kommt es immer wieder zu laggs, die ich allerdings per ps oder htop nicht nachvollziehen kann.
    Habe allerdings mal gehört, das es auch an der hdd Performance liegen kann.

  • Hohe Festplattenauslastung* kannst du in htop an einem hohen io-wait-Wert (wa) erkennen. Ab wann dieser Wert jedoch zu hoch für dein COD4 ist kann ich dir nicht sagen. Da gibt es hier andere Spezialisten für Gameserver.


    Generell kannst du aber erstmal schauen, ob die Lags zeitlich mit mit dem io-Wait zusammenhängen.


    *) io-Wait ist generell das Warten auf Daten, die Festplatte ist nur ein Grund dafür, aber meistens der ausschlaggebende.