Archiv der Kategorie: Software

Alles was mit Software zu tun hat

Mit MySQL an die Leistungsgrenze

Datenbanken sollen große Datenmengen möglichst performant verwalten – so wie die Theorie. Wie das ganze in der Praxis aussieht wollte ich einfach mal testen. Da das ganze noch einen kleinen Sinn ergeben soll gabs folgende Testaufgabe:

Alle Zeichenkombinationen (a-z,A-Z,0-9,paar ausgewählte Sonderzeichen) als Klartext und deren MD5-Hash in die DB speichern.

Dazu erst mal folgende Hardware aus der Gerümpelkiste geholt:

  • P4 @ 1,6 GHz
  • 512MB SD 133
  • 3x40GB IDE HDD @ 7200 im RAID 0

Als OS einfach nur das aktuelle Knoppix gekrallt, MySQL 5 und PHP 5.2.0.8 erledigen den Rest. Die Strings werden durch ein kleines PHP-Script generiert und per mysqli an die DB gesendet. Auf diesem Weg konnte ich im ersten Test über 60Mio Strings erzeugen. Inzwischen habe ich nach einem weiteren ~12h-Testlauf folgende Werte:

  • Anzahl Einträge lt. phpMyAdmin: 6.678.400
  • Größe laut pma: ~100MB

Das scheint aber nich ganz zu stimmen, denn:

  • Größe des MySQL-Verzeichnis: 718MB
  • Hashes weiter hinten in meiner String-Liste werden als Duplicate gemeldet, tauchen mit SELECT aber nicht auf

Ich schätze mal, dass der Rest noch in irgendeinem Cache verschwunden ist – so groß sollten die Indezes normal nicht sein. Momentan läuft ein Cache-Flush und danach Repair/Optimize. Mal schaun, was morgen rauskommt. Hier noch ein paar Beobachtungen:

  • In den ersten Sekunden wurden fast 2000 Hashes pro Sekunde gespeichert
  • Nach ca .20 Sek war der Puffer wohl voll und die Performance ging in den Keller
  • Limitierender Faktor war nicht wie vermutet die CPU sonden (wie es auf den ersten Blick aussieht) die Festplatten – trotz RAID0. DMA ist zwar an, dennoch hängt MySQL mit ziemlich viel IO-Wait rum

In nächster Zeit werde ich so mal testen welche Zugriffsoptionen, Dateisysteme, Hardwarekombinationen, … sich am besten für große Datenbanken eignen.

[Update]

Momentan läuft das ganze mal mit einer CSV als Ausgabeort – Ergebns nach einer Stunde:

  • Hashes berechnet: 86.697.973
  • Dateigröße: 3GB
  • Hashes / Sekunde: ~ 24.000

Und wieder die Killerspiele – oder warum Pong ein Gewaltspiel ist

Vor einer Woche war es so weit: Die Bayen haben den Antrag für das „Killerspielgesetz“ eingereicht. Was sol alles drin steht ist doch etwas seltsam – so muss man bis zu 500.000EUR strafe Zahlen, wenn man einen 15-jährigen Pong spielen lässt.

Da mir langsam die Lust vergeht mich zu wiederholen kopiere ich mal ganz dreist eine kleine Zusammenfassung aus dem Blogeintrag von Jan Schejbal – wer meine komplette Meinung zum Thema lesen will kann das im vorherigen Artikel tun.

[…]

  • Alle auch nur im Ansatz gewalttätigen Spiele werden komplett verboten, unter anderem auch Strategiespiele wie Age of Empires (es sei denn, man sieht es nicht als unmenschlich an, Menschen mit griechischem Feuer bzw. Feuerkatapulten zu verbrennen).
  • Dadurch wird die ohnehin nur spärliche Spieleindustrie in Deutschland nahezu zerstört, so z. B. auch die Vorzeigefirma CryTek (FarCry-Macher), außerdem gehen Steuereinnahmen durch Spieleverkäufe verloren und die Wirtschaft wird geschädigt.
  • Die Verfügbarkeit betroffener Spiele wird auch für Erwachsene stark reduziert, d. h. von Jugendschutz kann nicht mehr die Rede sein.

