记一次性能测试:mysql占用磁盘IO过高 的解决过程

在一次性能测试时,发现mysql的cpu使用率不高,但是磁盘io很高,

一开始考虑是mysql的慢日志比较多,但是查看后发现慢日志并不多,而且只有一台mysql。

进入实例,查看sync_binlog变量

mysql> show variables like ‘%sync_binlog%‘
    -> ;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sync_binlog   | 1     |
+---------------+-------+
1 row in set (0.01 sec)

mysql>

 发现设置为1,也就是每次提交事务,都会将binlog的缓存写入磁盘,严重影响磁盘效率,将变量设置为1000后,问题解决

原文地址:https://www.cnblogs.com/lily328/p/11988332.html

时间: 2024-10-16 00:37:52

记一次性能测试:mysql占用磁盘IO过高 的解决过程的相关文章

MYSQL数据库服务磁盘IO高问题分析与优化

压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等查看CPU.内存使用情况,然后在排查IO问题,例如网络IO.磁盘IO的问题. 如果是磁盘IO问题,一般问题是SQL语法问题.MYSQL参数配置问题.服务器自身硬件瓶颈导致IOPS吞吐率问题. 今天主要是讲解MYSQL 参数配置不合理导致在高并发下磁盘IO问题,而MYSQL整体监控优化方案后面会整理<如何轻

磁盘IO过高时的处理办法

针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参考,如果磁盘IO确实比较大的话,是数据库,可以进行读写分离或者分库操作,减小磁盘压力,文件的话,可以利用raid来减轻压力 一)I/O调度程序的总结: 1)当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成.2)每个块设备都有它自己的队列.3)I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O

JDB2导致磁盘io使用率高

前几天碰到jbd2进程占用大量的磁盘io,用iotop查看到的情况大致如下: 系统版本:CentOS6.5-64bit 经查为ext4文件系统的一个bug: 先给出解决方案,处理此问题的优先级为: 1.yum update kernel 用yum升级系统内核,重启之后查看是否有效: 2.缓解方法:修改commit值,降低文件系统提交次数或者禁用barrier特性: 建议文件系统参数为:defaults,noatime,nodiratime,barrier=0,data=writeback,com

mysql占用服务器cpu过高的原因以及解决办法

排查方法 : > mysql -uroot -p      #登陆数据库 >********                    #输入数据库密码 mysql> show processlist; show processlist 命令详解: processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句. +-----+-------------+--------------------+-------+---------+-------+--------

(原)记一次CentOS7 磁盘空间大小异常的解决过程

环境:kvm系统:CentOS7故障描述:10g的ssd,可使用大小仅有2g解决过程: ? ? 某次重装系统后,安装软件总提示磁盘空间不足,检查之下发现仅有2G空间,实则明明是10G的ssd,以下为排错过程: 1.df -h查看vda1大小为2.7G #df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 2.7G 2.4G 236M 91% / devtmpfs 234M 0 234M 0% /dev tmpfs 244M 0 2

记一次性能测试实践

1.测试对象 这次测了一些http接口和几个网页. 2.测试策略 2.1 基准测试:单个调用各接口循环100次计算平均响应时间 2.2 性能测试:单个接口调用以50并发用户数为单位,逐步加压直到预估的实际负载300并发用户,观察测试指标变化 2.3 压力测试:单个接口调用以50并发用户数为单位,逐步加压直到错误率过高或服务器资源使用率过高,观察测试指标变化 2.4 负载测试:预估实际负载为300并发用户数,在此基础上持续测试5分钟左右,观察测试指标是否达标 2.5 稳定性测试:预估实际负载为30

linux查看哪个进程占用磁盘IO

方法一: $ iotop -oP 命令的含义:只显示有I/O行为的进程 测试结果: 方法二: $ pidstat -d 1 命令的含义:展示I/O统计,每秒更新一次 测试结果: 原文地址:https://www.cnblogs.com/weifeng1463/p/11080028.html

记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)

项目上线以来一直存在一个比较揪心的问题,和一个没有信心处理的BUG,那就是在应用程序启动时有可能会导致cpu跑满99%或持续在一个值如50%左右,这样一来对服务器的压力是非常大的,经常出现服务器无法远程的状态,唯有通过PowerShell杀掉对应的w3wp进程才可以解决这个问题. 为什么没有信心处理这个问题 原因非常简单,这个问题是间歇性的,不容易重现的,只会在项目启动时有一定的可能性会发生CPU跑满的问题. 所有可以重现的BUG的处理都不会太难,而类似这种无法重现的BUG是最让人头疼的,因为它

【经验之谈】mysql占用CPU利用率过高的问题

前段时间Zabbix上出现自告警,报Escalators进程压力过大,增大Escalators参数,等改到80-90才不告警了,就觉得不对劲. 到设备上top一下发现mysql把95%上的CPU都吃掉了 上mysql去show processlist; 发现有大量sleep进程,show status like 'Thread%':看到连接数只有138. 修改my.cnf文件,将max_connections降低到300, 发现没有改善,百度到可能是全局读写timeout时间没有优化的问题 修改