Ich habe einen virtuellen Server und mein Anbieter berechnet mir die Kosten pro Ressourcennutzung. Ich kann ein Limit für den maximalen RAM festlegen, aber mir wird trotzdem der tatsächlich genutzte RAM in Rechnung gestellt, nicht das Maximum (der Preis wird alle 5 Minuten basierend auf der tatsächlichen Nutzung berechnet).
Normalerweise wäre es ok, den gesamten RAM zu nutzen, aber die Linux-Richtlinie „ungenutzter RAM ist verschwendeter RAM“ greift bei dieser Art der Abrechnung zu kurz, da die Maschine letztendlich den gesamten verfügbaren RAM nutzt und ich trotzdem dafür zahlen muss, auch wenn der Großteil davon nur als Festplattencache dient.
Ich stelle das Limit beim Anbieter gerne etwas höher ein, um Spitzenanforderungen an RAM gerecht zu werden. Kann ich irgendwie begrenzen, wie viel Speicher für das Caching usw. verwendet wird? Nehmen wir an, ich reserviere 3 GB und meine Anwendung + Systemdienste benötigen normalerweise 1 GB, aber wenn es wirklich nötig ist, kann meine Anwendung 2 GB RAM zusätzlich verwenden, aber im Leerlauf möchte ich den Cache so begrenzen, dass er z. B. nur bis zu 500 MB freien RAM in Anspruch nimmt, damit ich nicht ständig für 3 GB zahlen muss.
Antwort1
Die verlinkte Antwortwie-leert-man-die-Puffer-und-den-Cache-auf-einem-Linux-Systemzeigt Ihnen, wie Sie Ihre Caches (Seitencache, Dentries und Inodes) freigeben. Sie müssten diese Freigabeaktivität wiederholt durchführen, möglicherweise von Cron aus. Ich weiß nicht, ob es in einem OpenVZ-Container wie gewünscht funktionieren würde, da die Speicherverwaltung von OpenVZ komplex erscheint (oder möglicherweise nicht gut genug dokumentiert ist). Ich möchte OpenVZ nicht kritisieren; es ist eine großartige Virtualisierungslösung und kann viele Systeme auf einen physischen Server komprimieren.
Cool,linux-ftoolskann Ihnen dabei helfen, zu erkennen, wie viele Cache-Seiten pro Datei verwendet werden.
Sie können auch experimentieren mitAustauschbarkeit, und setzen Sie ihn für aggressives Swapping auf 100.