[…]

  • Medien, die bisher geprüft worden wären, sind z. T. automatisch indiziert
  • Die freiwillige Selbstkontrolle (FSK) wird den Obersten Landesjugendschutzbehörden unterstellt, somit wird quasi eine Zensurbehörde geschaffen und die FSK zu einer Marionette
  • Um Medien zu indizieren, ist nicht mehr eine 2/3-Mehrheit bei der BPjM nötig, eine einfache Mehrheit reicht
  • Die Grenzen für eine spätere Indizierung eines schon geprüften Spiels werden extrem gesenkt, Willkür und Missbrauch werden Tür und Tor geöffnet
  • Spiele, bei denen Verbrechen nicht bestraft werden, werden indiziert (Eine Indizierung von Spielen, die Verbrechen belohnen, wäre noch zumindest nachvollziehbar, aber dies ist realitätsfremd!)
  • Ein großer Teil nicht sonderlich gewalttätiger Spiele dürfte indiziert werden

[…]

NFS – Nicht funktionierendes System

Der Rechner streikt, das System muss neu. So geschehen mit dem Rechner meiner Eltern. Windows nicht zur Hand, also schnell ein Linux drauf. Meine Wahl fiel auf Ubuntu, da Debian (darauf baut Ubuntu auf) recht Wartungsfreundlich ist. Die Installation wie bei allen Desktop-Distris recht einfach, auch Drucker, Scanner, Sound und LAN klappte beim ersten Versuch. Dann meine Spezialanwendung: Die Homes per NFS auf meinem Server speichern – auf einem RAID-System gehn Dateien nunmal nicht so schnell verloren. NFS-Paket ge“apt-get“tet, eingetragen – passt. Noch ein paar Tools installiert, getestet, alles OK. So weit der gestrige Tag.

Heute komme ich nach Hause und was muss ich hören? „Es klappt nix mehr“. Nunja, ein gecrashter Firefox ist ja leider keine Seltenheit. Lock-Files manuell gelöscht und es lief wieder – naja, fast. Irgendwie schmeißt mir Ubuntu beim Firefo-Start einen Core-Dump entgegen. Auslöser: NFS

Momentan läuft memtest, wenns daran nicht liegt werd ich mir wohl mal den Kernel vornehmen – der wurde wies scheint nach meinen Tests noch aktualisiert. Trotzdem: Bei einer Desktop-Distri sollte das nicht passieren…

Es war einmal … ein Bundestrojaner

Der Anti-Terror-Wahn zieht neue Kreise: Der Bundesgerichtshof (BGH) entscheidet heute, ob die Polizei Computer heimlich online durchsuchen darf. Für den Fall, dass von den BGH-Richtern die Zulässigkeit verneint wird, haben Koalitionspolitiker bereits angekündigt, den Richterspruch zu ignorieren und eine gesetzliche Regelung zu schaffen, diese Maßnahme als normale polizeiliche Ermittungsmethode zuzulassen. Die Behörden können mit Hilfe eines entsprechenden so genannten „Bundes-Trojaners“ den heimischen Computer sogar komplett fernsteuern: Webcam einschalten, akustische Raumüberwachung per Mikrofon, Abhören von Internet-Telefonaten, Mitlesen von Chat und Email, Live-Übertragung von Webseitenabrufen. Besonders kritisch wird die Lage, wenn die Betriebssystem- und Softwarehersteller sich vom Staat erpressen lassen und Updates für Sicherheitslücken, die für einen Bundes-Trojaner geeignet sind, absichtlich verzögern oder sogar spezielle Hinterüren für die Behörden vorsehen.

———-U P D A T E————————-

Heimliche Online-Durchsuchungen durch die Polizei sind unzulässig. Dies entschied am heutigen Montag der Bundesgerichtshof (BGH) in Karlsruhe (StB 18/06).

2:0 für die Vernunft

Coder ärger dich nicht

Ich denke mal jeder kennt das Spiel „Mensch ärger dich nicht“. Vor ein paar Jahren hatte ich das mal (angefangen) in PHP nach zu bauen – ohne jegliche Grafik o.Ä. Heute ist dieser Codebrocken wieder aufgetaucht und ich hab das ganze einfach mal hoch geladen. Spielen kann man – nur gewinnen klappt nicht so ganz.

