巧用pt-ioprofile 工具

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

一、描述

     生产系统数据库性能压力比较大,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,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
SQL 关系型数据库 测试技术
软件测试|SQL TOP提取顶部数据该如何使用?
软件测试|SQL TOP提取顶部数据该如何使用?
63 0
|
10月前
|
存储 Linux C语言
嵌入式linux下的c语言简易日志log模块,带颜色显示(一)
嵌入式linux下的c语言简易日志log模块,带颜色显示(一)
基础刷题--打印‘ X ’图形
行数受n控制,每行又进行先打印空格,再打印*再打印空格。不过这种方法实在啰嗦。我们换个角度思考,这个其实是个正方形,小点点代表一个位子,那 就是正方形的对角线,
53 0
|
PHP 流计算 开发者
在PhpStorm中使用PSR2编码规范phpcbf脚本自动修正代码格式
在PhpStorm中使用PSR2编码规范phpcbf脚本自动修正代码格式
154 0
在PhpStorm中使用PSR2编码规范phpcbf脚本自动修正代码格式
|
API Python
Python 3,4行代码实现去除图片背景色,从此告别PS!!
Python 3,4行代码实现去除图片背景色,从此告别PS!!
610 0
Python 3,4行代码实现去除图片背景色,从此告别PS!!
|
Web App开发 移动开发 前端开发
巧用 display: contents 增强页面语义
巧用 display: contents 增强页面语义
334 1
|
机器学习/深度学习 移动开发
如何写RN样式 如何写RN组件 如何满屏 如何使用变量
如何写RN样式 如何写RN组件 如何满屏 如何使用变量
int a=6;a+=a-=a*a; printf(“%d\n“,a);过程讲解(带图,易懂)
int a=6;a+=a-=a*a; printf(“%d\n“,a);过程讲解(带图,易懂)
218 0
int a=6;a+=a-=a*a; printf(“%d\n“,a);过程讲解(带图,易懂)

热门文章

最新文章