巧用pt-ioprofile 工具

一、描述

生产系统数据库性能压力比较大,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/[email protected]/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的价值~

时间: 2024-11-09 00:57:03

巧用pt-ioprofile 工具的相关文章

巧用网页开发者工具F12 审查、修改元素、去除广告、屏蔽遮罩

每当打开一个网页的时候,是否为页面有很多广告而烦恼:是否为要操作页面(例如观看超清视频),请先注册登录等等事情而麻烦:是否对网页加锁的视频懊恼?今天为大家分享一个技巧,本文只提供思路,更多好玩有趣的东西有待朋友们开发! 不过也要提醒开发者在做遮罩层的时候注意这些问题! 好了切入正题,先说某某学院视频,如图,视频本身是加锁的,点击会弹出登录框! 这时候要做的就是 F12打开开发者工具,找到弹出层的元素然后将其display:none:这样比较麻烦是吧,还有更简单的一种方法,笔者用的是UC流浪器,右

巧用命令行工具UCloud CLI,轻量操作API管理云资源

截止目前,UCloud已提供Python/Java/Golang等不同语言的API SDK.为进一步降低用户的运维人力投入,又推出了基于Golang SDK的命令行工具CLI(Command Line Interface),提供轻量化的API命令行调用方式,并在GitHub开源(https://github.com/ucloud/ucloud-cli).CLI的命令行交互方式更符合研发运维的操作习惯,并且一些典型使用场景通过CLI也更容易代码化的沉淀和维护. 下面是一些用户遇到的实际场景, 用C

巧用第三方开源工具trash-git放置linux误删除文件

#!/bin/sh environment_python(){ yum -y install python echo "python OK "  } environment_git(){ yum -y install git echo "git OK" } get_from_github(){ cd /root/ git clone https://github.com/andreafrancia/trash-cli.git echo "Download 

mysql主从一致性校验工具-pt

一.环境 1.系统环境 系统 IP 主机名 说明 server_id centos6.7 MasterIP master 数据库:主 177  centos6.7 SlaveIP slave 数据库:从 148 2.软件环境 软件 版本 安装方式 说明 pt工具 3.0.4 编译安装 这是一个综合工具包,包含很多pt命令 mysql数据库 5.6.37 yum安装 主从环境 3.需要用到库 库名 表名 用途  percona checksums 存储pt命令监测的结果,第一次执行检测命令时会自己

### mysql系统结构_3_Mysql_Learning_Notes

mysql系统结构_3_Mysql_Learning_Notes 存储层,内存结构 全局(buferpool) 只分配一次 全局共享 连接/会话(session) 针对每个会话/线程分配 按需动态分配,查询结束后释放 用于处理(缓冲,中转)查询结果 每个会话的缓冲区大小都不一样 mysql 内存占用主要分层情况 引擎层(内存部分): innodb buffer innodb log buffer key buffer(是myisam使用,具体参数为myisam_sort_buffer_size)

PS教程1000例

http://www.missyuan.com/thread-446934-1-1.html Photoshop绘制逼真头发发丝效果http://www.missyuan.com/thread-446912-1-1.html Photoshop合成在空中漂移的陆地http://www.missyuan.com/thread-446909-1-1.html Photoshop制作漂亮的紫色水晶字效果http://www.missyuan.com/thread-446908-1-1.html Pho

NVelocity

迭代内置对象:  velocityCount 集合数   :  count NVelocity遇到不能处理的引用时,一般会直接输出标签名称. 在$符号后加个!号,出现Null时,标签的内容就会显示空白. 如:$title   改写成:$!{title} /// <summary>    /// 黎巧    /// 2012-04-25    ///  NVelocity模板工具类 VelocityHelper    /// </summary>    public class NV

Objective-c 内存溢出问题经验汇总

iOS平台的内存使用引用计数的机制,并且引入了半自动释放机制:这种使用上的多样性,导致开发者在内存使用上非常容易出现内存泄漏和内存莫名的增 长情况: 本文会介绍iOS平台的内存使用原则与使用陷阱: 深度剖析autorelease机制:低内存报警后的处理流程:并结合自身实例介绍内存暴增的问题追查记录以及相关工具的使用情况:iOS平台内存常见问题作为iOS平台的开发者,是否曾经为内存问题而苦恼过?内存莫名的持续增长,程序莫名的 crash,难以发现的内存泄漏,这些都是iOS平台内存相关的常见问题:本

MySQL 一些内部原理

1. MySQL 体系结构 如下图: Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的(SQL Interface. Parser. Optimizer.Caches&Buffers.Pluggable Storage Engines) Connectors指的是不同语言中与SQL的交互 Management Serveices & Utilities: 系统管理和控制工具,例如备份恢复.Mysql复制.集群等 Connection Pool: 连接池:管理缓冲用户连接.用户

pt(Percona Toolkit)工具详解:(一)安装

pt(Percona Toolkit)工具是由Percona公司开发的一个用perl语言编写的工具集,包含很多功能,例如在线更改数据表结构,校验主从数据,检查数据库状态,分析慢查询等这些靠人手做起来比较麻烦的事情,功能强大,操作简单. 安装 既然是perl语言开发的工具集,那当然是先安装perl相关依赖包了 yum install -y perl perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl-Digest-MD5 然后,就到下面这个