Varnish, ein HTTP-Beschleuniger, verwendet ein dateibasiertes SHM-Protokoll mit ~ 80 MB, das mlock () im Speicher gespeichert ist. In den Lackdokumenten wird empfohlen, die Datei auf tmpfs zu speichern, um unnötigen Festplattenzugriff zu vermeiden. Wenn jedoch die gesamte Datei im Speicher gesperrt ist, schreibt der Linux-Kernel dennoch in die Sicherungsdatei?
Ich habe versucht, dies mit inotify und fatrace zu überwachen. Da diese Interaktion jedoch vermutlich im gesamten Kernel stattfindet, war für diese Tools keine Dateiaktivität sichtbar. Es gibt eindeutig eine Art Update, das entweder an der Datei oder am Dateisystem stattfindet, da die Überwachung der Sicherungsdatei mit ls zeigte, dass sich die Dateizeit geändert hat, und sha1sum zeigte, dass sich der Inhalt geändert hat. Dies beinhaltet jedoch tatsächlich den Festplattenzugriff oder geschieht alles in Erinnerung?
Grundsätzlich versuche ich zu vermeiden, dass die tmpfs-Problemumgehung durchgeführt werden muss, da die Verwendung von SHM zum Sichern von SHM eine hässliche Problemumgehung für ein Problem darstellt, das möglicherweise gar nicht existiert.