熟悉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 pstop_ps-top 用于MySQL的数据库top工具相关推荐

  1. mysql mydumper_系统运维|Mydumper-MySQL数据库备份工具

    Mydumper 是 MySQL 数据库服务器备份工具,它比 MySQL 自带的 mysqldump 快很多.它还有在转储的同时获取远程服务器二进制日志文件的能力. Mydumper 的优势 并行能力 ...

  2. 正确加载MySQL驱动的语句_使用数据库客户端工具Oracle SQL Developer加载第三方驱动连接mysql的方法...

    用Oracle SQL Developer时遇到no ocijdbc11 in java.library.path怎么办 不是配置环境变量,而是去选项里面,添加数据库的驱动 jdbc的驱动没有在cla ...

  3. 好用的mysql数据库建模工具有哪些

    有很多好用的MySQL数据库建模工具,以下是一些常用的工具: MySQL Workbench:MySQL官方推出的免费数据库建模工具,支持创建.修改和维护MySQL数据库,同时还提供了可视化的建模和管 ...

  4. 扩展02 - 数据库可视化工具

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 数据库可视化工具 1.SQLyog 2.navcat 3.MySQL Workbench 4.dbeaver 5.datag ...

  5. top在mysql中的意思_数据库中top的用法

    数据库中top的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中top的用法的用法,希望对你们有用. 数据库中top的用法的用法如下: 在编写程序中,我们可能遇到诸如查询最热门的5篇文章或返回满 ...

  6. Mtop,Mysql Top,一个Mysql的监控工具

    mtop 实时监控 MySQL Requires the following perl modules: Module             Available At     ----------- ...

  7. 怎么抽象mysql数据库_一个用于mysql的数据库抽象层函数库

    一个用于mysql的数据库抽象层函数库 更新时间:2006年10月09日 00:00:00   作者: // // SourceForge: Breaking Down the Barriers to ...

  8. mysql的top命令参数_linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明...

    top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu.内存的使用)占用状况,类似于 Windows 的任务管理器.top命令的执行结果是一个 ...

  9. mysql数据库设计工具_四种优秀的数据库设计工具

    [51CTO.com快译]众所周知,良好的数据库设计能够大幅减少后期的运维工作,同时也能最大程度地减少软件项目出错的可能.由于我们所面临的真实项目需求往往五花八门,因此需要找到合适的设计工具,来实现事 ...

  10. 菜鸟的mysql高级进阶以及mysql数据库优化

    菜鸟的mysql高级进阶以及mysql数据库优化 说明 一.mysql的逻辑分层及存储引擎 (1)逻辑分层 (2)存储引擎 二.事务的ACID原则 三.数据库设计的三大范式 四.索引 (1)二叉树搜索 ...

最新文章

  1. HTML 框架 frameset,frame
  2. 在 VC6 中使用 GdiPlus-使用
  3. 交通预测论文笔记:Spatio-Temporal Graph Convolutional Networks: A Deep Learning Frameworkfor Traffic Forecast
  4. 从近两年的CVPR会议来看,目标检测的研究方向是怎么样的?
  5. jQuery-easyui和validate表单验证实例
  6. 文本怎么整体向左缩进_如何设置Word文档的左缩进或者右缩进呢?并在缩进区域输入文字...
  7. 企业用户福利来袭!腾讯三大研发管理产品集中亮相2018腾讯合作伙伴大会
  8. 浅析Page.LoadTemplate(模板)方法动态获取绑定模板后,通过FindControl获取服务端控件的方法。...
  9. java字符流写入式乱码_字节流乱码与字符流乱码
  10. 超低静态电流LDO稳压器选择要点
  11. tf.data.Dataset.from_tensor_slices
  12. 导致计算机重启的原因,电脑自动重启的原因分析
  13. 12-Web安全—基于SQL Server的报错注入——and,conver,cast
  14. 我只是个普通大学生,想进BAT究竟有多难?
  15. CAD软件中沿墙镜像功能的使用技巧
  16. 写一个用矩形法求定积分的通用公式,分别求 sinx在0-1上积分,cosx在0-1上积分,e^x在0-1上积分
  17. 新浪微博客户端 -- OAuth认证
  18. CAD梦想画图的浏览模式与绘图模式
  19. 内核与驱动_08_键盘驱动原理及代码
  20. 钉钉实现ISV特殊接口调用

热门文章

  1. python中ret是什么意思_数据结构图在python中的应用
  2. 渲染测试软件 d15,D5 Render(D5 渲染器)1.7.0 正式版发布 | 一款 RTX 实时光线追踪可视化实时渲染引擎,而且是国产软件!...
  3. 居然又要出一部关于程序员的剧!你会追么?
  4. 程序员的小天地:注释中的快乐
  5. Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】
  6. linux 查端口 三种,Linux查看端口常用的三种用例
  7. mysql 线上加索引_mysql手札,唯一索引引发的线上事故
  8. matlab第一类修正贝塞尔函数,bessel(第一类修正贝塞尔函数)
  9. php sina ip api,新浪调ip地址api
  10. mxnet makeloss