MeterSphere 页面卡顿解决方法


朱飞鸽
飞致云 发布于 2023-12-06 / 231 阅读 / 0 评论 /
MeterSphere 在使用过程中如果遇到页面卡顿的情况,可以考虑进行模块内存调整或者通过开启慢查询,定位到具体的慢 SQL,进一步定位原因,具体操作方法如下所述: 1. 通过调整模块内存解决页面卡顿问题 当页面太卡时,可以在服务器上执行【docker stats】看看各个服务模块内存使用率情况

MeterSphere 在使用过程中如果遇到页面卡顿的情况,可以考虑进行模块内存调整或者通过开启慢查询,定位到具体的慢 SQL,进一步定位原因,具体操作方法如下所述:

1. 通过调整模块内存解决页面卡顿问题

当页面太卡时,可以在服务器上执行【docker stats】看看各个服务模块内存使用率情况

当看到内存使用率达到 70% 以上即可适当调整。可以【vi /opt/metersphere/.env】文件最下方增加如下内存

MS_DS_MEM_LIMIT=2g
MS_EUREKA_MEM_LIMIT=2g
MS_GATEWAY_MEM_LIMIT=2g
MS_MINIO_MEM_LIMIT=2g
MS_PERFORMANCE_MEM_LIMIT=4g
MS_PROJECT_MEM_LIMIT=4g
MS_REPORT_MEM_LIMIT=4g
MS_TRACK_MEM_LIMIT=4g
MS_UI_MEM_LIMIT=4g
MS_WORKSTATION_MEM_LIMIT=4g
MS_API_MEM_LIMIT=4g
MS_NC_MEM_LIMIT=4g
MS_SYSTEM_MEM_LIMIT=4g

增加后的效果图如下图所示:

添加完成后执行【msctl reload】重新加载服务

执行【docker stats】看看内存是否修改成功,内存使用率已经降下来

或者可以【vi /opt/metersphere/docker-compose-test-track.yml】修改文件里的 mem_limit 的值,默认是 1g ,可以将其改为【4294967296】即 4g,之后【msctl reload】 即可

2.通过开启慢查询确认慢SQL定位卡顿原因

开启 mysql 慢查询,将 sql 输出到文件里进行排查,看看是不是存在 sql 语句查询缓慢问题,可以先按照以下脚本确认慢查询是否开启以及时间设置如何:

# 进入 mysql 容器
docker exec -it mysql sh
# 登录 mysql 数据库
mysql -uroot -pPassword123@mysql
# 查询慢查询是否开启
show variables like 'slow_query_log';
# 未使用索引是否开启日志
show variables like 'log_queries_not_using_indexes';
# 慢查询时间设置
show variables like 'long_query_time';

按照以下脚本设置开启慢查询:

# 慢查询开启
set global slow_query_log="ON";
set global log_queries_not_using_indexes="ON";
# 设置时间
set global long_query_time=2
# 慢查询文件位置
show variables like "slow_query_log_file";

慢查询开启后,在 MS 系统页面点击功能加载慢的菜单,之后可以在【/opt/metersphere/data/mysql 】目录下,可以看到慢查询文件。



是否对你有帮助?