Optimierung des Festplattenzugriffes bei PHP Applikationen

Warum man auf die Festplattenzugriffe achten sollte

Wenn eine z.B. eine Seite auf einem Webserver aufgerufen wird, wird dabei meistens mehr von der Festplatte gelesen als nur eine Datei. Eine Anwendung besteht oftmals aus sehr vielen Klassen und Funktionen die in verschiedenen Dateien organisiert werden. Diese werden beim Aufruf einer Anwendung natürlich benötigt und werden durch das Einbinden mit include() oder require() ebenfalls von der Festplatte geladen.

Funktionen die ein Festplattenzugriff erzeugen

Diverse Funktionen benötigen natürlich ein Festplattenzugriff, daher ist es natürlich nicht zu vermeiden. Bei der Programmierung sollte man schon daran denken das zu viele Zugriffe nicht gerade ideal sind. Daher => Funktionen die ein Festplattenzugriff erzeugen sparsam einsetzen.

Logischerweise erzeugen alle Funktionen, die Dateien oder Verzeichnisse von der Festplatte lesen einen Zugriff. Das währen z.B. einige wie fopen(), fwrite(), scan_dir(), getimagesize() usw.

Was führt noch zu Festplattenzugriffen?

  • Templatesysteme.
    Mit der Template Engine SMARTY z.B. ist es möglich bei viel Traffik  und einer falschen Einstellung den kompletten Server abzuschießen. Im Entwicklungsmodus erzeugt SMARTY z.B. extrem viele Festplattenzugiffe. Im Artikel "Improving Disk IO in PHP Apps" kann man einiges dazu nachlesen.
  • Datei basierte Cachingsysteme
    Dateibasierte Cachingsysteme erzeugen auch durchaus extreme Plattenzufriffe.
  • Datenbankzugriff. (Indirekt durch das DBMS wenn auf dem selben Host betrieben)

Überflüssigen Festplattenzugriff vermeiden

...todo

Verminderung der Race-Conditions kann zu weniger Festplattenzugriff führen. Dies wird in dem Artikel "Improving Disk IO in PHP Apps" ganz gut beschrieben.

Folgende Artikel könnten auch interessieren