As users demand greater scalability from Citrix XenServer, the transmission of performance data from guests via xenstore is increasingly becoming a bottleneck. Future use of service domains is likely to make this problem worse. A simple, efficient way of transmitting time-varying datasets between userspace components in different domains is required. This talk will propose a lock-free mechanism to allow interdomain reporting of performance data without relying on continuous xenstore usage, and describe how it fits into the XAPI toolstack.
3. XAPI project
High level OO API around Xen
HTTP interface
Collects performance data from dom0/guests
4. Performance data
Numeric
Changes regularly - requires sampling
If we sometimes lose a sample - that's OK
5. Interdomain performance data
Currently one metric per domU: free memory
Transmitted via xenstore
Even this has been enough to cause performance problems!
6. Improvements so far
Data collection caused laggy API response from XAPI
-> XAPI disaggregation: rrdd, networkd and xenopsd
7. Improvements so far
High xenstore load reduced bootstorm performance
-> Watch xenstore instead of polling
8. What next?
Take xenstore out of the data path
Create a generic API for:
Driver domain monitoring
Application monitoring
...