Für Benchmarking-Zwecke möchte ich Apache 2 zwingen, jede angeforderte Datei von der Festplatte zu laden, anstatt sie aus einem Cache im Speicher zu laden. Nach dem, was ich gelesen habe, wird eine Synchronisierung durchgeführt, gefolgt von
echo 3 > /proc/sys/vm/drop_caches
Lass mich den Linux-Cache löschen. Eine nachfolgende Anforderung für eine bestimmte Datei wird dann nicht aus dem Linux-Cache bereitgestellt, aber weitere Anforderungen für dieselbe Datei werden erneut aus dem Linux-Cache bereitgestellt. Dies liegt daran, dass / proc / sys / vm / drop_caches das Caching nicht deaktiviert, sondern nur das verwirft, was bis zu diesem Moment zwischengespeichert wurde. Ich könnte den Cache wahrscheinlich vor jeder einzelnen Anfrage löschen, aber ich würde eine andere Lösung bevorzugen. Kann ich noch etwas tun, um sicherzustellen, dass Apache jede angeforderte Datei von der Festplatte lädt?
Warum ich das tun möchte : Ich weiß, dass im normalen Betrieb das Caching aktiviert ist. Der Server stellt jedoch keine kleinen Dateien bereit, auf die häufig zugegriffen wird, z. B. HTML-Seiten, kleine Bilder usw. Stattdessen werden Dateien bereitgestellt, die meist ein paar Megabyte groß sind und aus einem sehr großen Satz von Dateien stammen. Auf diese Dateien wird ziemlich einheitlich zugegriffen, und daher wird sehr selten auf jede einzelne Datei zugegriffen. Daher erwarte ich im normalen Betrieb, dass die meisten Zugriffe keinen Cache-Treffer verursachen, sondern dass die Datei von der Festplatte geladen werden muss. Ich habe mehrere Beispieldateien, auf die ich mit apaches ab zugreifen möchteBenchmark, um zu messen, wie viele Transaktionen pro Sekunde der Server bedienen kann. Leider glaube ich, dass die Ergebnisse, die ich erhalte, aufgrund von Caching viel zu optimistisch sind. Daher möchte ich das Festplatten-Caching von Linux deaktivieren, und das Zwischenspeichern von Apache kann sich von selbst erledigen.
Update: Die bisher gegebene Antwort sagt mir, wie ich Apaches eigenes Caching deaktivieren kann, aber ich frage mich immer noch, ob es eine Möglichkeit gibt, das vom Linux-Kernel durchgeführte Caching zu deaktivieren.