Límites de carga del servidor nginx y Mysql (dependen de la configuración del servidor)

Límites de carga del servidor nginx y Mysql (dependen de la configuración del servidor)

la configuración de mi servidor es

Technology: Ivy Bridge
Processor:  Intel Xeon E3 1245v2
            Intel Smart Cache: 8MB
Cores:  4
Threads:    8
Frequency:  3.4GHz+
Turbo Boost:    3.8GHz
Virtualization: yes
RAM :        32 GB DDR3
Hard drive: Intel SSD 2 x 120GB
RAID:           SOFT - 0/1
                (RAID-1 by default)
NIC:    GigaEthernet
Bandwidth: 200 Mbps guaranteed 
Version:    Parallels Plesk Panel v11.5.30_build115130819.13 os_CentOS 6
OS: CentOS 6.4 (Final)
Server Soft: Apache \ PHP

Ahora necesito saber qué configuré (Establecer valor máximo, que es lo que mi servidor acepta bien) para Nginx

worker_connections (what i set here);
worker_processes (what i set here);

MySQL

set-variable=max_connections= (what i set here)
set-variable=max_user_connections= (what i set here)

Cualquier otro agradecimiento por MySQL, Nginx y cualquier otra ayuda que me ayude a obtener más carga. Por favor, díganme que realmente necesito ayuda. Por favor, ayuden. Gracias.

Respuesta1

Al final, todos estos valores deben establecerse de acuerdo con lo que va a ejecutar en sus servidores Nginx y MySQL, por lo que no existe una fórmula mágica para responder su pregunta y ser correcto en todos los casos de uso posibles. Aún así, intenté reunir algunos datos que pueden llevarte a la respuesta a tus preguntas:

nginx

Respecto a Nginx worker_processeseldocumentacióndice esto:

If Nginx is doing CPU-intensive work such as SSL or gzipping and you have 2 or
more CPUs/cores, then you may set worker_processes to be equal to the number
of CPUs or cores.

If you are serving a lot of static files and the total size of the files is 
bigger than the available memory, then you may increase worker_processes to 
fully utilize disk bandwidth.

En cuanto a worker_connections, considere esta fórmula que obtuve deaquí:

max_clients = worker_processes * worker_connections

Entonces, una vez que conozca su worker_processesvalor, puede calcularlo worker_connectionsen función de la cantidad máxima de clientes simultáneos que podría necesitar atender.

mysql

Con respecto al max_connectionsvalor de MySQL, debería intentar calcular cuántas conexiones necesitará en su MySQL simultáneamente en las horas pico. Por ejemplo, si su aplicación se ejecuta en PHP y tiene 32 procesos de trabajo PHP, y PHP es la única aplicación que accede a MySQL, probablemente sea seguro asumir que no necesitará más de 32 conexiones en MySQL. Tampoco desea establecer este valor demasiado alto, porque se debe asignar una gran cantidad de buffers para cada conexión, por lo que si el max_connectionsvalor es demasiado alto, corre el riesgo de que algo acabe con su MySQL al crear conexiones hasta que se queda sin memoria.

max_user_connectionses básicamente lo mismo, solo que en una base de usuarios de MySQL, en lugar de un valor global para todo el servidor MySQL.

En caso de que aún no lo hayas visto, aquí tienes los documentos relevantes:

conexiones_max/conexiones_max_usuario

información relacionada