答案1
我不认为 nginx 按主机划分工作人员;在工作进程处理连接、TLS、HTTP/2 握手之前,它无法知道它正在服务哪个主机,此时请求已经“属于”工作进程。
您可以将 gdb 附加到这些进程 ( gdb -p {pid}
),查看有哪些线程以及它们正在等待使用什么info threads
。也许一个线程正在等待某个 IO 完成?有些是从管道读取,有些是 IPC?选择该线程 ( thread {number}
) 并执行回溯 ( bt
)。您可以打印局部变量 ( print {variable name}
) 并选择要使用的调用堆栈中的级别 ( frame {stack frame nr.}
)。