Puffergröße für I/O ermitteln

Wenn man Daten in eine Datei schreibt tut man dies am besten gepuffert den sonst wird im ungünstigsten Fall für jedes geschriebene byte eine Schreiboperation ausgelöst. Im Puffer werden bytes die in eine Datei geschrieben werden sollen gesammelt und dann in Summe auf die Festplatte geschrieben. Doch auch die Puffergröße hat noch einmal erheblichen Einfluss auf die Schreibperformance der Applikation. Um den optimalen Wert zu ermitteln gibt er hier ein kleines Java Programm das einen Benchmark durchführt um die optimale Puffergröße zu ermitteln.

Continue reading →

HTTP(s) Client Performance von PHP, Go und Java

Möchte man einen Backend Service oder ein Programm schreiben das Inhalte von einer Webseite abruft oder mit einer Webschnittstelle kommuniziert ist häufig die Performance ein wichtiges Kriterium. Den hier werden meist nicht ein, zwei oder drei HTTP(s) Aufrufe abgearbeitet sondern viele hundert oder tausend. So multiplizieren sich einige hundertstel Millisekunden Unterschied bei der Request Abwicklung schnell zu Sekunden oder Minuten.

Um diese Unterschiede zu ermitteln führe ich im folgenden einen Performance Test durch bei dem über eine HTTPS Verbindung eine Webseite n-Mal aufgerufen wird und der entsprechende Client diese auf der Standardausgabe ausgibt.

Continue reading →

Dateisysteme im Performancetest

ext2, ext3, ext4, btrfs, jfs, xfs, hfs+ oder doch lieber ntfs. Unter unixoiden Betriebsystem hat man bei der Auswahl des Dateisystem schnell die Qual der Wahl. Im Internet findet man gefühlt unendliche viele Tests und Diskussionen sowie Empfehlungen. Letztendlich ist die Antwort auf die Frage: “Welches Dateisystem soll ich den jetzt nehmen ?” Häufig: “Das kommt darauf an was du damit machen willst.”

Stimmt! Dem kann ich nur zustimmen. Deswegen soll dieser Test auch keiner unter Laborbedingungen sein in dem jedes Dateisystem optimal konfiguriert und auf seine Umgebung abgestimmt wurde um möglichst aussagekräftige und vergleichbare Werte zu schaffen. Er soll nur Zahlenmaterial für einen bestimmten Fall schaffen, dass dann frei interpretiert werden kann.

Continue reading →