Hallo fastix.
Diese Tausenden Klicks pro Sekunde hatten wir schon, deswegen muss das System ja neu gecoded werden.
Es war prozedualer Schrottcode auf der Infrastruktur: Apache, PHP (5.1), MySQL one Chaching-Lösungen und es hat alles standgehalten bis auf die Datenbank. (war auch nicht von mir)
Das neue System ist extrem anders aufgebaut.
Als Frontend dient NGINX als Reverse-Proxy, damit wird Lighttpd entlastet welcher an sich schon schneller ist als Apache2.
Skriptsprache bleibt zwar PHP, allerdings 5.3 welches wesentlich schneller sein soll laut PHP und diversen Gerüchten, welche sich aber aus meiner Erfahrung schon als bestätigt zeigen.
Die Datenbanklast wird völlig weggenommen. Größere Daten wie die fertigen Views(alles OOP auf einem kleinen MVC Framework aufgebaut) von abgelaufenden Auktionen lagern in Memcached, ebenso wie Userdaten.
Die Auktionen laufen dann weder über die DB noch über Memcached, sie laufen über APC weil es schneller schreiben kann als Memcached und APC wird in PHP 6 standartisiert sein.
Ebenfalls wird darauf geachtet PHP Overhead zu vermeiden. Während das alte System 8 Sessions mit sich rumschleppte, wird dieses hier maximal 1 brauchen.
Ich denke das dieses System ausreicht. Die Datenbank hat kaum noch Belastung, natürlich ist das nur eine Lastverteilen, das ist mir klar, aber eine wesentlich effizientere.
Jetzt werde ich denke ich ein PHP CLI erstellen. Ich möchte das dieses alle 2 Minuten die Daten aus dem Cache schreibt.
Wie ist dies am elegantesten zu lösen?
Meine Idee wäre das Skript beim Webserverstart mit zu starten und es per sleep(120); ruhen zu lassen.
Habt ihr andere Vorschläge? Und kann mir die maximale Ausführungszeit eines Skriptes zum Verhängnis werden? Muss ich auf irgendwas achten? Wie sorge ich dafür das das Skript dauerhaft läuft?
Zusätzlich würde ich ein weiteres Skript laufen lassen welchen alle 10 Min checkt ob das andere Skript noch läuft. Auch hier frage ich euch wie das machbar ist.
Lg, phil