Ceilometer Polling Performance Improvement
Ceilometer的数据采集agent会定期对nova/keystone/neutron/cinder等服务调用其API的获取信息,默认是20秒一次,
# Polling interval for pipeline file configuration in seconds. # (integer value) #pipeline_polling_interval = 20
这在大规模部署中会对OpenStack服务节点造成很大压力,增加节点CPU负载。
在Ceilometer的L版本中有一个针对性的改进来cache住API返回中的meta data,resource-metadata-caching
meta data占据很大的数据比例,而且不进场更新。
同时使用了NOVA API中新的参数the Changes-Since request parameter
通过增量变化+原有的cache来拼凑出完整的信息,以此来减少OpenStack服务节点的压力。
根据RH的测试,10 computes nodes, 200 virtual machines, and polling was set to every 5 seconds的情况下可以是nova服务节点的CPU利用率减少70%。
这个改进的工作量并不是很大,却可以显著的提高ceilometer的性能。