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