Linux清mysql磁盘,mysql与linux ~ 磁盘分析与调优

一 简介 谈谈磁盘IO的问题二 目的:如何进行IO性能问题的排查

二  linux角度

一 机械硬盘基本定义

寻道时间,表示磁头在不同磁道之间移动的时间(最耗时)。

旋转延迟,表示在磁道找到时,中轴带动盘面旋转到合适的扇区开头处。

传输时间,表示盘面继续转动,实际读取数据的时间

二 机械盘与SSD盘的对比

1 无论是SSD还是机械盘,随机读写IO的效率都远远低于顺序读写IO

1 对于机械盘,随机读写IO会增加更多的盘片旋转和磁头寻道时间

2 对于SSD硬盘,随机读写IO会造成的大量的垃圾回收(垃圾需要先擦除回收然后再进行写入)

2 机械硬盘的基本单位是扇区(通常是512字节) SSD硬盘的基本单位是页(通常是4K 8K)

3 SSD对比机械盘最大的优势就是没有寻道时间,对于机械盘消耗时间最大的也就是寻道时间

4 SSD本身有写入次数限制(寿命),还有写磨损问题 这个需要注意,一般服务器情况下都是SSD+机械硬盘混合搭配

三 linux系统的算法

CFQ 完全公平调度器,为每个进程都创建不同的IO调度队列,并按照时间片来平均分配每个进程的IO请求,常用于多进程的场景

DEADLINE 为读写请求分别创建不同的IO队列,并保证最先到达deadline的请求会被优先处理,常用于数据库场景,能提高机械磁盘的吞吐量

NOOP    是一个先入先出的队列,只做一些合并IO的操作,适合SSD

四 文件系统层

选择xfs或者ext4文件系统,推荐xfs

五 mysql角度

控制脏页刷新

1 innodb_flush_neighbors 设置为0 关闭该特性

2 innodb_io_capacity 脏页刷新数量,建议设置为iops的60%,如果设置的过低,会限制tps的能力,如果设置的过高,会加大磁盘io的压力,因为一次性刷新的脏页数量会多

3 调整redo log大小,建议单个redo大于1G,增加多个redo文件,防止出现写磨损问题

4 调整 innodb_max_dirty_pages_pct 脏页占用比,进行调低. nnodb_max_dirty_pages_pct和  innodb_io_capacity 进行合理搭配调节

参数说明

当刷新一个脏页时,innodb存储引擎会检测该页所在区(extent)的所有页,如果是脏页,那么一起进行刷新,这样做能合并多个IO,减少硬盘压力

建议 机械硬盘开启 SSD硬盘关闭

六 压测

1 压测磁盘组的随机读写能力

fio -filename=/data/d.txt -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=1500M -numjobs=40 -runtime=10 -group_reporting -name=mytest

关心参数

read and write的iops

2 通过压力测试得出服务器的最大承受值

请注意:util并不能真正反映磁盘组的整体性能,反过来,util值忙,代表磁盘繁忙程度,想要看磁盘压力

1  观察iowait.

2 观察磁盘的IOPS(w/s+r/s)

3 观察await

三 mysql角度

一 事务

1 写日志文件

1 流程 redo log+binlog 二阶段提交-> 写日志文件 顺序写

2 控制参数

innodb_flush_log_at_trx_commit = 1 控制redo log的磁盘刷新

sync_binlog = 1 控制binlog 的磁盘刷新

2 脏页刷新

1 将内存中改变的数据页刷新到磁盘中

2 控制参数

innodb_flush_neighbors 控制相邻脏页的刷新

innodb_io_capacity 控制脏页刷新的数量

innodb_max_dirty_pages_pct 脏页占用比

二 查询

1 慢语句

使用索引不当的慢sql查询会造成磁盘的繁忙,这种情况多出现在

1 大表的慢sql查询

2 表的主键碎片化也会造成大量的随机读,常见于uuid作为主键或者执行过大量更改的情况

3 单个慢sql出现在慢日志,慢sql本身受到影响(1 脏页刷新 2 日志刷新 3 并发sql查询)

