我在我的专用服务器中使用了ubuntu 15.04,其中有40个cpu核心和160GB的RAM,其中一个stream量大的wordpress站点正在运行。 我使用Nginx作为Web服务器和清漆作为caching服务器。 我的php5-fpm.conf设置是:
listen = 127.0.0.1:7654 pm = dynamic pm.max_children = 500 pm.start_servers = 80 pm.min_spare_servers = 20 pm.max_spare_servers = 160 pm.max_requests = 1000
但它仍然显示错误:
[pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 17 idle, and 92 total children WARNING: [pool www] server reached pm.max_children setting (200), consider raising it
我试图增加数字,但仍然没有运气。 一个孩子使用的内存是〜75MB。 我怎样才能找出我的PHP的最佳configuration?
通常我已经find了在'ondemand'模式下使用php-fpm的最佳解决scheme。 这似乎是更高效的内存,更less的内存泄漏和可扩展性。 build议大致如下:
pm = ondemand pm.max_children = 50 pm.process_idle_timeout = 10s pm.max_requests = 500
max_children将需要调整到您的环境。 这与内存非常相关,例如,如果一个FPM进程要占用64MB,而你只有2GB内存,那么在进入内存限制之前,你只能得到20-25fpm的进程。
所以根据你的内存计算这个值,为操作系统和其他服务留下一些空间,如果这不是专用的应用服务器。
一个拥有40个CPU核心和160GB内存的专用服务器,一个stream量很大的wordpress站点正在运行
对于这样的服务,这是一个非常奇怪的configuration。
我们不能build议如何解决这个问题,因为你没有告诉我们问题是什么。 最有可能的是,需要一名合格的工程师至less有一天的时间来收集足够的数据来确定瓶颈,然后再花费更长的时间来制定如何最好地解决约束。 在这里发表如此大量的研究成为一个问题将是无关紧要的。
容量规划是主题 。
我怎样才能找出我的PHP的最佳configuration?
了解性能pipe理和调优。 对事业做出有根据的猜测。 应用增量更改。 衡量影响。