MySQL IO线程及相关参数调优
- mysql> show global status like 'i%read%';
- | Innodb_buffer_pool_reads | 647 |
- | Innodb_data_read | 48402944 |
- | Innodb_data_reads | 2996 |
- | Innodb_pages_read | 2949 |
- | Innodb_rows_read | 1002172 |
- mysql> show engine innodb status \G
- ---
- LOG
- ---
- Log sequence number 144064129 //已经生成的日志量(累计值)/单位:字节
- Log flushed up to 144064129 //已经写入的日志量(累计值)
- Pages flushed up to 144064129 //已经写入的脏页量(累计值)
- Last checkpoint at 144064120 //检查点
- 0 pending log flushes, 0 pending chkp writes
- 92 log i/o's done, 0.00 log i/o's/second
- mysql> show status like 'Sort_merge_passes';
- +-------------------+-------+
- | Variable_name | Value |
- +-------------------+-------+
- | Sort_merge_passes | 0 |
- +-------------------+-------+
- 1 row in set (0.00 sec)
用户所需数据,如果没有内存buffer pool中,就发生物理读;
如果需要过滤掉很多数据,就会影响物理读和内存读,因为返回很多的数据(物理读),在内存中需要过滤掉很多数据(内存读);
如果涉及到group/order by,会在用户工作空间完成排序等,如果结果集过大,用户空间过小,进行磁盘排序,Sort_merge_passes>0 ,这就很影响数据库性能了。
- mysql> show engine innodb status \G
- --------
- FILE I/O
- --------
- I/O thread 0 state: waiting for i/o request (insert buffer thread)
- I/O thread 1 state: waiting for i/o request (log thread)
- I/O thread 2 state: waiting for i/o request (read thread)
- I/O thread 3 state: waiting for i/o request (read thread)
- I/O thread 4 state: waiting for i/o request (read thread)
- I/O thread 5 state: waiting for i/o request (read thread)
- I/O thread 6 state: waiting for i/o request (write thread)
- I/O thread 7 state: waiting for i/o request (write thread)
- I/O thread 8 state: waiting for i/o request (write thread)
- I/O thread 9 state: waiting for i/o request (write thread)
- mysql> show variables like 'innodb_read_io_threads';
- +------------------------+-------+
- | Variable_name | Value |
- +------------------------+-------+
- | innodb_read_io_threads | 4 |
- +------------------------+-------+
- 1 row in set (0.01 sec)
- mysql> show variables like 'innodb_write_io_threads';
- +-------------------------+-------+
- | Variable_name | Value |
- +-------------------------+-------+
- | innodb_write_io_threads | 4 |
- +-------------------------+-------+
- 1 row in set (0.01 sec)
关于innodb_purge_threads:page cleaner 线程
作用:1、负责对 undo 数据页的清空
2、数据页中 delete 标志行的清除
3、清理 innodb buffer pool,负责把内存中的脏页发起写请求,write 线程负载把脏页刷新到磁盘上。
- mysql> show global status like 'Innodb_log_waits';
- +------------------+-------+
- | Variable_name | Value |
- +------------------+-------+
- | Innodb_log_waits | 0 |
- +------------------+-------+
- 1 row in set (0.00 sec)
如果log buffer太小,就很容易满,导致无法写入,产生日志等待。
- mysql> show global status like 'Innodb_os_log_written'; #redo log写的字节数
- +-----------------------+-------+
- | Variable_name | Value |
- +-----------------------+-------+
- | Innodb_os_log_written | 57856 |
- +-----------------------+-------+
- 1 row in set (0.01 sec)
- mysql> show global status like 'Innodb_log_writes';
- +-------------------+-------+
- | Variable_name | Value |
- +-------------------+-------+
- | Innodb_log_writes | 59 |
- +-------------------+-------+
- 1 row in set (0.01 sec)
- mysql> show engine innodb status \G
Pending flushes (fsync) log: 0;- mysql> show global status like 'Innodb_os_log_pending_fsyncs';
- +------------------------------+-------+
- | Variable_name | Value |
- +------------------------------+-------+
- | Innodb_os_log_pending_fsyncs | 0 |
- +------------------------------+-------+
- 1 row in set (0.00 sec)
1、fsync:绕过文件系统缓存,直接将内存中的数据写入存储中,实现数据真正写入可靠的介质磁盘里。(对于redo log来说,通过fsync方式写入磁盘才是可靠的保证,因为写入文件系统缓存的提交成功响应并不是真正的将redo写入磁盘的logfile中)(sync:同步)
- mysql> show variables like "%log_buffer%";
- +------------------------+----------+
- | Variable_name | Value |
- +------------------------+----------+
- | innodb_log_buffer_size | 16777216 |
- +------------------------+----------+
MySQL IO线程及相关参数调优的更多相关文章
- mysql日常运维与参数调优
日常运维 DBA运维工作 日常 导数据,数据修改,表结构变更 加权限,问题处理 其它 数据库选型部署,设计,监控,备份,优化等 日常运维工作: 导数据及注意事项 数据修改及注意事项 表结构变更及注意事 ...
- ngnix——FastCGI 相关参数调优
当 LNMP 组合工作时,首先是用户通过浏览器输入域名请求 Nginx Web 服务,如果请求的是静态资源,则由 Nginx 解析返回给用户:如果是动态请求(如 PHP),那么 Nginx 就会把它通 ...
- LNMT(Linux+Nginx+MySQL+Tomcat)常见性能参数调优
- 【Spark调优】Shuffle原理理解与参数调优
[生产实践经验] 生产实践中的切身体会是:影响Spark性能的大BOSS就是shuffle,抓住并解决shuffle这个主要原因,事半功倍. [Shuffle原理学习笔记] 1.未经优化的HashSh ...
- 看MySQL的参数调优及数据库锁实践有这一篇足够了
史上最强MySQL参数调优及数据库锁实践 1. 应用优化 1.2 减少对MySQL的访问 1.2.1 避免对数据进行重复检索 1.2.2 增加cache层 1.3 负载均衡 1.3.1 利用MySQL ...
- Mysql Innodb 引擎优化-内存、日志、IO、其他相关参数
介绍: InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色增加 ...
- (转)linux IO 内核参数调优 之 参数调节和场景分析
1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时 ...
- inux IO 内核参数调优 之 参数调节和场景分析
http://backend.blog.163.com/blog/static/2022941262013112081215609/ http://blog.csdn.net/icycode/arti ...
- MySQL 优化之 Linux系统层面调优
MySQL 一般运行于Linux系统中.对于MySQL的调优一般分为Linux操作系统层面的调优和MySQL层面的调优(当然还有架构层面.业务层面.应用程序层面的调优).操作系统主要是管理和分配硬件资 ...
随机推荐
- 安卓ios和angularjs相互调用解决首次调用ios传递标题失败的问题
1.angular 调用客户端方法放在 try catch中 try { js_invoke.showShareDialog(angular.toJson(obj)); // 在这里放客户端的方法即 ...
- leetcode算法题(JavaScript实现)
题外话 刷了一段时间的codewars的JavaScript题目之后,它给我最大的感受就是,会帮助你迅速的提升你希望练习的语言的API的熟悉程度,Array对象.String对象等原生方法,构造函数. ...
- div的替代品
人们在标签使用中最常见到的错误之一就是随意将HTML5的<section>等价于<div>--具体地说,就是直接用作替代品(用于样式).在XHTML或者HTML4中,我们常看到 ...
- java基础(三章)
java基础(三章) 一.基本if结构 1.流程图 l 输入输出 l 判断和分支 l 流程线 1.1 简单的if条件判断 if(表达式){ //表 ...
- iptables 基本用法
iptables 1.iptables 表 (1)介绍常用表 filtert(过滤器) 链 ↓ INPUT chain:控制进入主机的数据包 OUTPUT chain:控制向外发出的数据包 FORWA ...
- WPF MVVM 架构 Step By Step(4)(添加bindings - 完全去掉后台代码)
之前的改进已经挺棒的,但是我们现在知道了后台代码的问题,那是否可能把后台代码全部去除呢?这时候就该WPF binding 和 commands 来做的事情了. WPF就是以超吊的binding,com ...
- android的drawable资源
1.android中可以通过xml文件配置资源,比如字符串啦,整数拉.浮点数等等,当然也可以配置图片资源和选择器,下面我们就看看几种图片资源的配置. @1矩形方框,带渐变色的配置代码 <?xml ...
- 【数据结构与算法】一致性Hash算法及Java实践
追求极致才能突破极限 一.案例背景 1.1 系统简介 首先看一下系统架构,方便解释: 页面给用户展示的功能就是,可以查看任何一台机器的某些属性(以下简称系统信息). 消息流程是,页面发起请求查看指定机 ...
- juggle添加c#版本
此前做过一个c++版的网络层dsl:http://www.cnblogs.com/qianqians/p/4255034.html 现在给这个dsl加入c#的支持,并且对代码的结构做了优化,将语法解析 ...
- linux查询进程号,出现两个进程
[root@ADM01B ~]# ps -ef|grep iesmgr root 5929 5321 0 09:38 pts/7 00:00:00 grep iesmgr root 9798 1 0 ...