Der arme MySQL-Server

Wenn die Technik läuft, denn läuft sie mit einer Selbstverständlichkeit, an die man sich allzuschnell gewöhnt. Dabei gerät leicht in Vergessenheit, was da alles so still und dienstbar im Hintergrund läuft.

Auf diesem Server laufen diverse Projekte – es sind so viele, dass »humpeln« manchmal ein besseres Wort als »laufen« wäre, wenn einmal eine etwas größere Last auftritt. Praktisch alle diese Projekte (mit Ausnahme meiner veröffentlichten Alben) benutzen im Hintergrund eine MySQL-Datenbank für die Datenhaltung, und diese steht unter einer permanenten Beanspruchung, bei der man sich nur noch wundern kann, dass es überhaupt funktioniert.

Ich habe den MySQL-Server das letzte Mal am 29. November 2009 um 0.24 Uhr neu gestartet. Seitdem hat der MySQL-Server 234 MiB Daten von diversen hier laufenden Anwendungen empfangen und 2.879 MiB Daten zurückgeliefert. Allein das macht in der Stunde ein Datentransfervolumen von 715 KiB aus. Als Spitzenwert in den letzten sechs Monaten haben einmal 42 gleichzeitige Verbindungen zum MySQL-Server bestanden. Bei solchen Lastspitzen ist es gar kein Wunder, dass manchmal die Dinge ein bisschen länger brauchen. Insgesamt hat der MySQL-Server in dieser Zeit 3.404.918.212 Datenbankabfragen behandelt, das sind im Durchschitt ungefähr 212 Abfragen pro Sekunde oder – vielleicht etwas anschaulicher – 12.720 Abfragen pro Minute. Natürlich verteilt sich dieser Aufwand nicht gleichmäßig über die gesamte Laufzeit, sondern tendiert dazu, in Spitzen sehr verstärkt aufzutreten. Dass bei dieser Last ca. drei Mal pro Stunde ein Verbindungsaufbau zum MySQL-Server scheitert, wirkt zwar verzeihlich, ist aber ein Problem, dass ich in den nächsten Wochen in Angriff nehmen muss. Aus Nutzersicht ist das nur eine unverständliche Fehlermeldung.

Mit den insgesamt 3.506 Queries, die länger als 30 Sekunden für ihre Verarbeitung brauchten, kann ich jedoch leben, denn ich weiß recht genau, dass beinahe alle diese Datenbankabfragen von einem von mir privat genutzten RSS-Aggregator ausgehen, der für mich mit meinen ständig wechselnden Arbeitsplätzen trotz gewisser Schwächen unentbehrlich ist.

Aber bei mir überwiegt – trotz aller meiner Erfahrung – immer noch das leicht ungläubige Staunen, dass das alles größtenteils problemlos läuft. Dieses Staunen wird umso größer, als dass ich nur freie Software im Einsatz habe, die in einer Kultur des freien Gebens und Nehmens erstellt wurde, und sich dennoch als sehr leistungsfähig erweist. So oft ich auch über gewisse Tücken der Software abjauche, alles in allem bin ich einfach nur den vielen Menschen dankbar, die ihre kleineren oder größeren Beiträge dazu geben, dass derartig gute Software für alle Menschen zur freien Verfügung steht. Ich könnte gar nicht mehr ohne leben, und das gilt nicht nur für diesen Server, sondern auch für meine diversen Arbeitsplatzrechner, die ebenfalls vollständig mit freier Software laufen.

Veröffentlicht unter Technisches | Verschlagwortet mit , , | Kommentar hinterlassen

Redesign Hannover

Das bloggende Hannover war doch eine gewisse Altlast unter meinen Projekten. Es lief im Kern mit einer sehr alten WordPress-Version, die ich schon mit einigen Änderungen gegen die darin steckenden Sicherheitsprobleme stärken musste. Diese Altlast hat sich zunehmend als Problem erwiesen, wenn es darum ging, weitere Funktionen in diesen Aggregator für hannöversche Blogs zu integrieren.

