Page 1 of 1

Scripts im RAM

Posted: 2005-10-29 15:58
by blackmole
Hallo,

ich versuche gerade eine Website von der Geschwindigkeit her ein bisschen zu optimieren, dazu dachte ich mir wäre es ja vielleicht hilfreich, wenn große Dateien nicht jedes Mal von der Festplatte gelesen werden müssen. Also habe ich ramfs gemountet, alle PHP-Dateien aus einem Verzeichnis dort hineinkopiert und an der alten Stelle symbolische Links erstellt. Das klappt mitlerweile auch, jedoch läd die Seite nicht schneller als vorher, was mich ein bisschen wundert :roll: denn der RAM ist doch eigentlich deutlich schneller als die Festplatte... Hat jemand ne Idee, warum das nichts bringt?
Habe es an einer Include-Datei überprüft, die etwa 140kb groß ist, ne PHP-Klasse, die in jeder Seite included wird. Das Laden braucht sowohl von Festplatte als auch aus dem RAM etwa 0.033 Sekunden, was nach meiner Rechnung etwa 4 MB / sec macht. Für die Festplatte wäre es ja noch halbwegs akzeptabel, aber für RAM kann das doch eigentlich nicht sein :roll:

Wäre über Tipps froh, danke schonmal im Voraus!

Re: Scripts im RAM

Posted: 2005-10-29 16:04
by Roger Wilco
Du hast bei deinen "Optimierungsversuchen" nicht bedacht, dass die Festplatte offensichtlich gar nicht der Flaschenhals ist...

Woran deine Skripte am längsten nagen, kannst du z. B. mit APD überprüfen, einem Profiler für PHP.

Re: Scripts im RAM

Posted: 2005-10-29 16:32
by Joe User
Du hast vergessen, dass bei Deiner Variante nun die Symlinks von der Festplatte gelesen werden müssen und auch noch die Anzahl der Systemcalls steigt ;)

<mode werbung="on">
http://www.rootforum.org/forum/viewtopic.php?t=36343
http://www.rootforum.org/forum/viewtopic.php?t=36346
</mode>

Re: Scripts im RAM

Posted: 2005-10-29 17:12
by alexander newald
Man sollte auch daran denken, dass die Ã?nderungen an den PHP Dateien auf dem ramfs weg sind, wenn mal der Server neu bootet.

Re: Scripts im RAM

Posted: 2005-10-29 17:19
by blackmole
Danke erstmal für die Hinweise!

Leider habe ich beim installieren von APD folgende Fehlermeldungen, für die auch Google mir bislang keine Antwort liefern konnte...
/home/mole/apd-1.0.1/php_apd.c: In function `apd_get_active_function_name':
/home/mole/apd-1.0.1/php_apd.c:305: error: invalid operands to binary !=
/home/mole/apd-1.0.1/php_apd.c:306: error: invalid type argument of `unary *'
/home/mole/apd-1.0.1/php_apd.c:312: error: structure has no member named `scope'
/home/mole/apd-1.0.1/php_apd.c:313: error: structure has no member named `scope'
/home/mole/apd-1.0.1/php_apd.c: At top level:
/home/mole/apd-1.0.1/php_apd.c:470: error: `OnUpdateLong' undeclared here (not in a function)
/home/mole/apd-1.0.1/php_apd.c:470: error: initializer element is not constant
/home/mole/apd-1.0.1/php_apd.c:470: error: (near initialization for `ini_entries[1].on_modify')
/home/mole/apd-1.0.1/php_apd.c:470: error: initializer element is not constant
/home/mole/apd-1.0.1/php_apd.c:470: error: (near initialization for `ini_entries[1]')
/home/mole/apd-1.0.1/php_apd.c:471: error: initializer element is not constant
/home/mole/apd-1.0.1/php_apd.c:471: error: (near initialization for `ini_entries[2]')
make: *** [php_apd.lo] Fehler 1
Hat jemand von euch ne Idee, woran das liegen könnte bzw wie ich es lösen kann?

Offenbar macht das Lesen der Links recht wenig aus, so liegt die Zeit zum Laden einer 1,2kb großen Datei bei etwa 0.0008 bis 0.0016 sec, wohingegen die 140kb große Datei atm so um 0.04 sec liegt...

Danke auch für den Hinweis auf die confs, werds mal ausprobieren...