keystone cache

http://docs.openstack.org/juno/config-reference/content/section_keystone.conf.html

http://docs.openstack.org/liberty/config-reference/content/section_keystone-cache.html

keystone很多子系统如tokenidentity等都用到了cache,cache的设置可以是全局的对所有subsystem,也可以对每个subsystem单独设置cache。

keystone中使用 dogpile.cache

oslo.cache https://specs.openstack.org/openstack/oslo-specs/specs/kilo/oslo-cache-using-dogpile.html

也是对dogpile.cache的包装。可以支持以下backend:

  • Memcached
    • BMemcached
    • Standard Memcached
    • Pylibmc
  • In-Memory (Python dict-based)
  • Redis
  • MongoDB

keystone cache section中配置:

默认的是backend = keystone.common.cache.noop

在生产环境下建议使用keystone.cache.memcache_pool) or Redis (dogpile.cache.redis) 

devstack实验环境可以使用dogpile.cache.memory 

keystone所有支持的cache backend:

  • dogpile.cache.memcached - Memcached backend using the standard python-memcached library

  • dogpile.cache.pylibmc - Memcached backend using the pylibmc library

  • dogpile.cache.bmemcached - Memcached using python-binary-memcached library.

  • dogpile.cache.redis - Redis backend

  • dogpile.cache.dbm - Local DBM file backend

  • dogpile.cache.memory - In-memory cache, not suitable for use outside of testing as it does not cleanup it's internal cache on cache expiration and does not share cache between processes. This means that caching and cache invalidation will not be consistent or reliable.

  • dogpile.cache.mongo - MongoDB as caching backend.

  • keystone.cache.memcache_pool - An eventlet safe implementation ofdogpile.cache.memcached. This implementation also provides client connection re-use.

Warning

如果在 eventlet下部署keystone,不要采用dogpile.cache.memcached backend,已知问题会导致memcache client内存泄漏和耗费额外的socket。

 

原文地址:https://www.cnblogs.com/allcloud/p/5065997.html