2 并发语句

大量并发语句并发查询导致的磁盘繁忙情况

四  判断分析

磁盘没有到达瓶颈

1 根据上文提出的,要分析mysql哪一部分出了问题,日志刷新->脏页刷新->慢日志,根据某一个环节进行优化

磁盘到达瓶颈

1 mysql慢日志出现了很多不该出现的慢日志语句,通常表现在扫描行数很少,单体执行很快

2 监控图的iops经常性报警,尤其是在业务高峰期,由于IO限制导致的负载升高,iowait值很高

解决办法:1 拆分业务 2 做读写分离 3 升级硬盘,采用ssd硬盘

五 补充

分析数据库的IO问题 可以采用 pt-ioprofile定位文件信息

mysql 与linux ~ 内存分析与调优

一 简介:linux内存和mysql二 分类   1 用户空间和内核空间      用户空间内存,从低到高分别是五种不同的内存段      1 只读段 包含代码和常量等      2 数据段 包含全局 ...

linux性能分析及调优

第一节:cpu 性能瓶颈 计算机中,cpu是最重要的一个子系统,负责所有计算任务: 基于摩尔定律的发展,cpu是发展最快的一个硬件,所以瓶颈很少出现在cpu上: 我们线上环境的cpu都是多核的,并且基 ...

linux性能调分析及调优

转:https://blog.csdn.net/luokehua789789/article/details/53007456 Linux 性能分析以及调优介绍 写在前面:计算机要解决的基本问题之一是 ...

linux 内核参数VM调优 之 参数调节和场景分析

1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时 ...

(转)linux IO 内核参数调优 之 参数调节和场景分析

1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时 ...

linux概念之性能调优

目前,对系统进行性能调试的工具有很多,这些可以两大类:一类是标准的分析工具,即所有的UNIX都会带的分析工具: 另一类是不同厂商的UNIX所特有的性能分析工具,比如HP-UX就有自己的增值性能分析工具 ...

MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》

最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...

MySQL管理之道:性能调优、高可用与监控》迷你书

MySQL管理之道:性能调优.高可用与监控>迷你书 MYSQL5.5.X主要改进 1.默认使用innodb存储引擎2.充分利用CPU多核处理能力3.提高刷写脏页数量和合并插入数量,改善I/O4. ...

x86服务器中网络性能分析与调优 转

x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 ...

随机推荐

(转)java中的进程与线程

(转自地址http://www.ibm.com/developerworks/cn/java/j-lo-processthread/) Java 进程的建立方法 在 JDK 中,与进程有直接关系的类为 ...

学习mongo系列(十一)关系

准备工作:首先在maxh数据库的address集合中先插入数据 > db.address.insert({child_address:"gansu"}) WriteResul ...

数据库连接池dbcp基本配置

DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包: com ...

C语言之将无符号字符型转化为ascii码值

这个宏是在linux内核中获取的,主要的功能是能够将一个无符号字符型的参数转化为ASCII码值. ASCII : ASCII 编码里包括了128个字符.用 十进制 0  到 127 来表示 .那就对了 ...

Mybatis中sql语句中的in查询,判断null和size为0的情况

不严谨的写法,可能会报错:in (),这种情况不符合SQL的语法,导致程序报错. 如果简单只做非空判断,这样也有可能会有问题:本来in一个空列表,应该是没有数据才对,却变成了获取全部数据! 所以一个比 ...

Eclipse创建Dynamic Web部署

Eclipse创建Dynamic Web部署 http://blog.csdn.net/sweblish/article/details/6686046 Eclipse3.x中热部署项目,启动错误问题 ...

JAVA GC优化入门

为什么需要优化GC? JAVA的GC是面试必考的题目,可是在实际项目中什么时候使用GC哪?或者应该什么时候优化GC哪?有句名言:“GC优化永远是最后一项任务”. 在使用GC之前,应该考虑一下进行GC的 ...

BZOJ2957: 楼房重建(线段树&LIS)

2957: 楼房重建 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 3727  Solved: 1793[Submit][Status][Discus ...

#define 与 typedef

1.#define:预编译指令,在预编译的时候,进行文本替换. 2.typedef:编译时处理,为类型取一个别名. 3.#define与typedef的顺序是相反的,记住typedef就行了.type ...

「小程序JAVA实战」小程序我的个人信息-注销功能(42)

转自:https://idig8.com/2018/09/06/xiaochengxujavashizhanxiaochengxuwodegerenxinxi-zhuxiaogongneng40/ 注 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arm与linux的些许问题,《ARM与Linux些许问题》第一章:ARM工作模式

早期的ARM核有状态(ARM或Thumb)切换(通过BX等指令修改CPSR寄存器(当前程序状态寄存器,存放条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息)中T的控制位完成程序状态的切换),现在ARM都只使用Thumb状态了。所以&#…

c语言给定一个字符串匹配,使用C语言解决字符串匹配问题的方法

最常想到的方法是使用KMP字符串匹配算法&#xff1a;#include #include #include int get_nextval(char *pattern,int next[]){//get the next value of the patternint i 0,j -1;next[0] -1;int patlen strlen(pattern);while ( i < patlen - 1){if ( j -1 || pattern…

c语言比较大小 谁大选谁,C语言比较优先级

满意答案wanggq2222018.03.14采纳率&#xff1a;42% 等级&#xff1a;7已帮助&#xff1a;57人#pragma once#include#include#include #includeusing namespace std;typedef struct SymKeyVal{string key;int val;};static SymKeyVal KeyValTable[]{{"",0},{"…

c语言ip地址吗,C语言:判断IP地址是否合法

int is_valid_ip(const char *ip){int section 0; //每一节的十进制值int dot 0; //几个点分隔符int last -1; //每一节中上一个字符while(*ip){if(*ip .){dot;if(dot > 3){return 0;}if(section > 0 && section <255){section 0;}else{retur…

10100的素数c语言程序,C语言基础题目及代码.doc

/*读入一个自然数n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。输入格式&#xff1a;每个测试输入包含1个测试用例&#xff0c;即给出自然数n的值。这里保证n小于10100。输出格式&#xff1a;在一行内输出n的各位数字之和的每一位&#xff0c;拼…

c语言闰年的判断条件DS1302,DS1302驱动程序(平年和闰年天数自动调整)

/*********************************************************************************1.本程序能够显示年&#xff0c;月&#xff0c;日&#xff0c;时&#xff0c;分&#xff0c;秒&#xff0c;星期七个参数.2.时间和日期可调。可分别完成年&#xff0c;月&#xff0c;日&am…

android 图片切割代码,Android用clip剪切图像资源

使用clip剪切图像资源可以做进度条&#xff0c;图像慢慢展开的效果&#xff0c;他使用以下几个属性来控制效果&#xff1a;android:drawable&#xff1a;指定要剪切的原图像。android:clipOrientation&#xff1a;截取的方向。可取的值&#xff1a;horizontal和vertical。分别表…

android gradle错误,Android studio gradle错误与顶级异常

我最近更新了我的Android Studio,从那以后我的项目没有构建...我得到错误,如下面的错误:Error Code:1Output:UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dx.cf.iface.ParseException:class name (org/pervasivesystems/mobilehealth/activities/AppSettingsActivity$AppSetti…

Android中列表动态删除item,如何删除Android ExpandableListView中某个group item的child item?...

自定义了一个expandablelistview 想要删除其中的子项list使用remove方法把list中的指定项删除了11-09 21:04:20.585: I/MainActivity(13557): childData[{child_textsecond}, {child_textthird}]但是在expandablelistview界面显示中&#xff0c;并没有变化,并且还有list溢出报错…

android 首页广告显示不出来的,android – Admob插页式广告(全屏)不会显示

您没有为interstitialAd调用loadAd().广告插播广告应在您展示广告之前加载.interstitialAd.loadAd(adRequest);你也应该在调用show()之前检查它是否已加载.它可能无法立即使用,您可能希望在调用show之前提前加载它.if(mInterstitial.isLoaded()){mInterstitial.show();AdReques…

android新建项目错误,新建Android项目出错

新建Android项目出以下的错误&#xff1a;C:\Users\txxs\workspace\4sd\res\values\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name Theme.AppCompat.Light.[2016-11-23 11:57:46 - 4sd][2016-11-23 11:57:46 - 4sd] …

android 图片 切换,Android 应用开发笔记 - 切换图片(ImageSwitcher)

在面板拖拽图标&#xff0c;然后更改相关属性(Properties)&#xff0c;如下&#xff1a;android:id"id/imgSwit01"android:layout_width"wrap_content"android:layout_height"wrap_content" />ImageSwitcher使用的是setFactory()方法&#xf…

android layout.inflater,Android - LayoutInflater

在实际开发中LayoutInflater这个类还是非常有用的&#xff0c;它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件&#xff0c;并且实例化&#xff1b;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作…

android preferenceactivity 源码,PreferenceActivity PreferenceScreen (3.0/API 11 以前)

Android提供了一个XML驱动的框架&#xff0c;用于为应用程序创建系统样式的PreferenceScreen.(3.0/API 11 以前)是这样使用的看代码&#xff1a;mypreference.xmlandroid:key"PREF_AUTO_REFRESH"android:defaultValue"true"android:summary"select to…

wps 将html转为word,用WPS快速将网页内容转换为WORD文档

当过学生的都知道&#xff0c;有时查找资料&#xff0c;看到图文并茂的网页想要把它Copy在WORD文档中&#xff0c;那么图片和文字相互参杂&#xff0c;想要保存下来很复杂&#xff0c;但是如果用WPS的话&#xff0c;一切就会很简单的&#xff0c;下面来看看WPS是怎么办到的。1.…

鸿蒙明年可以在手机上用吗,华为王成录:鸿蒙已满足在手机上使用,明年一二月份向部分用户开放...

在2019年的华为开发者大会上&#xff0c;华为消费者业务CEO余承东正式对外发布了基于微内核的分布式操作系统-HarmonyOS(鸿蒙OS)&#xff0c;余承东表示&#xff0c;鸿蒙OS的出发点和Android、iOS都不一样&#xff0c;它是一款全新的基于微内核的面向全场景的分布式操作系统&am…

go语言 doc转换html,go语言使用wkhtmltopdf工具将html转成pdf

最近收到网友的提问后端怎么把html转成pdf文件&#xff0c;于是我就把我以前做的例子发出来给大家参考一下&#xff0c;如果对你有帮助的话请点个赞1.首先选择适合自己的系统下载wkhtmltopdf工具mac下载后安装成功会自动添加到环境变量 直接执行 wkhtmltopdf -V 测试是否安装成…

java sound 多线程同一音频文件_Java在编程语言中占据何等优势?

现在是信息时代&#xff0c;出现了各种各样的行业&#xff0c;在这些众多行业里面&#xff0c;程序员算是高薪职业。在国内程序员的薪水要比其他行业高一些。也正是如此高薪的诱惑和充满挑战性的工作&#xff0c;令程序员近几年来成为了备受欢迎的职业。程序员日常的工作大多是…

dlna和miracast可以共存吗_高考化学必备之离子共存问题

发生复分解反应&#xff11;、有气体产生。H与CO32ˉ、HCO3ˉ、SO32ˉ、HSO3ˉ、S2ˉ、HSˉ等不能共存如CO32-、S2-、HS-、HSO3-、等易挥发的弱酸的酸根与H不能大量共存&#xff0c;主要是由于CO32-&#xff0b;2H&#xff1d;CO2↑&#xff0b;H2O、HS-&#xff0b;H&#xff…

html向上浮动的方式,JS 实现Div向上浮动的实现代码

Html 及 JS 代码如下&#xff1a;复制代码 代码如下:style"position: absolute; width: 100px;">我们var newsOne document.getElementById("newsOne");newsOne.style.bottom 0;newsOne.style.left window.screen.availWidth - 100;var bottom 0;fu…