Jetzt habe ich es gewagt und das bloggende Hannover auf den aktuellen Stand gebracht. Das ging keineswegs ohne Probleme, der Vorgang hat sich ca. zwei Stunden hingezogen. In dieser Zeit haben eventuelle Leser immer wieder fröhliche Fehlermeldungen gesehen. Vielleicht hat dabei auch der eine oder andere einen Einblick darin bekommen, warum man laufenden Code zu einem gewachsenen Projekt besser nicht ohne Not anfassen sollte – es macht nur Ärger.

Augenfälligste Änderung aus der Sicht eines Leser ist – neben dem frischen Farbschema – das integrierte und im Design auf die Website abgestimmte bbPress-Forum. Ich bin regelrecht gespannt, ob dieses Forum angenommen wird, denn es hat – wie jede Installation eines »integrierten« bbPress – viel Mühe gekostet, um es zum Laufen zu bringen.

Aber vermutlich werde ich jetzt erstmal hören und lesen, dass das Design nicht gefällt…

Veröffentlicht unter Technisches | Verschlagwortet mit , , , , | Kommentar hinterlassen

WP-Plugin: Don’t like Facebook

Nachdem alle möglichen Leute diesen »Like-It-Button« von Facebook in ihre Websites integriert haben, habe ich meinen Standpunkt zu diesem Unsinn in ein WordPress-Plugin verpackt. Dieses Plugin ist recht einfach. Es hängt an die Posts und Seiten einen Button an, der einen Link auf eine Aufklärungstext über die größtenteils wenig erquicklichen Machenschaften Facebooks enthält. Sowohl der Text als auch der eingebettete Button sind leicht austauschbar und damit an spezielle Bedürfnisse anzupassen.

Download-Link: WordPress-Plugin »Don’t like Facebook«

Installation

Das ZIP-Archiv entpackt sich in ein Verzeichnis Dontlike, welches zwei Verzeichnisse enthält. Das Verzeichnis dontlike kann direkt in das Plugin-Verzeichnis wp-content/plugins hochgeladen werden, anschließend kann das Plugin wie gewohnt aktiviert werden.

Nachtrag / Kleine Zusatzanpassung

Wer den Button nur bei der Ansicht eines Einzelbeitrages einblenden möchte, tausche einfach die Datei dontlike.php gegen die schnell angepasste Version der Datei dontlike.php aus. Ja, ich weiß, das ist ein ganz schneller Hack und so etwas gehört auf eine Optionsseite, aber für lediglich eine Option ist eine Optionsseite doch etwas übertrieben…

Diese angepasste Version (dank an tux für den Hinweis!) läuft jetzt auch hier.

Anpassung

Die Dateien button.png und title.gif können beliebig ausgetauscht werden, die Informationsseite ist reines HTML und kann ebenfalls leicht angepasst werden oder neu erstellt werden, wenn der Inhalt gar nicht gefällt. Damit eine Anpassung der Titelgrafik leicht wird, befindet sich im Ordner Daten meine Projektdatei für GIMP. Alle Dateien sind unter Piratenlizenz lizenziert, so dass sie beliebig bearbeitet werden können, so lange man mich dafür nicht verklagt. 😉

Wer die Namen der Dateien nicht mag und ein bisschen PHP lesen kann, findet im kommentierten Code des Plugins eine bequeme Möglichkeit, andere Dateinamen für den Button und die dargestellte Seite zu vergeben.

Veröffentlicht unter Download | Verschlagwortet mit , , | 13 Kommentare

Schrei Ende Leere

Vorabveröffentlichung von Schrei Ende Leere, zusammen mit einer Fotostrecke des Ihmezentrums | YouTube-Direktlink

Veröffentlicht unter Musik | Verschlagwortet mit , , | Kommentar hinterlassen

GMAMEUI zum Laufen bringen

Wer Linux benutzt, muss keineswegs auf Spiele verzichten, es gibt schließlich XMAME, den universellen Emulator für Arcade-Spiele unter Linux und seine zahlreichen Ableger.

Allerdings ist xmame ein Programm für die Kommandozeile, und das ist für viele Menschen ein erhebliches Hindernis. Zum Glück gibt es das GMAMEUI-Projekt, das eine hübsche graphische Oberfläche für den Start der MAME-Spiele zur Verfügung stellt:

So sieht diese Oberfläche aus

