原因是keystone有很多过期的token没有删除
解决:
1.进入mysql数据库,手动删除过期的token:
mysql -uroot -phuawei -D nova
DELETE FROM token WHERE expires <= NOW();
不过这个可能删的太狠了,也有温柔点的:
DELETE FROM token WHERE NOT DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= expires;
我一般执行这个,执行完后能快一些。
下面的一些其他方法
2. 增加mysql缓存大小
I have tuned my /etc/mysql/my.cnf with the following:
key_buffer = 2048M
max_allowed_packet = 2048M
thread_stack = 512M
thread_cache_size = 1024
query_cache_limit = 2048M
query_cache_size = 128M
innodb_buffer_pool_size = 2048M
restart mysql after making the changes
3. 给token表增加索引
create index index_token_valid on token(valid);
效果:这个增加索引也能快很多,但是这个是一次性的~
清理Keystone过期Token
本文介绍了当Keystone中存在大量未被及时清除的过期token时,如何手动删除这些token的方法,包括直接删除所有过期token、仅删除一天前的过期token以及通过调整MySQL配置、增加token表索引来提高操作效率。
5125

被折叠的 条评论
为什么被折叠?



