Altes Arschloch Kompromiss

Entwicklung der Besuchszahlen Meerschweinchen Ratgeber 2008-2010
Entwicklung der Besuchszahlen Meerschweinchen Ratgeber 2008-2010

Unlängst habe ich mich mit der technischen Übernahme vom Carbon Fighter Forum wieder mit dem phpbb beschäftigen dürfen. Jetzt bin ich dabei den Meerschweinchen Ratgeber auf einen aktuellen visuellen wie technischen Stand zu setzen, insbesondere was mein CMS angeht, denn die dort installierte Version ist jetzt schon über vier Jahre alt – Kinder wie die Zeit vergeht. Unbemerkt hat die Meerschweinchen Seite die Besuchszahlen vom Drachenforum überschritten, doch liegt sie noch immer auf einem kleineren Server. Die Besuchszahlen spiegeln sich neben ~200GB Traffic im Monat, auch hier ist mal Einsatz gefragt, in der Datenbank wieder. Auch mit scharfer Moderation, dem Verbot von Forenspielen und einem nur eingeschränkten Off-Topic Bereich sind wir hier jetzt bei über 500MB nur für die Datenbank – ein Datenmessi schmeißt ja nichts weg.

Was tun? Meine eigene Forensoftware, wo natürlich ALLES besser ist, lässt leider noch immer auf sich warten. Sowohl das phpbb, als auch das pforum (und dies noch viel schlimmer) im Drachenforum sind nicht gerade genügsam, und so rennt der Meerschweinchen Ratgeber im Moment ein ums andere mal wieder in unangenehme Lastspitzen. Noch nicht äußerst dramatisch, aber das könnte es in Kürze mal wieder werden. Seit Launch im August 2005 wurde ja bereits dreimal aufgestock. Und Datenaufkommen ist Datenaufkommen. Das phpbb ist eigentlich bereits hinreichend normalisiert. Also wieder dickerer Server? Irgendwann muss ja auch mal gut sein.

Jetzt kann ich meine Pedanterie voll ausleben, und die beginnt bei CSS. Alles wird optimiert! Jedes unnütze Komma weg, auskommentierte Bereiche in Javascript Code, CSS Dateien und HTML für die Ausgabe weggestempelt, und vielleicht noch mal das Layout komprimieren, Grafiken in die Schraubzwinge. Bei Dr Web gab es unlängst ja auch einen Artikel zum Thema CSS komprimieren. Doch auch hier gibt es einen Zwiespalt. Beispiel: Um meine CSS Dateien zu komprimieren und die header Anfragen zu beschränken lade ich nicht mehr die entsprechenden CSS Dateien direkt, sondern in kürze über ein paar Zeilen PHP-Code, vereinfacht dargestellt:

<?PHP
$scripts = array(’screen.css‘,
                 ‚layout.css‘,
                 ‚core.css‘,
                 ‚menu.css‘
                );

ob_start („ob_gzhandler“);
header („content-type: text/css; charset: UTF-8“);
header („cache-control: must-revalidate“);
$offset = 60 * 60;
$expire = „expires: “ . gmdate („D, d M Y H:i:s“, time() + $offset) . “ GMT“;
header ($expire);

function clamp($buffer) {
    $buffer = preg_replace(‚!/\*[^*]*\*+([^/][^*]*\*+)*/!‘, “, $buffer);
    $buffer = str_replace(array(„\r\n“, „\r“, „\n“, „\t“, ‚  ‚, ‚    ‚, ‚    ‚), “, $buffer);
    $buffer = str_replace(‚;}‘, ‚}‘, $buffer);
    return $buffer;
  }

for($i=0;$i<count($scripts);$i++){
 if(is_file($scripts[$i])){
  $file = implode (“, file ($scripts[$i]));
  echo clamp($file);
 }
}

ob_end_flush();

Das ist schonmal ganz nett! Damit werden unnütze Zeichen entfernt, Kommentare aussortiert, und die ganze Chose dann auch noch komprimiert übermittelt. Für Javascript Code habe ich ebenfalls eine solche Meta-Datei erstellt. Vorteil: Der Traffic sinkt. Nachteil: Die Last steigt. Zudem müsste ich eine Möglichkeit finden, die nur sporadisch benötigten libraries eben auch nur sporadisch nachzuladen. Es macht wohl wenig Sinn 20kb pro Aufruf zu sparen, und durch ungeschicktes Design 70kb dafür immer mitzuladen zu müssen, obwohl dies bei einem index von ~70.000 Seiten nur auf 100 benötigt wird. Nun ist die Information über die Notwendigkeit einer weiteren Javascript oder CSS Datei aber in der Datenbank hinterlegt – wo sonst. Möchte ich das über meine Meta-Datei lösen, muss diese wieder separat eine Datenbankverbindung aufbauen. Damit ist auch nichts gewonnen.

Die Summe aller Laster bleibt immer konstant

Auf die Dauer hilft vermutlich eben doch nur Power -und das alte Arschloch Kompromiss. Also alles was nötig ist direkt über den wrapper, und alles, was noch nachkommt, dynamisch darüber. Damit steigen zwar die header Anfragen wieder, aber irgendwann will ich auch mal wieder schlafen.

2 Antworten auf „Altes Arschloch Kompromiss“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert