我的服务器配置是
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
现在我需要知道我为 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)
任何其他感谢mysql,Nginx和任何其他帮助我门控更多负载请告诉我我真的需要帮助请帮助谢谢
答案1
最后,所有这些值都必须根据您要在 Nginx 和 MySQL 服务器上运行的内容进行设置,因此没有万能公式可以回答您的问题并在每个可能的用例中都正确无误。不过,我还是尝试收集一些数据,以便为您找到问题的答案:
Nginx
关于worker_processes
Nginx文档说:
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.
关于worker_connections
,考虑一下我从这里:
max_clients = worker_processes * worker_connections
因此,在了解您的价值之后,您可以根据您可能需要服务的最大并发客户端数量进行worker_processes
计算。worker_connections
MySQL
关于max_connections
MySQL 上的值,您应该尝试确定在高峰时段需要同时在 MySQL 上建立多少个连接。例如,如果您的应用程序在 PHP 上运行,并且您有 32 个 PHP 工作进程,并且 PHP 是唯一访问 MySQL 的应用程序,那么可以安全地假设您在 MySQL 上不需要超过 32 个连接。您也不想将此值设置得太高,因为必须为每个连接分配一大堆缓冲区,因此如果该值max_connections
太高,您将面临某些东西通过创建与它的连接直到内存耗尽而杀死您的 MySQL 的风险。
max_user_connections
基本上是同一件事,只是基于每个 MySQL 用户群,而不是整个 MySQL 服务器的全局值。
如果你还没有看过,下面是相关文档: