Se hai un singolo programma che sta colpendo un ulimit
(un limite morbido al numero di file che un singolo processo può aprire), la regolazione ulimit
su un numero più alto va bene, specialmente se puoi semplicemente inserire il ulimit
comando nel tuo .bash_profile
. Oltre a ciò, sconsiglio vivamente di modificare file come /etc/launchd.conf
o /etc/sysctl.conf
o aggiungere file plist /Library/LaunchDaemons/
per alcuni motivi.
Le modifiche a tali file persistono nei backup e vengono trasferite alle nuove versioni di macOS e ai nuovi computer durante l'aggiornamento.
Se tali modifiche causano problemi (che è una possibilità reale), è necessario ricordare che sono state apportate le modifiche e quali sono le modifiche, quindi modificare nuovamente i file per annullarli. Questo può succedere anni dopo.
Dopo alcuni anni di aggiornamento, potresti scoprire che quello che era un aumento di un limite è ora una diminuzione di un limite. Ma probabilmente non lo saprai perché (a) non ricorderai di aver apportato la modifica e (b) non vedrai i nuovi limiti perché li hai annullati dall'inizio.
Un'opzione molto migliore
In generale, anziché sintonizzare i singoli parametri sul sistema e disequilibrare il sistema (e potenzialmente lasciare che un singolo programma blocchi il sistema assorbendo tutte le risorse), se i limiti di sistema predefiniti non sono sufficienti per le tue esigenze, ti consiglio di turing su "Modalità prestazioni server", o almeno provandolo. Tutto ciò che serve per questo è OS X / macOS 10.8 Mountain Lion o successivo e almeno 16 GiB di memoria installati. All'inizio dovevi pagare per questo, ma a partire da OS X 10.8 Mountain Lion, è gratuito e ufficialmente supportato da Apple con il sistema operativo standard.
L'attivazione di questa modalità aumenta notevolmente i limiti di sistema, in particolare il numero di processi che è possibile eseguire e il numero di file che è possibile aprire, a scapito dell'allocazione di più memoria nel kernel di sistema. Puoi leggere in dettaglio cosa viene modificato dalla modalità prestazioni del server nella risposta alla domanda "Cosa fa effettivamente serverperfmode = 1 su macOS?" .
Questa modalità presenta numerosi vantaggi rispetto alla modifica dei file di configurazione, come suggerito da altre risposte.
- È una modifica di un singolo parametro, facile da annullare.
- Si traduce in un insieme equilibrato di limiti più alti, preservando le protezioni contro i processi canaglia che provocano l'arresto anomalo del sistema.
- Nella maggior parte dei casi, fornisce limiti più elevati rispetto a quelli altrimenti consentiti dal kernel, anche con la modifica dei file di configurazione.
- Aumenta i limiti predefiniti per tutti i processi senza ulteriori modifiche alla configurazione.
- A partire da OS X 10.11 El Capitan, la modifica della configurazione viene memorizzata in NVRAM, il che significa che se sta causando problemi, si tornerà alla modalità normale quando si esegue la procedura di risoluzione dei problemi di ripristino di NVRAM. Non devi ricordarlo.
- Poiché è in NVRAM, non cambierà accidentalmente lo stato durante il ripristino dai backup.
- Poiché è in NVRAM, non si accenderà automaticamente quando clonerai la configurazione del tuo Mac su un nuovo hardware.
- Poiché è ufficialmente supportato da Apple, "funziona" e non riceverai lamentele da Apple Geniuses riguardo alla modifica impropria del sistema quando chiedi supporto.
- Poiché si tratta di una modifica di un singolo parametro, è possibile attivarlo e disattivarlo facilmente per la risoluzione dei problemi o il confronto tra un'impostazione e l'altra.
Attiva o disattiva la Modalità prestazioni server
Per attivare la Modalità prestazioni server, utilizzare il Terminale per eseguire uno di questi comandi, quindi riavviare affinché abbia effetto:
- Per OS X 10.11 El Capitan o versioni successive, accendilo con
sudo nvram boot-args="serverperfmode=1 $(nvram boot-args 2>/dev/null | cut -f 2-)"
e spegnilo con
sudo nvram boot-args="$(nvram boot-args 2>/dev/null | sed -e $'s/boot-args\t//;s/serverperfmode=1//')"
I comandi precedenti sono ciò che Apple consiglia ufficialmente, ma in realtà c'è un problema con loro, che è che se si esegue il comando "accendi" due volte, è necessario eseguire il comando "spegni" due volte per disattivarlo. Quindi controlla se è acceso o spento dopo aver apportato una modifica eseguendo
nvram boot-args
Se l'output include "serverperfmode = 1", l'impostazione è attiva e, in caso contrario, l'impostazione è disattivata.
- Per OS X 10.8 Mountain Lion, OS X 10.9 Mavericks e OS X 10.10 Yosemite, attiva la modalità prestazioni server con
serverinfo --setperfmode 1
e spegnilo con
serverinfo --setperfmode 0
Controllare l'impostazione con
serverinfo --perfmode
L'impostazione non avrà effetto fino a dopo il riavvio del sistema.
Verifica se il computer è attualmente in esecuzione in modalità prestazioni server
Il controllo dell'impostazione ti dirà se è impostato per avere effetto (o meno) dopo il riavvio. Per verificare se è attualmente attivo (supponendo che tu abbia seguito il mio consiglio e non abbia modificato i file di configurazione che cambiano le impostazioni), esegui
sysctl kern.maxproc
Ti darà un numero che è il numero massimo di processi consentiti dal sistema. Se quel numero è un multiplo di 532 , la modalità prestazioni del server è disattivata. Se si tratta di un numero tondo (un multiplo di 2500), la modalità delle prestazioni del server è attiva per il sistema attualmente in esecuzione.