Leider muss ein deutschsprachiger Linux-Anwender zurzeit feststellen, dass GMAMEUI auf rätselhafte Weise seinen Dienst versagt. Große Teile des Programmes funktionieren reibungslos, es ist möglich, eine Liste der Spiele zu erzeugen, aber ausgerechnet der Start eines Spieles schlägt fehl, ohne dass auch nur eine Fehlermeldung ausgegeben wird. Und dabei hat man sich das Programm doch installiert, um Spiele starten zu können.

Ich habe mich mal darangesetzt, diesen Fehler zu analysieren und einen sehr einfachen Weg gefunden, wie GMAMEUI dazu gebracht werden kann, Spiele zu starten.

Ursache des Fehlers

Zunächst zur Ursache des rätselhaften Fehlers. GMAMEUI ist nicht etwa MAME mit einer Oberfläche dazu, sondern »nur« eine grafische Oberfläche, die dann das Kommandozeilenprogramm xmame aufruft. Dabei werden die zusammengeklickten (und gespeicherten) Einstellungen für das jeweilige Spiel in einer langen Kommandozeile übergeben.

Diese Trennung steht übrigens in bester Unix-Tradition, und sie ermöglicht es auch, den Fehler zu beheben, ohne etwas an GMAMEUI zu verändern.

In der erzeugten Kommandozeile steckt ein Fehler, wenn GMAMEUI zusammen mit deutschen Spracheinstellungen verwendet wird.

Für einige Werte, etwa die Helligkeitskorrektur, werden Zahlen mit Dezimalstellen übergeben. GMAMEUI formatiert diese Zahlen beim Zusammenstellen der Kommandozeile nach den im deutschen Sprachraum üblichen Konventionen und verwendet ein Komma als Dezimaltrenner, aber xmame muss diese Zahlen mit einem Punkt als Dezimaltrenner erhalten. In vielen Sprachräumen wird dieses Problem nicht auftreten, und deshalb ist der Fehler in GMAMEUI wohl auch noch nicht behoben worden.

Lösung

Es ist möglich, in GMAMEUI anzugeben, an welcher Stelle die ausführbare Datei xmame im Dateisystem liegt. Diese Einstellmöglichkeit findet sich unter Optionen/Verzeichnisse im Menü. Normalerweise liegt das Binary unter /usr/games/xmame.

Um das Problem zu beheben, schreibe man einfach ein kleines Shellskript mit dem Namen mame-wrap (oder einem beliebigen anderen) und dem folgenden Inhalt:

filtered=`echo $@ | sed 's/\,/\./g'`
/usr/games/xmame $filtered

Natürlich muss der Aufruf von /usr/games/xmame an die verwendete Installation angepasst werden, an der Kommandozeile kann man mit which xmame herausbekommen, wo das xmame-Binary liegt.

Dieses Shellskript speichern und die Dateirechte mit der Shell oder dem Dateimanager der eigenen Wahl so setzen, dass es auch ausgeführt werden kann.

Das war der schwierige Teil. Dieses Skript ersetzt in den Optionen einfach Kommas durch Punkte, und da nur für die Zahlen Kommas verwendet werden, korrigiert es die falsche Kommandozeile, die von GMAMEUI erzeugt wird. Wer keine Lust hat, das Shellskript selbst zu erstellen, kann gern meine Version verwenden oder an seine Linux-Installation anpassen.

Nun muss dieses Shellskript in GMAMEUI unter »Optionen/Verzeichnisse« als »von MAME ausführbare Datei« eingetragen werden, was nur ein bisschen Klicken erfordert. Wenn schon eine Spielliste erstellt wurde, ist eine Neuerzeugung der Liste nicht erforderlich, deshalb die Frage nach der Änderung der Einstellung verneinen, wenn schon eine Liste vorhanden ist.

Have fun!

Das war alles. Nun stehen die MAME-Spiele in einer leicht zu bedienenden graphischen Oberfläche zur Verfügung.

Übrigens: Ist es nicht schön, wie einfach man sich unter Linux mit kleinen Skripten um ärgerliche Schwächen großer Programme herumarbeiten kann? 😉

Veröffentlicht unter Allgemeines | Verschlagwortet mit , , , , , | 1 Kommentar