<div dir="ltr"><div>Hi guys,<br><br></div><div>On this week I was investigating Ceilometer performance. And this letter is a brief description of my results.<br><br></div><div>Lab description:<br></div><div>3 controllers<br>
</div><div>187 computes<br></div><div>HA: Galera for MySQL<br></div><div>memcached is on, RabbitMQ in HA mode<br></div><div><br></div><div>Ceilometer processes are running as follows:<br></div><div>1 controller: ceilometer-api, ceilometer-agent-central, ceilometer-collector, ceilometer-agent-compute<br>
</div><div>2 and 3 controller: ceilometer-collector<br></div><div>all computes: ceilometer-agent-compute<br><br></div><div>My idea was just to see how Ceilometer works in real-life circumstances. I decided to use Rally to see how much Ceilometer's work affects the speed of instance booting and removing time. Rally is a new instrument for me and I hope Rally's guys will fix me if I'm wrong in config description. <br>
<br></div><div>Scenario:<br></div><div>1. Test boot-time without Ceilometer. Just an empty Lab<br></div><div>2. Run manually 100 instances which will be always polled by Ceilometer in next scenarios <br></div><div>3. Start Ceilometer with different "interval" in pipeline.conf in _all_ computes and controllers. <br>
</div><div>4. Use the following Rally config:<br>"NovaServers.boot_and_delete_server": [<br> {"args": {"flavor_id": 2, "image_id": "430c55c4-d9f6-4fa9-9888-5ca1f9531530"},<br>
"execution": "continuous",<br> "config": {"times": 400, "active_users": 100, "tenants": 10, "users_per_tenant": 20}}<br> ]<br>
</div><div>The config means that the method boot_and_delete_server (create one instance and delete it at once) will be called 400 times. Max "level of concurrency" is 100 i.e. 100 active users (as max) may create instance at the same time. Amount of users = tenants*users_per_tenant = 200. <span lang="en"><span><br>
<br></span></span></div><div><span lang="en"><span>Rally measures how long method 'boot_and_delete_server' worked. And here is a list of results:<br>
<br>+----------------------+---------------------+---------------------+--------------------+<br>| max | avg | min | scenario |<br>+----------------------+---------------------+---------------------+--------------------+<br>
</span></span></div><div><span lang="en"><span><span lang="en"><span>| 288.868812084 | 109.638720818 | 35.1642079353 | </span></span> empty lab |<br></span></span></div><div><span lang="en"><span>+---------------------+----------------------+---------------------+--------------------+<br>
</span></span></div><div><span lang="en"><span>| 321.71191287 | 173.705494534 | 72.4606912136 | </span></span> 20 sec polling |<br></div><div><span lang="en"><span>+---------------------+----------------------+---------------------+--------------------+<br>
</span></span></div><div><span lang="en"><span><span lang="en">| 389.527067184 | 217.689281176 | 71.4955689907 |</span> 10 sec</span></span> polling |<br><span lang="en"><span>+---------------------+----------------------+---------------------+--------------------+</span></span></div>
<div><span lang="en"><span><span lang="en">| 445.328452826 | 243.213246702 | 117.31561017 |</span> 5 sec </span></span>polling |<br><span lang="en"><span>+---------------------+----------------------+---------------------+--------------------+<br>
<br></span></span></div><div><span lang="en"><span>The second interesting moment is that Ceilometer affects user creation very much. Unfortunately, Rally doesn't measure this metric and I cannot provide concrete results.<br>
<br></span></span></div><div><span lang="en"><span>Guys, if you have any questions or comments you are welcome! I think that 2x difference between avg time in "empty lab" and "5 sec polling" scenario is not a bad result. But 100 instances that were being monitored during the test is not a real load for the lab. What do you think? Should I repeat the test with 1000 instances?<br>
<br></span></span></div><div><span lang="en"><span>Thanks,<br></span></span></div><div><span lang="en"><span>Nadya <br></span></span></div><div><span lang="en"><span><br></span></span></div></div>