Im Kurztest: Wrk 4.0.2, Emissary 0.1.1, TC Config 0.7.0, Neetseed 0.1.1, SFBF 1.20.0, Yadt 3.306
Wrk 4.0.2
Benchmarks für Webserver
Quelle: https://github.com/wg/wrk
Lizenz: Apache 2.0
Alternativen: Apache Bench, Curl-loader
Wie es um die Leistungsfähigkeit ihrer Webserver bestellt ist, prüfen Admins mit Wrk. Laut Aussage der Entwickler nutzt das Tool moderne Multicore-Prozessoren optimal aus, da es mit mehreren Threads eine erhebliche Belastung erzeugt. Anwender rufen Wrk zusammen mit der Serveradresse auf. Während der nächsten zehn Sekunden öffnet das Tool in zwei Threads zehn Verbindungen zum Ziel. Zum Schluss erscheint auf der Standardausgabe eine Statistik, die unter anderem Angaben zur durchschnittlichen und maximalen Latenzzeit enthält.
Darüber hinaus ist es möglich, die Tests selbst zu gestalten. Hinter »-c« geben Anwender die Anzahl der maximal offenen Verbindungen vor, mit »-t« legen sie die Anzahl der zu erzeugenden Threads fest, und »-d« definiert die Dauer des Tests. Wrk besitzt einen integrierten Just-in-Time-Compiler für Lua. Anwender können daher über »-s« Lua-Skripte mit zusätzlichen Funktionen oder Tests an das Tool übergeben. Das Quellarchiv enthält bereits eine Reihe von Beispielen, die als Vorlage für eigene Skripte dienen.
Wrk ist ein interessantes Benchmarktool. Damit es einen Webserver richtig fordern kann, sollte es auf leistungsstarker Hardware zum Einsatz kommen. Bonuspunkte gibt es für den integrierten Lua-JIT und die Möglichkeit, eigene Lua-Skripte durchzureichen.
Emissary 0.1.1
Einfacher TCP-Multiplexer
Quelle: https://github.com/darvid/emissary
Lizenz: MIT
Alternativen: Cmux, Node-Port-Mux
Der Multiplexer Emissary leitet mehrere TCP-Dienste über denselben Port. Hinter »-bind« geben Benutzer beim Aufruf die IP-Adresse und den Port an, auf dem das Tool die eingehenden Verbindungen erwartet. Danach definieren sie über »-upstream« eine oder mehrere Regeln, die bestimmen, über welches Startbyte Emissary einen Dienst ansprechen soll. Hinter einem Doppelpunkt folgen die IP-Adresse und der Port des Ziels.
Informationen zum Startbyte finden Benutzer in den RFCs zum jeweiligen Protokoll. So lautet der Request-Befehl für HTTP beispielsweise »GET«, für Socks ist es »x05«. Bei komplexeren Protokollen, die in mehreren RFCs beschrieben sind, empfiehlt sich alternativ der Griff zu einem Analysetool wie Wireshark. Hinweise zum Erzeugen der Upstream-Regeln und zum Ermitteln der Startbytes fehlen in der Dokumentation.
Weitere Parameter beeinflussen das Protokollieren. So schreibt »-logtostderr« die Meldungen in die Standard-Fehlerausgabe. Wer »-alsologtostderr« einsetzt, erhält zusätzlich eine Datei, die »-log_dir« bestimmt. Den Loglevel gibt »-v« vor.
Die Dokumentation ist viel zu knapp gehalten. Ein anderer Schönheitsfehler: Die langen Aufrufparameter folgen nach einem einfachen und nicht nach einem doppelten Bindestrich, wie es gebräuchlich ist.
TC Config 0.7.0
Wrapper für Traffic Control
Quelle: https://github.com/thombashi/tcconfig
Lizenz: MIT
Alternativen: Traffic Control, TCng
Die Toolsammlung vereinfacht den Umgang mit dem Programm Traffic Control (»tc«). Anwender installieren die Python-Werkzeuge am schnellsten über »pip«. Danach stehen die drei Kommandos »tcset«, »tcdel« und »tcshow« bereit. Einstellungen für eine Schnittstelle nehmen Admins mit »tcset« vor.
Um beispielsweise die Latenzzeit in einem Netz zu simulieren, übergeben sie beim Aufruf den Parameter »–delay« gefolgt von einer Zeitangabe in Millisekunden. Die Bandbreite beschneidet »–rate«, und »–lost« simuliert Paketverluste. Die Option »–network« samt Netzmaske schränkt den Datenverkehr auf bestimmte Netzwerke ein. Mit dem Befehl »tcshow« kontrollieren die Benutzer, welche Einstellungen für ein Interface gelten.
Das Tool schreibt seine Ausgaben im Json-Format nach Stdout. In eine Datei umgelenkt können Admins diese beim Neustart von »tcset« mit der Option »-f« wieder einlesen. »tcdel« versetzt alles zurück in den ursprünglichen Zustand. Einzelne »tcset«-Einstellungen können nicht rückgängig gemacht werden. Das sehr ausführliche Handbuch ist im Github-Repository verlinkt.
Die TC-Config-Werkzeuge erleichtern den Umgang mit »tc«. Die Dokumentation ist lesenswert.
Neetseed 0.1.1
Zufallswerte aus dem Netz
Quelle: https://sourceforge.net/projects/netseed
Lizenz: GPLv2
Alternativen: Pollinate
Ob beim Erzeugen von Schlüsseln in der Kryptographie, beim Testen von Software oder bei Monte-Carlo-Simulationen – viele Algorithmen brauchen Zufallszahlen. Linux-Programme bedienen sich dabei gerne der Werte aus »/dev/urandom«. Doch besonders auf leistungsschwacher Hardware kann es dauern, bis »urandom« ausreichend Daten erzeugt hat. Hier will Netseed assistieren.
Das Shellskript sammelt mit Curl Zufallszahlen von den Websites https://www.fourmilab.ch, https://www.random.org undhttps://beacon.nist.gov in einer lokalen Datei und leitet sie an »/dev/urandom« weiter. Vor dem ersten Einsatz machen Benutzer die Datei »netseed.sh« ausführbar.
Es empfiehlt sich zudem, das Skript im Texteditor zu reparieren. So enthält es eine Variable zum Aufrufen des Logger-Dienstes, verwendet diese aber im weiteren Verlauf nicht. Anwender von Debian-basierten Systemen erleben daher eine böse Überraschung und müssen erst debuggen.
Auch der »su«-Aufruf im Skript ist nachlässig umgesetzt, denn der Parameter »–session-command« existiert nicht auf allen Distributionen. Ubuntu- und Debian-Nutzer ändern die Option in »–command«. Als ausführender Benutzer für den »su«-Befehl ist im Skript »privoxy« definiert. Gibt es den Account nicht, müssen Anwender erneut nachbessern.
Während die grundsätzliche Idee des Skripts gefällt, hakt es noch bei der Umsetzung. Offenbar ist Netseed für Red-Hat-basierte Systeme optimiert, Anwender anderer Distributionen müssen nachbessern. Als Vorlage für eine eigene Lösung eignet es sich aber allemal.
SFBF 1.20.0
Große Dateien identifizieren
Quelle: https://sourceforge.net/projects/sfbf
Lizenz: WTFPL
Alternativen: Find, Du
Bei SFBF (Search For Big Files) ist der Name Programm: Das Kommandozeilentool spürt Speicherfresser auf. Das C++-Programm schaut sich ein vom Benutzer vorgegebenes Verzeichnis samt Unterverzeichnissen an, analysiert den Inhalt und schreibt eine Liste der größten Dateien in absteigender Reihenfolge auf die Standardausgabe.
Ohne Parameter aufgerufen durchforstet die Software das aktuelle Verzeichnis. Wer an einer anderen Stelle suchen möchte, gibt den Ort hinter der Option »–path« an. Über »–depth« legen Anwender die Summe der Unterverzeichnisse fest; in der Voreinstellung ist die Suchtiefe nicht begrenzt.
Das Tool zeigt die zehn größten Dateien auf der Standardausgabe an, sofern Benutzer nicht über »–max« eine andere Anzahl definieren. Mit »–pattern« bestimmen sie ein Suchmuster für den Dateinamen. Reguläre Ausdrücke sind erlaubt. Wer eine lesbare Größenangabe wünscht, kann zusätzlich »–human« einsetzen, und SFBF schreibt die Maßeinheiten dazu.
Auch beim Präsentieren gibt sich das Tool flexibel. Der Parameter »–stats« etwa sorgt dafür, dass am Ende der Ausgabe eine kurze Zusammenfassung steht. Das Tool schreibt seine Ergebnisse gewöhnlich ins Terminal, kann sie aber auch als Text-, Json-, XML- oder HTML-Datei abspeichern. Dazu definieren Nutzer hinter »–format« die gewünschte Methode.
Volle Punktzahl für dieses praktische Tool. SFBF arbeitet schnell und performant und eignet sich dank der unterschiedlichen Ausgabeformate auch für den Einsatz in eigenen Skripten.
Yadt 3.306
Yet Another Diff Tool
Quelle: https://sourceforge.net/projects/diff-yadt
Lizenz: GPLv2
Alternativen: Kompare, Meld, Diffmerge
Mit dem Tcl/Tk-Programm Yadt reiht sich ein weiteres Werkzeug in die Liste von Diff-GUIs ein, das bis zu drei Textdateien miteinander vergleichen kann. In der Voreinstellung präsentiert das Fenster die Dateien nebeneinander. Es ist aber auch möglich, es horizontal zu unterteilen, um die Inhalte untereinander aufzulisten.
Um die Größe der Dateien einander anzugleichen, fügt Yadt bei Bedarf Leerzeilen ein und hinterlegt diese rot. Alternativ besteht die Möglichkeit, alle Leerzeilen auszublenden. Unterschiede hebt das Programm farblich hervor, es bietet auch eine Detailansicht für die einzelnen Zeilen an. Am unteren Fensterrand öffnet sich dann ein eigener Bereich. Anwender navigieren bequem mit den Pfeiltasten durch die Änderungen, die Yadt durchnummeriert. Das Diff-GUI kann auch zwei Dateien zusammenführen.
Damit Anwender das Look & Feel nicht bei jedem Start neu einrichten müssen, tragen sie ihre Vorlieben in den Konfigurationsdialog ein. Hier legen sie fest, ob das Fenster beim Start vertikal oder horizontal aufgeteilt ist und ob das Programm die Zeilennummern hervorhebt. In den erweiterten Einstellungen passen Nutzer die Zeilenbegrenzungen an und richten ein Backup vor dem Zusammenführen der Inhalte ein. Die vereinten Dateien speichert Yadt optional im CSV-Format, was sich gut für das Weiterverwenden in einer Versionskontrolle eignet.
Am Funktionsumfang des Tcl/Tk-Programms ist nichts auszusetzen. Lediglich der Look des etwas angestaubten Tk-Widgets ist gewöhnungsbedürftig.











