2.x信息化平台mysql负载过高性能优化处理方法
现象:客户信息化平台数据库占用内存过高,平台日志有慢查询,平台因此频繁宕机崩溃;

上述图片所示,我们可以使用以下方法进行处理;
1、iostat -c命令查看iowait指标
在服务器cpu及线程等满足情况下绝大多数场景下基本都在0% - 5%,超过百分之20时需要注意磁盘问题,如无法判断可联系问题小组,如磁盘读写较差需及与客户沟通更换磁盘,以满足业务需求;
2、使用数据库连接工具,或使用mysql -uroot -p命令连接数据库;
数据库密码及数据库连接工具可参考以下帖子;
http://svn.seekcy.com/284
3、连接数据库后使用以下命令查看mysql配置最大连接数,数据库缓存池大小,实际响应连接数等数据;
show variables like'%max_connections%';--查看当前配置的最大连接数show variables like'%max_user_connections%';--查看数据库单用户最大连接数SHOW STATUS like '%Max_used_connections%'; --查看实际使用响应的连接数SHOW STATUS like '%Aborted_connects%'; --异常终止告警SHOW STATUS LIKE 'Threads_connected'; --查看当前打开的连接数查看mysql配置:/home/seekcy/database/mysql/my.cnfshow variables like 'innodb_buffer_pool_size'; -- 查看数据库缓冲池大小
3、使用以上命令后如果查看到打开连接数超过配置最大连接数,我们需要修改mysql最大连接数,参考以下链接帖子配置;
http://svn.seekcy.com/425
4、使用free -h 命令查看服务器剩余可用内存;
如上图,如free内存较小,available为fuwu服务器剩余可用存, buff/cache为缓存所用内存,可清理缓存正常使用,我们可以切换服务器连接用户为root使用以下命令清理服务器缓存。
echo 3 > /proc/sys/vm/drop_caches
5、如以上服务器内存较多,可以清理缓存后修改mysql缓存池大小,如内存不够可联系问题小组进一步判断处理,配置缓存池如下;
cd /home/seekcy/database/mysql/vi my.cnfinnodb_buffer_pool_size = 4294967296; innodb参数修改为4294967296

6、修改完成后保存配置文件,执行以下命令
chmod 644 my.cnf #修改mysql文件权限,这类文件通常包含数据库的敏感信息,比如root密码、数据库名、IP地址等。如果权限设置不当,可能会导致未授权访问或泄露cd /home/seekcy/database/mysql/support-files/./mysql.server restart 重启mysql
7、重启完mysql后,查看负载是否正常,如短时间内持续升高需要升级问题小组继续排查,如负载正常可执行一下操作,删除下图所示dump日志文件,下图所示后缀如果有带日志也一并删除,日志文件目录为/home/seekcy/wwyt/wwyt-server/logs/下
8、日志删除完成,问题正常处理完成,如后续平台非服务器问题,慢sql等导致宕机,可以提供最新dump日志文件升级问题小组,研发分析具体原因;
ZGL(0716)
转载请注明作者和出处,并添加本页链接。
原文链接:
//svn.seekcy.com/802