熟悉Linux的同学都很喜欢top命令,可以让我们很方便快捷的一键获取系统运行状态。除了系统状态,很多人可能也希望能一键获得数据库的运行状态,很多人会用show profile或者performance_schema数据库获取各种信息。但是很方便和直接。本文虫虫给大家介绍一个命令行工具ps-top,可从MySQL 5.6+的performance_schema数据库中收集信息,并使用该信息实时显示服务器负载。数据以表或文件名显示,实时显示在选择,插入,更新或删除活动时候信息情况;视图显示用户活动,显示使用相同用户名连接的不同主机的数量以及这些用户的活动视图;关于互斥、锁表和sql阶段计时的统计信息视图。

安装

和一般的golang工具一样,ps-top安装很简单,直接用go get就可以下载、编译,安装好:

go get -u github.com/sjmudd/ps-top/cmd/ps-top或go get -u github.com/sjmudd/ps-top/cmd/ps-stats

这样就会直接安装下载工具及其依赖项,安装后的二进制文件在$GOPATH/bin/目录。如果该路径在系统PATH设置中,则无需指定任何特定路径即可直接运行程序。

访问MySQL

可以通过以下方法之一访问MySQL:

默认使用文件~/.my.cnf。

制定cnf文件,通过--defaults-file=/path/to/.my.cnf。

使用--host=somehost --port=999 --user=someuser --password=somepass连接到主机

通过本机socket连接 --socket=/path/to/mysql.sock --user=someuser --password=somepass

如果未指定,则用户默认为的内容$USER。如果未指定端口,则默认为3306。

可以通过命令行选项--use-environment ps-top或者ps-stats,则在环境变量中查找MYSQL_DSN的账号信息去连接Mysql。MYSQL_DSN格式为式:user:pass@tcp(host:port)/performance_schema

这样就避免在命令行中直接显示账号和密码,防止信息泄露。

MySQL/MariaDB配置

performance_schema数据库必须配置为支持ps-top。默认情况下,在MySQL上会启用此功能。MariaDB> = 10.0.12上则禁用此功能。因此,需额外配置启用,在/etc/my.cnf中,设置:

performance_schema = 1

然后重新启动MariaDB才能生效。

ps-top和ps-stats需要问performance_schema表的SELECT权限。如果无法访问所需表,它们将不会运行。

setup_instruments:查看mutex_latency或stages_latency 根据需要修改改配置,保证用户有权限执行此操作。如果服务器,--read-only或者没有足够的权限来更改这些表,则这些视图可能为空。如果在启动时成功更新了表,则停止ps-top之前,该setup_instruments配置会将其恢复为原始设置。

视图

ps-top和ps-stats可以显示7个不同的数据视图,这些视图默认情况下每秒更新一次。这7个视图为:

table_latency:表等待执行操作的时间显示活动。

table_ops:按MySQL执行的活动数显示活动。

file_io_latency:显示MySQL在文件I/O上花费的时间。

table_lock_latency:根据表锁显示顺序

user_latency:根据用户运行查询的时间或用户与MySQL的连接数显示排序。它提供了一些信息,还显示了总的空闲时间,因为这表明可能有过长的空闲查询,如果有堆积,这里的值之和可能很有趣。

mutex_latency:按互斥锁延迟显示排序。

SQL Stages_latency:在不同的SQL查询阶段中按时间显示排序。

可以更改轮询间隔并在模式之间进行切换。

快捷键

在ps-top模式下,以下按键可以让ps-top在不同模式浏览或更改其行为。

h ?:显示帮助。

· 将轮询间隔减少1秒(最少1秒)

+ 将轮询间隔增加1秒

q-退出

t:在显示自重置ps-top开始以来显示统计信息或您显式重置它们(使用'z')[REL]或显示从MySQL收集的统计信息之间切换[ABS]。

z:重置统计信息。那就是您看到的与"重置"统计信息有关的计数器。

:更改显示模式:延迟,操作,文件I/O,锁定,用户,互斥,阶段和存储模式。

左箭头:切换到上一个屏幕

向右箭头:切换至下一个屏幕

标准输出模式

ps-stats和,ps-top都具有与相同的视图输出,会定时发送到stdout。默认视图为table_io_latency。可以使用与vmstat相同的方法来调整收集间隔和收集数据的次数。第一个参数是delay(默认为1秒),第二个参数是要进行的迭代次数,如果未提供,则为一直运行。该模式旨在用于使用stdout作为输出媒体来监视ps-top并从中收集数据。

相关的命令行选项包括:

--count= 限制迭代次数(默认值:永久运行)

--interval= 设置默认轮询间隔(以秒为单位)

--limit= 限制输出的行数(不包括标题)

--stdout 将输出发送到stdout(不是屏幕)

--view= 确定要在ps-时查看的视图顶部开始(默认:table_io_latency)可能的值:table_io_latency,table_io_ops,file_io_latency,table_lock_latency, user_latency,mutex_latency和stages_latency。

--totals 仅显示总计行,而不显示明细。

总结:

