Apache 长轮询对服务器的影响
我目前正在while(true)循环中执行一个longpolling脚本。PHPApache 长轮询对服务器的影响,apache,nginx,long-polling,php,Apache,Nginx,Long Polling,Php,我目前正在while(true)循环中执行一个longpolling脚本。PHPset\u time\u limit设置为0。有一台apache服务器,另一台nginx服务器代理与前一台服务器连接。我通过这个长轮询脚本从MySQL表中提取文本。我想知道这个过程是否会影响服务器性能。如果是,那么如果有大量并发用户拉取数据,那么拉取到什么程度?我应该把nginx放在php fpm上吗 长轮询有几个值得注意的服务器端属性 在具有专用工作进程的服务器上,它将阻止工作进程 在基于事件的服务器上,它不会阻
set\u time\u limit
设置为0。有一台apache服务器,另一台nginx服务器代理与前一台服务器连接。我通过这个长轮询脚本从MySQL表中提取文本。我想知道这个过程是否会影响服务器性能。如果是,那么如果有大量并发用户拉取数据,那么拉取到什么程度?我应该把nginx放在php fpm上吗 长轮询有几个值得注意的服务器端属性
- 在具有专用工作进程的服务器上,它将阻止工作进程
- 在基于事件的服务器上,它不会阻止服务器中的任何内容
- 在任何情况下,它都将使用一个或多个套接字,这也是一个有限的资源
- PHP解释器使用专用的worker,因此每次并发轮询都会阻止一个PHP实例
- 在许多安装中,PHP实例仅受可用RAM的限制
- 如果轮询脚本正确完成,上下文切换和CPU将大部分保持在雷达以下
- 释放一些Apache工作人员,而不会导致(基于事件的)Nginx中的阻塞
- 可能会增加RAM使用:如果使用apache-mod-php5运行,PHP解释器的静态RAM占用在每个进程中只会出现一次
如果有疑问,我倾向于将事情紧密联系在一起,因此如果你的主应用程序在Apache内部运行,那么将长轮询器移出需要很好的理由来说服我-请理解,这最后一部分只是个人偏好。你所说的基于事件的服务器是什么意思?@nick:基于事件的服务器(例如node.js、nginx)没有针对每个连接的专用工作进程或线程