PHP-FPM为每个请求启动一个新进程是否正确?

时间:2016-12-06 12:45:36

标签: php fpm

我有一行PHP脚本使用DataService.ds.REF_NEWS.queryOrdered(byChild: "date").observe(.value, with: {(snapshot) in self.news = [] if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] { for snap in snapshot { if let newsDict = snap.value as? Dictionary<String, AnyObject> { print("Mago Dict: \(newsDict)") let key = snap.key let new = News() new.configureNews(newsKey: key, newsData: newsDict) self.news.append(new) } } } 打印出PID,每次通过FPM调用脚本时PID都会改变,但我希望pid是相同的。我认为FPM的重点是每次都不会产生新的过程,从而使事情变得更快?

1 个答案:

答案 0 :(得分:0)

这个,您可能需要在www.conf文件中稍微了解一下php fpm配置(或根据您的操作系统的任何conf文件)。因此,根据您的配置,FPM通常会根据您的需求分配更多的孩子,因此不同的pid号码。

  

选择流程管理员控制子女数量的方式   流程。

     

可能的值:
  静态 - 子进程的固定数量(pm.max_children)

     

动态 - 根据以下指令动态设置子进程数。通过此流程管理,将始终至少有1个孩子。

     

pm.max_children - 同时可以活着的最大子女数。
   pm.start_servers - 启动时创建的子项数。

     

pm.min_spare_servers - “空闲”中的最小儿童数量&#39;国家(等待处理)。如果“闲置”的数量是多少?一些进程少于这个数量   将创建儿童。
   pm.max_spare_servers - “空闲”中的最大儿童数量&#39;国家(等待处理)。如果“闲置”的数量是多少?进程大于这个数字然后一些孩子将被杀死。

     

ondemand - 启动时不会创建子项。当新请求连接时,孩子们将分叉。

     

使用以下参数:

     

pm.max_children - 可以同时活着的最大子女数。

     

pm.process_idle_timeout - 空闲进程被终止的秒数。注意:此值是必填项。