这篇文章也不算分析,主要是一些观点,关于openstack中keystone的
首先说keystone是openstack中使用比较多的模块,访问量也大
每个操作基本上都是要走keystone的,所以keystone的性能直接影响云平台的性能
在keystone自身也带了自己的实现机制,就是使用worker
这里首先要提的是keystone需要wsgi服务支持,这就是主要的问题所在
因为keystone的app是已经写好的,主要看选择哪种wsgi的服务使它更高效
在keystone自身之中是使用的eventlet作为wsgi服务的
在openstack的所有的模块中也是对keystone的wsgi设计最为复杂
首先使用eventlet自带的网络库,包括socket,select等
然后创建一个eventlet中的server,设置绿色线程数1000
这种版本的keystone的性能已经好很多了,然后再加上worker的支持
这主要是fork出多个子进程来共同处理,从而增加效率
不得不提一下,使用devstack部署的时候keystone不是这样启动的
而是使用apache的多线程wsgi方式启动的keystone
个人也没有进行实测,也不好说效率之间的差别
========================================
这里补充一下,经过实测
使用keystone自带的服务器模式秒杀Apache的模式
而且差别很大的