我的多线程应用程序在 systemd 服务下运行。当它在没有工作负载的情况下运行/proc/<Main PID>/status
时 systemctl 的输出和输出中的线程数相同
systemctl show -p TasksCurrent <ServiceName>
TasksCurrent=287
cat /proc/<Main PID>/status | grep Threads
Threads: 287
在某些情况下,当工作负载增加时,Threads
in的/proc/<pid>/status
数量从287
到295
TasksCurrent
systemctl
~500
~3000
服务在 CGroup 中只有一个进程,但它在依赖项中还有一些其他服务,如Requires
,Wants
和BindsTo
. 所有这些服务都有恒定数量的TasksCurrent
,其中一个是~3500
(并且它等于它的进程中的线程数),对于所有其他的1
问题: 为什么服务的任务数不等于该服务唯一进程中的线程数?