Come aumentare correttamente i limiti 'ulimit -n'?

7

Sto cercando di scaricare la X-Plane 10 Demo tramite uTorrent , tuttavia ottengo sempre un errore "troppi file aperti". Posso fare il download alternativo (che richiede sempre e un giorno), ma mi chiedo come posso aumentare le impostazioni in Lion?

Ho trovato informazioni contrastanti al riguardo, alcuni dicono che ulimit -n e sysctl sono gli strumenti di scelta, mentre altri riportano che launchctl è corretto.

Il valore riportato per ulimit -n è 256, lo stesso per launchctl limit :

cpu         unlimited      unlimited      
filesize    unlimited      unlimited      
data        unlimited      unlimited      
stack       8388608        67104768       
core        0              unlimited      
rss         unlimited      unlimited      
memlock     unlimited      unlimited      
maxproc     709            1064           
maxfiles    256            unlimited      
    
posta Michael Stum 26.11.2011 - 08:23
fonte

3 risposte

6

Quanto segue dovrebbe risolvere la maggior parte delle soluzioni (e sono elencate in base alla loro gerarchia):

echo 'kern.maxfiles=20480' | sudo tee -a /etc/sysctl.conf
echo -e 'limit maxfiles 8192 20480\nlimit maxproc 1000 2000' | sudo tee -a /etc/launchd.conf
echo 'ulimit -n 4096' | sudo tee -a /etc/profile

Note:

  1. Avrai bisogno di riavviare per rendere effettive queste modifiche.
  2. AFAIK non puoi più impostare limiti a 'illimitato' in OS X
  3. i file max di launchctl sono limitati da sysctl maxfile e quindi non può superarli
  4. sysctl sembra ereditare kern.maxfilesperproc da launchctl maxfiles
  5. ulimit sembra ereditare il valore di "file aperti" da launchctl per impostazione predefinita
  6. puoi impostare un ulimit personalizzato all'interno di / etc / profile, o ~ / .profile; mentre non è richiesto, ho fornito un esempio
  7. Sii prudente quando imposti uno qualsiasi di questi valori su un numero molto elevato rispetto al loro valore predefinito - le funzionalità esistono stabilità / sicurezza. Ho preso questi numeri esemplificativi che ritengo siano ragionevoli, scritti su altri siti web.
  8. Quando i limiti di launchctl sono inferiori a quelli di sysctl, ci sono state segnalazioni che i relativi sysctl verranno automaticamente caricati per soddisfare i requisiti.
risposta data 03.12.2012 - 13:14
fonte
1

Potresti aumentare i file aperti massimi eseguendo ulimit -n 1024 e avviando uTorrent dalla riga di comando. Nel mio caso, avvierei Transmission usando il comando:

/Applications/Transmission.app/Contents/MacOS/Transmission

Devi lanciare l'applicazione torrent dalla shell in cui hai invocato ulimit, le tue modifiche non hanno alcun effetto altrimenti, isolare bene le modifiche è il vantaggio di ulimit.

    
risposta data 26.11.2011 - 09:23
fonte
1

Fondamentalmente ulimit controlla le risorse disponibili per la shell e i suoi processi, dove launchctl controlla le risorse massime per il sistema e i suoi processi.

Per la shell corrente, il limite dei file aperti massimi può essere modificato da: ulimit -n 10240 .

Nota: puoi usare extra -S parametro per un soft o -H per il limite hard.

Se il limite della shell non può essere modificato, devi prima utilizzare il comando launchctl , ad es.

sudo launchctl limit maxfiles 10240 unlimited

Per modificare i limiti del kernel, esegui: sudo sysctl -w kern.maxfiles=10240 .

Ulteriori letture:

risposta data 12.01.2018 - 01:47
fonte

Leggi altre domande sui tag