Wer will kann sich mal hier versuchen…

Auf Kriegsfuß mit MySQL

So, nachdem ich ja schon mein Windowmanager und HTTP-Server ihren Dienst mehr oder weniger Verweigert haben ist jetzt die Datenbank an der Reihe. Erst zerlegt sich der Datenbankserver auf meinem Mediacenter und zwingt mich irgendwelche Backups raus zu kramen und jetzt verabschiedet sich eine alte 400MB Inventardatenbank (bzw. der Server). Glück im Unglück: Nur die mysql-Datenbank mit den Zugriffsrechten ist hinüber – die eigentlichen Daten sind noch da. Spart ein paar Stunden Restore-Bandsalat. Langsam glaub ich doch, dass ich mir mal Postresql anschauen sollte…

Leicht und schnell

Tjaja, irgendwie hab ich diese Woche etwas hass auf „Mainstream“-Linuxprodukte entwickelt. Mein Gnome friert lauter ein und mein (Test-)Apache segfaultet sobald er auch nur ein PHP-Script riecht. Ergebnis: Mein Windowmanager ist jetzt Fluxbox, aufm Testserver emerged grade lighttpd und als kleinen Ausgleich wurde ich durch Hoffies Blog noch auf einen TV-Browser aufmerksam der nach einer kleinen Unmask-Orgie meine EPG-Daten fürs Mediacenter auch mal anständig auf den PC-Schirm bringen sollte (dank Java auch entsprechend langsam). Dummerweise gibts das XMLTv-Plugin nicht mehr, aber das werd ich dann mal suchen oder mir selber was besteln – siet nich all zu komplex aus…

Windows vs. Windows

Eigentlich ja eine einfache Aufgabe: Es steht ein AD mit diversen Windows 2003 Servern, nun soll ein weiterer 2003er hinzu kommen. Nunja, dcpromo, paar Werte eintragen und gut – so weit die Theorie. Dumm nur, wenn sich Windows da mal wieder selber überlistet – der neue Server ist eben zu neu: Windows 2003 R2 möchte eben nicht OOTB mit den alten zusammen arbeiten. Also erst mal die Fehlermeldungen (die erst mal alle auf DNS verweisen) ignorieren, herausbekommen was wirklich nicht stimmt, die restlichen Server entsprechend updaten, die AD-Datenbank aktualisieren und dann kann man den Server tatsächlich einbinden. Echt super einfach! So, Feierabend, genug Windows für Heute.

Never touch a running system…

Oh mann – es gibt Fehler, die einen wirklich am Verstand zwiefeln lassen. Für einen Treiber brauchte ich vor einiger zeit mal dringend GCC in der Version 4 auf meinem Rechner. Also so wies sein soll istalliert und schon war die neue Version als gcc-4.. verfügbar. Dummerweise hatte ein Entwickler fest „gcc“ einprogrammiert. Da ich zu faul zum Ändern war hatte ich damals einfach den Link „gcc“ von der alten Version 3.3 auf die neue 4er umgebogen.

In letzter Zeit häuften sich aber die Probleme: Module ließen sich plötzlich nicht mehr laden, beim antippen von Numlock in einem bestimmten Abstand hing sich das System auf, etc, etc – sehr strange

Jetzt weiß ich nach ein paar Stundern hirnzerbrechen aber auch warum: Nahezu jedes Programm verwendet wie angenommen gcc – also 4.1, nur Gentoo selber hat intern nochmal eine Zusatzkonfiguration – und die stand noch auf 3.3. Ergebnis war ein mix aus allem: Kernel 4.1, Module 3.3 und vom Rest will ichs garnich wissen.

Naja, jetzt dank der Doku gefixt und erst mal das halbe System neu machen, dann sollte hoffentlich alles laufen – inclusive meiner NumLock-Taste oO

UPDATE: Wie ich grad lese muss ich das GANZE System neu kompilieren – Auf nem 500er *narf*. Ich bin dann wohl die nächsten Tage etwas eingeschränkt was Datei- und Netzzugriffe angeht…