redis-manager-2.3.1
此次更新为修复更新,建议升级此版本
- 修复 MySQL CPU 过高问题
由于之前的索引及 SQL 语句不合理,导致 MySQL CPU 非常高,经过测试和优化,现已解决此问题。
结果:
- 管理50+集群,共近2000节点时,MySQL CPU 达到了 4000%,优化后在 5% ~ 125% 之间
- 监控页面性能有明显提升
方案:
- SQL语句优化
- MySQL索引重建
除了升级项目外,需要对已经管理的集群node_info_{clusterId}
表和redis_node
表进行索引重建/新建,操作前请停止redis-manager服务,步骤如下
use redis_manager;
show tables;
-- node_info_{clusterId}表操作
-- 找到所有 `node_info_` 开头的表,先进行删除,再创建
ALTER TABLE node_info_{clusterId} DROP INDEX `multiple_query`;
-- 不再需要`last_data`索引,如果本身就没有,则忽略
ALTER TABLE node_info_{clusterId} DROP INDEX `last_data`;
ALTER TABLE node_info_1 ADD INDEX `multiple_query` (`time_type`, `last_time`, `node`, `update_time`);
-- `redis_node`表操作,增加索引
ALTER TABLE redis_node ADD INDEX `multiple_query` (`cluster_id`, `host`, `port`);
- 修复节点状态及集群状态在某些情况下不准确问题
升级前请务必执行以下命令
use redis_manager;
ALTER TABLE `redis_node` ADD COLUMN `in_cluster` tinyint(1) DEFAULT 0 AFTER `link_state`;
ALTER TABLE `redis_node` ADD COLUMN `run_status` tinyint(1) DEFAULT 0 AFTER `in_cluster`;
关于集群状态的定义如下
HEALTH: ok
BAD: can't connect or cluster info state is not ok
WARN: redis node not good(run_status, in_cluster, link_state, flags, node_role)
- 集群告警节点信息增加
在节点状态不好时,将提供以下信息
run_status: 是否在运行
in_cluster: 是否在集群中
link_state: 节点连接状态, cluster 模式依赖 cluster nodes 命令,其他模式依赖 run_status
flags: 节点标志, cluster 模式依赖 cluster nodes 命令,standalone 模式依赖 info 命令,sentinel 默认master
node_role: MASTER, SLAVE, UNKNOWN,此字段依赖 flags,如果无法得出,则为UNKNOWN
-
修复cluster模式可能无法查询问题
-
修复集群安装时可能无法查看安装log问题
移除websocket -
增加当前主机的IP配置
新增redis-manager.installation.current-host: xxx
自动获取主机IP方法有时无法获取可使用的IP,如果遇到此问题,请在application.yml
中配置