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

Saggi Mizrahi smizrahi at redhat.com
Sun Jul 6 12:10:45 UTC 2014



----- Original Message -----
> From: "Francesco Romani" <fromani at redhat.com>
> To: devel at ovirt.org
> Sent: Friday, July 4, 2014 1:09:44 PM
> Subject: [ovirt-devel] [VDSM] VDSM threads as in vdsm 4.15.0
> 
> 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
Will spawn one thread per request (to keep the same
behavior as the XMLRPC server. There is a parameter
in the constructor to set an alternative scheduler.)
> 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
Currently one per IOProcess slave. It's for log collection.
We could consolidate it to one for all IOProcess instances if
it ever becomes an issue. There is currently only one global
IOProcess but we want to change it so there is an IOProcess instance
per domain.
> 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.
> 
> Thanks,
> 
> --
> Francesco Romani
> RedHat Engineering Virtualization R & D
> Phone: 8261328
> IRC: fromani
> _______________________________________________
> Devel mailing list
> Devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/devel
> 



More information about the Devel mailing list