早先时候写过一篇关于keystone把token这块从数据库移植到memcached。当时一直比较忙,没有深入的去研究一些问题。今天早上刚好把R
ally玩了一下,keystone的数据有点惨,顺便做了一些keystone相关的tunning。后面看样子还是有很多工作要做,OpenStack测试任重道远呀。本文也抛砖引玉,希望有更多的兄弟出来分享一些实际过程的经验。
##测试结果
下午新鲜出炉了keystone相关的测试数据,主要从两个方面对keystone进行了tunning,具体结果可以参考测试数据。
- memcached token存放
- apache替换keystone自身的wsgi
整个压力测试为了保证keystone还活着的情况下说明不同调整对性能的影响,采用10个并发用户,100个并发请求keystone创建和删除用户操作。
###apache wsgi + memcached token
详细的测试结果。
###default wsgi + memcached token
详细的测试结果。
###default wsgi + sql token
详细的测试结果。
##测试结果分析
从上述的数据简单进行一下分析,可以看到,当采用apache wgsi的方式和keystone默认的wgsi的性能上看,平均创建用户场景的性能提升3倍左右,平均删除用户场景提升6倍的性能,整个场景提升的性能3.5倍。从这组数据来看,采用apache接管keystone wgsi服务毋容置疑的选择。还在用keystone自身wgsi服务的同学们,该鸟枪换炮了。
另外一个分析,对比采用keystone默认的wgsi+memcached存放token和sql存放token的数据。从两组数据分析来看,memcached存放token的效率整体优于sql存放token的性能,大约有17%的性能提升。
##目前已知的一些问题
- 整个测试在压力不高的情况下进行
- 当并发数量上去后,创建和删除的数量急剧增加,还需要调整apache的接入性能或者采用nginx
- 测试场景还比较单一,覆盖率不高
- 其它可调参数未知
- memcached存放token是否存在其它未知问题
blog comments powered by