Che cosa fa in realtà serverperfmode = 1 su macOS?

18

L'attivazione è descritta qui ma non ci sono dettagli.

Esiste una descrizione vaga:

Performance mode changes the system parameters of your Mac. These changes take better advantage of your hardware for demanding server applications.

Cosa cambia effettivamente all'interno del sistema / kernel?

    
posta Keir Thomas 15.12.2016 - 13:21
fonte

1 risposta

10

L'attivazione della modalità Prestazioni server aumenta sostanzialmente alcuni parametri kernel / net relativi al numero massimo di processi e connessioni possibili / consentiti e modifica alcune impostazioni di memoria / timer:

...
kern.maxvnodes: 66560 > 300000
kern.maxproc: 1064 > 5000
...
kern.maxfilesperproc: 10240 > 150000
kern.maxprocperuid: 709 > 3750
kern.ipc.maxsockbuf: 4194304 > 8388608
...
kern.ipc.somaxconn: 128 > 1024
...
kern.ipc.nmbclusters: 32768 > 65536
...
kern.ipc.sbmb_cnt_peak: 1120 > 1170
...
kern.ipc.njcl: 10920 > 21840
...
kern.timer.longterm.qlen: 100 > 0
kern.timer.longterm.threshold: 1000 > 0
...
net.inet.ip.maxfragpackets: 1024 > 2048
...
net.inet.tcp.tcbhashsize: 4096 > 8192
...
net.inet.tcp.fastopen_backlog: 10 > 200
...
net.inet6.ip6.maxfragpackets: 1024 > 2048
...
net.inet6.ip6.maxfrags: 2048 > 4096
#and some very special vm page-outs/compressor and and memory/cache settings

L'obiettivo è di consentire più file aperti (particolarmente necessari per i server Web) e connessioni per servire più client contemporaneamente e scartare i thread dei singoli server più velocemente dalla memoria / memoria virtuale (se interpreto correttamente alcune modifiche).

In passato, Apple ha rilasciato un sistema operativo diverso e ora che il server carica sul sistema operativo consumer alcune regolazioni di base possono aiutare il sistema operativo a eseguire processi per 25 utenti che si connettono a un server invece di essere ottimizzati per una persona che utilizza il OS. Queste regolazioni sono solo un punto di partenza: chiunque desideri che il proprio server esegua con un carico elevato deve personalizzare e monitorare le cose a un livello molto più dettagliato rispetto all'avvio o alla disattivazione della modalità di esecuzione.

Inoltre, questi limiti servono principalmente a impedire che software di qualità scadente abbattano un server esaurendo risorse limitate come i canali di segnalazione delle comunicazioni tra processi (ipc). Su un sistema in cui è in esecuzione un utente, si desidera arrestare un processo in fuga prima che ci siano dozzine di processi in esecuzione per decine di utenti. La "performance" può essere vista come un innalzamento di alcuni limiti difficili rispetto a "servire più velocemente un file o una pagina web".

    
risposta data 15.12.2016 - 14:48
fonte

Leggi altre domande sui tag