[ovirt-devel] [VDSM] VDSM threads as in vdsm 4.15.0

Dan Kenigsberg danken at redhat.com
Fri Jul 4 14:14:55 UTC 2014


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.



More information about the Devel mailing list