Posso proporti un modo per farlo, sebbene non sia completo.
Puoi impostare il limite di memoria per processo usando launchctl limit
(vedi pagina man ). Tuttavia questo è per processo non a livello di sistema.
Nella vita reale, pochi processi stanno consumando una grande quantità di memoria. Pertanto, ti consiglio di guardare l'output di Activity Monitor
e vedere quali sono i processi che consumano di più. Conta quelli che utilizzano più del 20% della tua RAM. Quanti processi hai? Assumiamo n e assumiamo che tu abbia m GB di RAM. Quanto spazio di swap massimo vuoi usare? Supponiamo che s GB di swap.
Vorrei fare il seguente calcolo: (m + s - 1) / n = <max memory per process in GB>
Converti GB in B: <max memory per process in GB> * 1024 * 1024 * 1024 = <max mem per proc in B>
Ora prova questo limite e vedi se funziona (nota, questa impostazione andrà persa dopo un riavvio, quindi è "sicuro" da eseguire):
sudo launchctl limit rss <max mem per proc in B> <max mem per proc in B + 1073741824>
Se sei soddisfatto di questa scelta, puoi salvarli, quindi sono permanenti. Modifica il file /etc/launchd.conf
e aggiungi:
limit rss <max mem per proc in B> <max mem per proc in B + 1073741824>