设为首页 收藏本站
查看: 1051|回复: 0

[经验分享] MySql语句性能问题定位--从sql语句到磁盘IO检查

[复制链接]

尚未签到

发表于 2018-10-17 13:09:22 | 显示全部楼层 |阅读模式
  一、背景
  本文只针对IO导致MySql性能问题的定位,其他如CPU、MySql参数配置、程序自身等问题需要进一步补充。原因某条sql建表语句运行了15秒
  二、步聚
  Step1:
  开启profiling
SET profiling =1;  关闭
SET profiling =off;  找到运行慢的sql语句ID
show profiles;  查看sql语句CPU/IO等耗时具体的量化数据
show profile CPU,SWAPS,BLOCK IO,MEMORY,CONTEXT SWITCHES,IPC,PAGE FAULTS,SOURCE forquery 39;
DSC0000.jpg DSC0001.jpg

  结论:
  从上图可见CPU耗时不多,反而IO操作占了大部分的耗时。下面让我们来找出服务器的哪些进程在占用IO资源。
  Step2:
  查看服务器linux IO:
iostat -x 1
DSC0002.jpg


  找出哪些进程在疯狂的进行IO操作:

  •   iotop
DSC0003.jpg

  结论:
  发现磁盘的读写都很高,而且svctm与await相差很大。
  1,await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。
  2,%util项的值也是衡量磁盘I/O的一个重要指标,%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。
  所以,确实是磁盘高IO操作,导致sql性能问题。而且是mysql本身IO特别高。
  Setp3:
  使用pt-ioprofile,查出哪些文件的IO操作高。命令如下,
  下载连接:https://www.percona.com/doc/percona-toolkit/2.2/installation.html
yum install  percona-toolkit-2.2.17-1.noarch.rpmpt-ioprofile --profile-pid=44937 --cell=sizes


  总结:
  从上图可以看出,数据库中,某些表的读写操作是造成IO一直很高的主要原因,并严重影响了sql的查询性能。
  定位到具体某个表、文件之后,就可以采取相应措施了。可以更换磁盘设备,使用更快的SSD磁盘,结合程序读写规则,选择合适的磁盘文件系统类型,或者从程序本身进行优化。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-622838-1-1.html 上篇帖子: Sql2000事件探查器跟踪数据失败解决办法 下篇帖子: SQL语句更改数据库名,表名,列名
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表