原因是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);
效果:这个增加索引也能快很多,但是这个是一次性的~