使用dstat命令的插件查看mysql的io状态

时间:2023-03-23 22:58:20

使用dstat竟然还可以查看mysql的状态, man dstat之后发现的,原来在/usr/share/dstat目录下藏有很多python脚本作为插件帮助dstat搜集各类信息。

不过通常有可能会

如果你执行dstat --mysql5_io 出现了

Module dstat_mysql5_io failed to load. (No module named MySQLdb)

那么你可能需要安装python-mysqldb来使用python driver连接mysql.

安装方法: sudo apt-get install python-mysqldb, 或者pip install

如果依然出现问题,那可以尝试使用自己编写的python脚本来查看失败的详细原因:

import MySQLdb
MySQLdb.connect(user=mysql_user, passwd=mysql_pwd)

比如我这里出现了:

_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

这是由于我的mysql已经启动且安装 配置都是自定义的,因此需要查看下连接sock地址, 可以使用如下命令查看

lsof -p PIDofMySql

打开/usr/share/dstat目录下的dstat_mysql5_io.py

根据lsof结果修改以上代码为:

self.db = MySQLdb.connect(user=mysql_user, passwd=mysql_pwd,db="redmine", unix_socket="/opt/mysql/tmp/mysql.sock")

上述socket地址根据你自己的情况定义。

创建脚本,自动运行

#!/bin/bash

export DSTAT_MYSQL_USER='root'
export DSTAT_MYSQL_PWD='111111' dstat --mysql5-io $@

运行结果为:

使用dstat命令的插件查看mysql的io状态