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>