巧用pt-ioprofile 工具

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、描述

     生产系统数据库性能压力比较大,cpu iowait 40%~50% ,数据库系统登录难。需要查出来是什么进程导致的,最好是找到是什么文件引起的。


二、操作过程

1.因为是数据库系统,很容易知道是mysqld引起的,使用glances系统工具。



2. pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。通过ps aux|grep mysqld 找到 mysqld进程对应的进程号,通过pt-ioprofile查看哪个文件的IO占用时间最多,对于定位问题更有用的是通过IO的吞吐量来进行定位。使用参数 --cell=sizes,该参数将结果已 B/s 的方式展示出来:

# ps -ef|grep mysql

# pt-ioprofile --profile-pid=113106 --cell=sizes


Mon May 15 13:48:36 CST 2017

Tracing process ID 113106

     total                     pread       read               pwrite      write      fsync       open      close      lseek  ftruncate filename

2032296082          0               3424256          0             146          0              0            0             2028871680          0 /data/disk1/mysqllogs/relay-bin.002231

 486457344         482263040          0    4194304          0          0          0          0          0          0 /data/disk1/mysqldata/dcs@002dpartition/t_warn_info_history#P#p201705.ibd

 148111360         540672          0  147570688          0          0          0          0          0          0 /data/disk1/mysqldata/ibdata1

  19590656            0          0   19590656          0          0          0          0          0          0 /data/disk1/mysqldata/ib_logfile0

   6725632          0     162765          0          0          0          0          0    6562867          0 /data/mysqllogs/relay-bin.002231

   3429905          0          0          0    3429905          0          0          0          0          0 /data/disk1/mysqllogs/mysql-bin.000431

     35824          0          0          0      17912          0          0          0      17912          0 /data/disk1/mysqldata/innodb_status.113106

     32768      32768          0          0          0          0          0          0          0          0 /data/disk1/mysqldata/mysql/slave_master_info.ibd

       561          0         66          0          0          0          0          0        495          0 /data/mysqllogs/relay-bin.index

       448          0          0          0        448          0          0          0          0          0 /data/mysqllogs/relay-bin.002232

       314          0          0          0        314          0          0          0          0          0 /data/disk1/mysqllogs/error.log

         0          0          0          0          0          0          0          0          0          0 /data/mysqllogs/relay-bin.~rec~

         0          0          0          0          0          0          0          0          0          0 /data/mysqllogs/relay-bin.index_crash_safe

         0          0          0          0          0          0          0          0          0          0 /data/mysqllogs/

         0          0          0          0          0          0          0          0          0          0 /data/disk1/mysqllogs/relay-bin.index


通过上面很容易发现是因为复制引起的性能问题,进一步再去查看复制状态即可,结合业务分析为什么会出现周期性的插入波峰。

最终处理只是修改了数据库的个别参数,主要是内存相关的参数,明天需要继续观察。本来计划要升级一下系统配置,如果通过分析修改数据库、系统系统参数解决了此问题。那么才能体现DBA的价值~










本文转自 roidba 51CTO博客,原文链接:http://blog.51cto.com/roidba/1925986,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
敏捷开发
【sgCreateTableColumn】自定义小工具:敏捷开发→自动化生成表格列html代码(表格列生成工具)[基于el-table-column]
【sgCreateTableColumn】自定义小工具:敏捷开发→自动化生成表格列html代码(表格列生成工具)[基于el-table-column]
|
3月前
|
容器
追悼日网站自动变为黑白(解决filter导致的absolute和fixed定位问题)
这篇文章介绍了如何解决在网站页面上使用`filter: grayscale(100%)`导致布局问题的方法,建议将`filter`属性应用在`html`根元素上,以避免影响`absolute`和`fixed`定位的元素。
追悼日网站自动变为黑白(解决filter导致的absolute和fixed定位问题)
|
SQL 关系型数据库 测试技术
软件测试|SQL TOP提取顶部数据该如何使用?
软件测试|SQL TOP提取顶部数据该如何使用?
96 0
|
PHP 流计算 开发者
在PhpStorm中使用PSR2编码规范phpcbf脚本自动修正代码格式
在PhpStorm中使用PSR2编码规范phpcbf脚本自动修正代码格式
190 0
在PhpStorm中使用PSR2编码规范phpcbf脚本自动修正代码格式
|
Go 开发者
break 注意事项和细节说明 | 学习笔记
快速学习 break 注意事项和细节说明
break 注意事项和细节说明 | 学习笔记
|
API Python
Python 3,4行代码实现去除图片背景色,从此告别PS!!
Python 3,4行代码实现去除图片背景色,从此告别PS!!
739 0
Python 3,4行代码实现去除图片背景色,从此告别PS!!
|
存储 NoSQL C#
基于C#的ArcEngine二次开发44: GDB矢量文件检查结果导出GDB/SHP的思路分析
基于C#的ArcEngine二次开发44: GDB矢量文件检查结果导出GDB/SHP的思路分析
|
前端开发
前端工作小结46-代码之解析position 解决
前端工作小结46-代码之解析position 解决
92 0
前端工作小结46-代码之解析position 解决
|
Web App开发 移动开发 前端开发
巧用 display: contents 增强页面语义
巧用 display: contents 增强页面语义
391 1
int a=6;a+=a-=a*a; printf(“%d\n“,a);过程讲解(带图,易懂)
int a=6;a+=a-=a*a; printf(“%d\n“,a);过程讲解(带图,易懂)
257 0
int a=6;a+=a-=a*a; printf(“%d\n“,a);过程讲解(带图,易懂)