使用Mytop监视MySQL性能

・6 分钟阅读

介绍

Mytop是一个免费的基于控制台的工具,用于监视MySQL的性能,它类似于"top"实用程序,但是它显示了MySQL查询,通过mytop,可以快速监控MySQL的运行时间,线程,查询,用户行为和其他实时状态信息。

在本教程中,我将向您展示如何在基于一键安装的LEMP的新服务器上安装,配置和使用mytop。

前提条件

在继续之前,你需要:

  • 使用sudo权限作为非root用户登录,你可以找到如何创建非root用户本文

步骤1:使用EPEL库安装mytop

借助EPEL (Enterprise Linux 额外包)yum库,你可以在服务器上轻松安装mytop ,

你可以通过以下方式确认EPEL的存在:

 
sudo yum repolist

 

.将出现 epel Extra Packages for Enterprise Linux 6 - x86_64 存储库列出。

要保护EPEL存储库中的包不被其他存储库中的包更新或覆盖,您需要安装"protectbase "插件:


sudo yum install yum-plugin-protectbase.noarch -y

然后编辑文件/etc/yum.repos.d/epel.repo,输入:


cd /etc/yum.repos.d
sudo vi epel.repo

会一行protect=1附加到节[epel]


[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
protect=1

保存并关闭文件。

最后,使用以下方法安装mytop :


sudo yum install mytop -y

步骤2:使用定制的配置文件配置mytop

为了简化mytop的使用,你可以创建一个名为/root/.mytop的定制配置文件,当您以root用户身份运行mytop或使用sudo权限运行非root用户时,程序将自动调用此配置文件。如果要以不具有sudo权限的非root用户身份运行它,则需要将配置文件放在非root用户的主目录中。

下面是配置文件/root/.mytop的例子:


user=root
pass=
host=localhost
db=mysql
delay=5
port=3306
socket=
batchmode=0
header=1
color=1
idle=1

此文件中的内容提供了mytop程序的默认参数,在使用时减少了你的手动输入,但是,如果使用参数手动输入程序,则命令行参数会覆盖配置文件中对应的参数。

你可以根据具体条件修改这些参数,下面列出了这些参数的一些含义:

  • user :数据库用户名,
  • pass :数据库用户的密码,出于安全目的,你可以会它保留为空白,并手动输入密码,
  • host :数据库主机地址,
  • db :数据库名称,
  • delay :以秒为单位显示刷新间隔,

可以在手册页中找到每个参数的完整解释:

 
man mytop

 

步骤3:使用mytop监视MySQL性能

如前所述,实用程序在配置文件和命令行参数中使用两个参数,后者会相应地覆盖。

因此,使用配置文件,只需要输入很少参数的命令即可。

例如,如果要输入密码以获得更好的安全性,可以输入:

 
sudo mytop --prompt

 

然后输入默认数据库和用户root (可以在/root/.my.cnf中找到)的密码,以进入mytop程序界面。

下面是另一个例子,如果要监视特定数据库,可以使用:


sudo mytop -d yourdatabasename --prompt

用你自己的替换yourdatabasename

在mytop程序界面中,你可以找到如下内容:


MySQL on localhost (5.6.26-log) up 0+08:36:33 [12:07:15]
 Queries: 921.0 qps: 0 Slow: 0.0 Se/In/Up/De(%): 00/00/00/00
 qps now: 0 Slow qps: 0.0 Threads: 1 ( 1/ 0) 00/00/00/00
 Key Efficiency: 100.0% Bps in/out: 0.8/140.7 Now in/out: 9.7/ 1.9k

 Id User Host/IP DB Time Cmd Query or State
 -- ---- ------- -- ---- --- ----------
 14 root localhost mysql 0 Query show full processlist

这是mytop的默认线程视图,你可以按下面的键切换到这个视图。

前四行构成标题,按Shift键可以打开或关闭标题。标题包含了你的MySQL服务器的一般信息。

在标题下面,你可以看到当前MySQL线程的状态数据。

要获取帮助,请按? (Shift /)程序运行时。

要退出该程序,请按q。

关于mytop的显示和用法的详细信息可以在它的手册页中找到:

 
man mytop

 

就这样 ,您可以使用从mytop收集的数据来实现聪明的MySQL优化。

Huangzhongbang profile image