本文我们介绍了一个golang撰写的命令行工具,用来以top形式方式很方便的获取Myql的一些运行状态,适合广大运维和DBA作为一个称手的工具,大家也可以作为golang语言学习范例项目。

mysql 执行计时_ps-top 用于MySQL的数据库top工具相关推荐

  1. mysql执行计划命令_【MySQL】EXPLAIN命令详解--解释执行计划

    具体参考: 原文如下: 在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索 ...

  2. MySQL执行原理,逻辑分层、更改数据库处理引擎

    背景 用了那么长时间的MySQL,sql语句相信早已烂熟于心,于是,我就试着去了解它的执行原理,以下是我学习过程中的总结要点. 只要是B/S架构,都是会有客户端与服务端,mysql也不例外. 首先客户 ...

  3. mysql执行计划id相同_MySQL|MySQL执行计划

    原标题:MySQL|MySQL执行计划 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈. explain执 ...

  4. php+mysql执行sql文件路径_PHP———MySQL笔记(5)之MySQL数据库导出导入sql文件(详细)...

    MySQL数据库的导入和导出 目录 MySQL数据库的导出 MySQL数据库的导入 内容 在数据库导出之前,先讲一下用户权限问题 1.什么是MySQL用户? 就是我们安装好MySQL数据库服务器之后, ...

  5. aws mysql 升级_AWS最新核心武器:升级主数据库转换工具

    [IT168 资讯]如今,AWS不仅在公有云市场中是领军地位,在数据库市场市场中,特别是Oracle商店中同样赢得客户认可.4月16日,AWS公共云提供商在这场战斗中有一个新的武器 :一个升级的主数据 ...

  6. mysql执行语句_实时查看MySQL执行的语句

    我们在追查MySQL问题和性能调优时,有时希望看到当前都有哪些命令正在被执行,让我们迅速找到热点命令.下面我们就来介绍下如何查看当前正在执行的MySQL语句. 日志LOG 我们之前在 用service ...

  7. mysql 执行计划不对_关于mysql主从查询执行计划不一致问题的分析

    最近面试过程中被面试官抛了一个问题,说曾经有一个线上出现的奇怪的问题,主库和从库各种配置是一致的,当数据量比较大的时候,某些时候同样的查询,在从库里的执行计划执行成功了,而主库里没有执行这个执行计划, ...

  8. mysql执行计划查看_查看Mysql执行计划

    1.MySQL语法 MySql提供了EXPLAIN语法用来进行查询分析,在SQL语句前加一个"EXPLAIN"即可. 默认情况下Mysql的profiling是关闭的,所以首先必须 ...

  9. mysql执行的list_CMD如何进入Mysql命令并执行相关查询

    这篇文章主要分享Windows下cmd如何进入mysql命令并执行相关查询,这里我们以查询数据库连接数为例,并且mysql安装在C盘根目录,步骤如下: 一.运行-打开CMD,输入c:\mysql\my ...

最新文章

  1. BZOJ1922: [Sdoi2010]大陆争霸
  2. thinkphp 3.2加载类
  3. PAT甲级1121 Damn Single :[C++题解]哈希表、结构体
  4. NYOJ练习题 删除元素(二分查找)
  5. php查询字段的总和,ThinkPHP 多表查询-如其字段A相同,则把字段B相加
  6. 中石油训练赛 - 数学问题(思维)
  7. vb中filecopy拷贝文件
  8. 一文说清ZooKeeper的实现原理
  9. PHP 中 call_user_func 的使用
  10. 95-910-150-源码-FlinkSQL-Flink SQL 的元数据管理
  11. VB禁用CTRL +ALT + DEL (2)
  12. 数据分析------数据处理(2)及 AutoML 学习
  13. MagicDraw-包图
  14. 数据总线,地址总线,存储容量计算题理解
  15. ubuntu16.04+cuda8.0安装pytorch
  16. Lucene(全文检索框架) 简单实例
  17. 上班时间如何偷偷刷抖音不被发现?教你一招搞定
  18. js中浏览器失焦获焦的几种结局方法
  19. ‘Converting circular structure to JSON‘报错的解决方案
  20. 香油和一个生鸡蛋,干咳偏方

热门文章

  1. 苹果“重心”转移,终端退位?
  2. 苹果或推出粉色款iPhone 13;用户超 8 亿,拼多多再超阿里;贝索斯将于7月5日卸任亚马逊CEO|极客头条...
  3. 几步教你用 Python 制作一个 RPA 机器人!
  4. 精通那么多技术,你为何还是受不到重用?
  5. Windows VS Linux,Linux或将成为最终赢家?
  6. 图解一致性哈希算法,看这文就够了!
  7. 厉害了!他是 Facebook 开国元老,30 分钟解决 Instagram 服务器挂机难题
  8. AI 又进阶!除了鉴别 PS 图片,还能一键卸妆!
  9. 搜狗发布全球首位 3D AI 主播,背后分身技术有玄机
  10. 牛!GitHub标星Python项目实战,附赠:学习图谱