Tengo un servidor virtual y mi proveedor me cobra por uso de recurso. Puedo establecer un límite en la RAM máxima, pero todavía me cobran por la RAM realmente utilizada, no por el máximo (el precio se calcula cada 5 minutos según el uso real).
Usar toda la RAM normalmente estaría bien, pero la política de Linux "RAM no utilizada es RAM desperdiciada" se queda corta para este tipo de contabilidad, ya que la máquina eventualmente terminará usando toda la RAM disponible, y aunque la mayor parte solo como caché de disco, Todavía tengo que pagar por ello.
Me gusta establecer el límite del proveedor un poco más alto para satisfacer las necesidades máximas de RAM. ¿Puedo, de alguna manera, limitar la cantidad de memoria que se utilizará para el almacenamiento en caché, etc.? Digamos que reservo 3 GB y mi aplicación + servicios del sistema normalmente necesitan 1 GB, pero si hay una necesidad real, mi aplicación puede usar 2 GB de RAM adicionales, pero cuando está inactivo quiero limitar el caché para que, por ejemplo, solo tome hasta 500 MB. de RAM libre, para no tener que pagar por 3 GB todo el tiempo.
Respuesta1
La respuesta vinculada¿Cómo-se-vacían-los-búferes-y-la-caché-en-un-sistema-linux?le muestra cómo liberar sus cachés (pagecache, dentries e inodos). Debería realizar esta actividad de liberación repetidamente, tal vez desde cron. No sé si funcionaría de la forma deseada en un contenedor OpenVZ, porque la gestión de la memoria de OpenVZ parece compleja (o tal vez no esté lo suficientemente documentada). No quiero criticar a OpenVZ; Es una excelente solución de virtualización y puede integrar muchos sistemas en un servidor físico.
Fresco,Linux-ftoolspuede ayudarle a ver cuántas páginas de caché se utilizan por archivo.
También puedes experimentar conintercambioy configúrelo en 100 para un intercambio agresivo.