tho*_*ewi 5 linux central-processing-unit php-fpm
我想问一下如何获得每个核心的最佳(最大)php-fpm线程数?如何对其进行基准测试(在 linux/debian 上)?以及如何识别这个计数已经太多了?谢谢你。
您可能指的是池中的进程。这主要取决于您的实际 PHP 代码的阻塞程度。它等待的时间越长,您需要的进程就越多,因为更多的子进程会阻塞并等待某些事情(例如,外部 HTTP 请求结束)。另一方面,这个实际数字确实取决于您拥有的内存量。每个核心 2-4 个进程的基本规则适用于一些不会产生太多阻塞的理想代码。当然,您可以通过查看 CPU 的规格来确定每个核心的正式线程数,例如Intel E5-2640 CPU的每个核心线程数为 2。
确定池中子进程实际数量的简单方法很简单:在开始时将其设置为 CPU 的线程数,然后稍微增加,同时对安装重复基准测试。一旦性能停止增加,或者达到内存上限,就停止增加。
另请记住,在某些外部资源达到上限或变得无响应的情况下(即数据库服务器或您的代码可能查询的某些外部 HTTP 服务器),无论池中有多少子级,您都将达到上限你有,他们只会陷入等待状态。因此,在确定池上限时,您应该记住这个可能的瓶颈。