等待PHP时nginx worker线程是否阻塞?


0

似乎在等待客户端数据或输出缓冲区已满时,nginx工作线程可以处理其他连接:

https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/

但是它们在等待PHP生成输出时是否处理其他连接?

是否还有其他文档说明nginx如何在内部工作?


好吧,对于几乎所有网络应用程序,每个请求/响应对都代表其自己的线程(或者派生一个进程,而不是在现有进程中运行新线程),因此,可以的是,多个线程可以呈现其响应的输出,而其他线程处于不同的状态(可能正在接收,也许正在发送响应等)。
Frank Thomas

意味着请求PHP产生输出的同一线程可以同时进行其他连接?
wutzebaer 2015年

不,每个新请求都会为该请求及其关联的responsel创建一个新线程(或分叉的进程,我认为这是NginX方法),并将在构造前一个响应的同时运行它们。CPU执行指令线程,因此一个线程一次只能做一件事。进程可以由多个线程在不同的CPU /内核上并行工作组成,但是每个线程一次只能做一件事。只要并行执行操作,就会有多个线程或多个进程(或两者都有)。
Frank Thomas

您是否读过有关Nginx的信息?nginx的主要功能是使用单个线程处理多个请求
wutzebaer 2015年

现有的CPU都无法做到这一点。你误会了。
Frank Thomas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.