¿Cómo evitar que OSX asigne tanta memoria virtual como hay espacio disponible en el disco duro?

3

Hace poco tuve una pérdida de datos porque el disco duro estaba completamente ocupado por la memoria virtual y algunos programas no podían manejar cero espacio libre en el disco duro. ¿Cómo puedo evitar que esto suceda (además de mantener unos pocos GB como búfer)?

    
pregunta Lenar Hoyt 24.02.2013 - 14:20

1 respuesta

1

Puedo proponerle una forma de hacerlo, aunque no esté completa.

Puede establecer el límite de memoria por proceso utilizando launchctl limit (consulte página de manual ). Sin embargo, esto es por proceso no para todo el sistema.

En la vida real, pocos procesos consumen una gran cantidad de memoria. Por lo tanto, le aconsejaría que mire Activity Monitor output y vea cuáles son los procesos que consumen más. Cuente los que están usando más del 20% de su RAM. ¿Cuántos de estos procesos tienes? Asumamos n y supongamos que tiene m GB de RAM. ¿Cuánto espacio de intercambio máximo desea utilizar? Asumamos s GB de intercambio.

Haría el siguiente cálculo: (m + s - 1) / n = <max memory per process in GB>

Convierta el GB en B: <max memory per process in GB> * 1024 * 1024 * 1024 = <max mem per proc in B>

Ahora pruebe este límite y vea si funciona (tenga en cuenta que esta configuración se perderá después de reiniciar, por lo que es "seguro" realizarla):

sudo launchctl limit rss <max mem per proc in B> <max mem per proc in B + 1073741824>

Si está satisfecho con esta opción, puede guardarlos para que sean permanentes. Edite el archivo /etc/launchd.conf y agregue:

limit rss <max mem per proc in B> <max mem per proc in B + 1073741824>
    
respondido por el Huygens 24.02.2013 - 16:20

Lea otras preguntas en las etiquetas