¿Qué hace realmente serverperfmode = 1 en macOS?

18

Se describe cómo encenderlo aquí pero no hay detalles.

Hay una descripción vaga:

  

El modo de rendimiento cambia los parámetros del sistema de tu Mac. Estas   Los cambios aprovechan mejor su hardware para servidores exigentes   aplicaciones.

¿Qué está cambiando realmente dentro del sistema / kernel?

    
pregunta Keir Thomas 15.12.2016 - 13:21

1 respuesta

10

Activar Server Performance Mode esencialmente aumenta algunos parámetros del kernel / red relacionados con el número máximo de procesos y conexiones posibles / permitidos y modifica algunas configuraciones de memoria / temporizador:

...
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

El objetivo es permitir que más archivos abiertos (especialmente necesarios para servidores web) y conexiones sirvan a más clientes al mismo tiempo y descartar subprocesos de un solo servidor más rápido de la memoria / memoria virtual (si interpreto ciertas modificaciones correctamente).

En el pasado, Apple lanzó un sistema operativo diferente y ahora que el servidor se carga sobre el sistema operativo del consumidor, algunos ajustes básicos pueden ayudar al sistema operativo a ejecutar procesos para 25 usuarios que se conectan a un servidor en lugar de estar sintonizados para una persona utilizando el OS Estos ajustes son solo un punto de partida: cualquier persona que quiera que su servidor tenga un rendimiento bajo la carga necesita personalizar y monitorear las cosas a un nivel mucho más detallado que tener el modo de rendimiento activado o desactivado.

Además, estos límites son principalmente para evitar que el software defectuoso desactive un servidor agotando los recursos limitados, como los canales de señalización de comunicaciones entre procesos (ipc). En un sistema donde se está ejecutando un usuario, desea detener un proceso fuera de control antes de que haya docenas de procesos ejecutándose para docenas de usuarios. Se puede considerar que el "rendimiento" aumenta los límites estrictos en lugar de "servir un archivo o una página web más rápido".

    
respondido por el klanomath 15.12.2016 - 14:48

Lea otras preguntas en las etiquetas