
On Fri, Jul 04, 2014 at 06:09:44AM -0400, Francesco Romani wrote:
Hi,
I'm trying to enumerate all the daemon threads VDSM uses, as in 4.15.0 (to be exact, as in master 3228f5dad8f488192ea62f4e3e39172832435e80)
So far I got:
===
SocketServer: 1 service, short lived thread per request?
VDSM alone, with no VM running
num what where -------------------------------------------------------- 1 libVirtEventLoop lib/vdsm/libvirtconnection.py P TaskManager vdsm/storage/hsm.py 1 StorageServer vdsm/storage/storageServer.py 1 StorageRefresh vdsm/storage/hsm.py 1 ChannelListener vdsm/virt/vmchannels.py 1 HostStatsThread vdsm/virt/sampling.py 1 MomThread vdsm/momIF.py 1 clientIF vdsm/clientIF.py 1 HostMonitor mom/HostMonitor.py 1 StompReactor vdsm/rpc/BindingJsonRpc.py 1 JsonRpcServer vdsm/rpc/BidningJsonRpc.py 1 GuestManager mom/GuestManager.py 1 PolicyEngine mom/PolicyEngine.py 1 XmlRpcServer? vdsm/rpc/BindingXMLRPC.py 1 Detector vdsm/clientIF.py 1 RPCServer mom/RPCServer.py 1 SocketServer stdlib, triggered by vdsm/rpc/BindingXMLRPC.py 1 IOProcess? vdsm/storage/outOfProcess.py S DomainMonitor vdsm/storage/domainMonitor.py P/2 HSM_MailMonitor vdsm/storage/storage_mailbox.py P/2 SPM_MailMonitor vdsm/storage/storage_mailbox.py
P = pool size (config/irs/thread_pool_size)
Total: 17 + number(StorageDomains) + P * 2 Total with defaults (P=10) = 37 + number(StorageDomains) Minimum storage domains: 2 (ISO + data) Baseline: 39 threads
Per VM 1 sampling vdsm/virt/sampling.py 1 GuestMonitor mom/GuestMonitor.py
===
More precise update will follow. In the meantime, anyone please feel free to point out omissions/errors.
You must have dropped the migration-monitoring threads on purposed! (but they still pop up). There are other ocasions when (hopefully) short-lived threads are created, such as during getStorageDomainsList() XmlRpcServer springs a new thread per http connection. What's P/2 ? What are the question marks in the above table? And in that line - what's the IOProcess thead? Dan.