mysql监控

mysql是一款比较优秀的免费数据库软件,目前很多大企业都有用到,个人的一点学习笔记,如果有不足错误之处请指出

作为技术人员,不仅要能够正确使用mysql,还应该懂得一些mysql的基本监控。mysql的监控分为两部分:第一部分是硬件的监控,能够用基本的linux命令查看cpu、内存、硬盘、网络等的一些基本情况;第二部分,运用mysql的命令,监控我们的mysql是否正常运行,例如索引是否得当,sql语句是否执行太慢等。

1.1 linux上监控cpu,主要是监控cpu上进程的活动。

(1) top 命令提供系统信息的摘要和按任务的cpu密集度排序的系统进程的动态视图

top 
top - 16:57:21 up 161 days, 22:56,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  57 total,   1 running,  56 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 98.3%id,  1.3%wa,  0.3%hi,  0.0%si,  0.0%st
Mem:   2059580k total,  1945712k used,   113868k free,   247464k buffers
Swap:   786424k total,     9064k used,   777360k free,   662752k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                
    1 root      15   0 10348  592  556 S  0.0  0.0   0:12.17 init                                                                   
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                            
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.17 ksoftirqd/0                                                            
    4 root      10  -5     0    0    0 S  0.0  0.0  14:31.44 events/0                                                               
    5 root      10  -5     0    0    0 S  0.0  0.0   0:23.32 


 

这个命令中可以看到系统的概要信息,最上面的一行,下面是一些进程的这些进程依据cpu占用时间的多少降序排列的,包含进程的id、使用者、优先级、cpu占用百分比、以及进程的耗时等。

(2)进程处理的第二个常用命令,ps

# ps -A
  PID TTY          TIME CMD
    1 ?        00:00:12 init
    2 ?        00:00:00 migration/0
    3 ?        00:00:00 ksoftirqd/0
    4 ?        00:14:31 events/0
 1797 ?        00:00:00 kmpathd/0
 2430 tty2     00:00:00 mingetty
 2431 tty3     00:00:00 mingetty
 2432 tty4     00:00:00 mingetty
 2433 tty5     00:00:00 mingetty
 2434 tty6     00:00:00 mingetty
 2584 tty1     00:00:00 mingetty
10560 ?        00:01:01 java
26570 ?        00:00:00 mysqld_safe
26690 ?        00:11:47 mysqld
28927 ?        00:00:00 sshd
28931 pts/1    00:00:00 bash
29663 pts/1    00:00:00 ps

输出这些结果的一个用途是:通过它可以了解是否存在一些未知进程或者单个用户是否运行了多个进程。如果有些脚本正在大量产生进程,也许是因为这个脚本以不合理的方式建立的,甚至系统可能存在危险。
还可以通过 ps -A|grep mysqld 命令只检索出mysqlld的进程。


1.2 linux上监控内存的使用情况

(1)free命令显示可用的物理内存量,其中包括总物理内存量、已用物理内存量、可用物理内存量,还显示了内核使用的内存缓存大小和缓冲区大小。它还显示了交换分区的这些信息

free -t
             total       used       free     shared    buffers     cached
Mem:       2059580    1970552      89028          0     248168     680048
-/+ buffers/cache:    1042336    1017244
Swap:       786424       9064     777360
Total:     2846004    1979616     866388

(2)pmap命令提供一个进程所使用的内存的详细映射。使用这个命令前,可以通过ps(例如ps -A|grep mysqld)命令先找到这个进程的id

pmap -d 26570
26570:   /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql
Address           Kbytes Mode  Offset           Device    Mapping
0000000000400000     712 r-x-- 0000000000000000 0fd:00000 bash
00000000006b2000      40 rw--- 00000000000b2000 0fd:00000 bash
00000000006bc000      20 rw--- 00000000006bc000 000:00000   [ anon ]
00000000008bb000      32 rw--- 00000000000bb000 0fd:00000 bash
0000000013bd2000     132 rw--- 0000000013bd2000 000:00000   [ anon ]
000000397e000000     112 r-x-- 0000000000000000 0fd:00000 ld-2.5.so
000000397e21b000       4 r---- 000000000001b000 0fd:00000 ld-2.5.so
000000397e21c000       4 rw--- 000000000001c000 0fd:00000 ld-2.5.so
000000397e400000    1336 r-x-- 0000000000000000 0fd:00000 libc-2.5.so
000000397e54e000    2044 ----- 000000000014e000 0fd:00000 libc-2.5.so
000000397e74d000      16 r---- 000000000014d000 0fd:00000 libc-2.5.so
000000397e751000       4 rw--- 0000000000151000 0fd:00000 libc-2.5.so
000000397e752000      20 rw--- 000000397e752000 000:00000   [ anon ]
000000397ec00000       8 r-x-- 0000000000000000 0fd:00000 libdl-2.5.so
000000397ec02000    2048 ----- 0000000000002000 0fd:00000 libdl-2.5.so
000000397ee02000       4 r---- 0000000000002000 0fd:00000 libdl-2.5.so
000000397ee03000       4 rw--- 0000000000003000 0fd:00000 libdl-2.5.so
0000003981c00000      12 r-x-- 0000000000000000 0fd:00000 libtermcap.so.2.0.8
0000003981c03000    2044 ----- 0000000000003000 0fd:00000 libtermcap.so.2.0.8
0000003981e02000       4 rw--- 0000000000002000 0fd:00000 libtermcap.so.2.0.8
00002b6380331000       8 rw--- 00002b6380331000 000:00000   [ anon ]
00002b6380356000      12 rw--- 00002b6380356000 000:00000   [ anon ]
00007fff2fda8000      84 rw--- 00007ffffffea000 000:00000   [ stack ]
ffffffffff600000    8192 ----- 0000000000000000 000:00000   [ anon ]
mapped: 16896K    writeable/private: 364K    shared: 0K


pmap命令的输出结果显示了所有内存地址的详细信息,且在报告产生的瞬间显示进程使用的内存的大小。它还显示了启动进程的命令,其中包括完整的路径和参数,可以确定进程是从什么地方开始的和进程使用了哪些选项。pmap命令可以用于诊断一个特殊的进程为什么消耗非常多的内存和诊断哪个部分消耗内存最多。最后一行显示了有多少内存被映射到文件、私有内存空间量和与其他进程共享的内存量。

1.3 linux查看磁盘空间大小

df -h 可以查看磁盘空间的大小,易用空间,还剩余空间等信息

du -h 可以查看当前文件夹下各个文件的大小

 

2 mysql服务器性能的监控,具体而言是设置和读取系统变量及读取状态变量。show和set命令是仅有的两个可以用于监控mysql服务器的工具

 

 2.1 sql监控命令,所有的sql监控命令都是show命令的变体,他们显示系统及其子系统的内部信息。

(1)show processlist显示系统上运行的所有线程。这个命令与主操作系统上的进程命令类似。显示信息如下,如果那些僵死进程,便可以通过kill命令将此进程杀死

show processlist;
+-------+------+-----------------------+-------------+---------+-------+-------+------------------+
| Id    | User | Host                  | db          | Command | Time  | State | Info             |
+-------+------+-----------------------+-------------+---------+-------+-------+------------------+
| 30877 | root | 192.168.200.201:2491  | xlgamepm    | Sleep   | 11019 |       | NULL             |
| 31209 | root | 192.168.233.181:51978 | xlngomp     | Sleep   | 16436 |       | NULL             |
| 31210 | root | 192.168.233.181:51979 | NULL        | Sleep   | 19736 |       | NULL             |
| 31738 | root | 192.168.233.181:53391 | xlngomp     | Sleep   |    25 |       | NULL             |
| 31776 | root | 192.168.200.116:3060  | xlngomp     | Sleep   |  9715 |       | NULL             |
| 31777 | root | 192.168.200.116:3061  | NULL        | Sleep   |  9983 |       | NULL             |
| 31958 | root | 10.11.9.30:47966      | xlngomp     | Sleep   |    59 |       | NULL             |
| 31959 | root | 10.11.9.30:47967      | xlngchannel | Sleep   |    49 |       | NULL             |
| 31960 | root | 10.11.9.30:47968      | xlngchannel | Sleep   |    32 |       | NULL             |
| 31968 | root | 192.168.233.181:55456 | xlgamepub   | Sleep   |    33 |       | NULL             |
| 31970 | root | 10.11.9.30:41233      | xunleilib3  | Sleep   |    21 |       | NULL             |
| 31983 | root | 10.11.9.30:54211      | xlgamemk    | Sleep   |    40 |       | NULL             |
| 31987 | root | 10.11.9.30:54233      | xlgamemk    | Sleep   |    42 |       | NULL             |
| 31990 | root | localhost             | NULL        | Query   |     0 | NULL  | show processlist |
+-------+------+-----------------------+-------------+---------+-------+-------+------------------+


(2)show plugins;显示mysql所有已知插件信息。它显示插件的名称和当前状态。mysql最新发行中的存储引擎是以插件形式实现的。实用这些命令获取当前可用插件及其状态的快照

show plugins;
+------------+----------+----------------+---------+---------+
| Name       | Status   | Type           | Library | License |
+------------+----------+----------------+---------+---------+
| binlog     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| partition  | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| BLACKHOLE  | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| CSV        | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| MEMORY     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| InnoDB     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| MyISAM     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| MRG_MYISAM | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| ndbcluster | DISABLED | STORAGE ENGINE | NULL    | GPL     |
+------------+----------+----------------+---------+---------+


(3)show index from <表名> 显示指定表的索引基数统计信息,在优化程序中使用它评估连接选择性(及索引类中非重复值)。这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用索引

对于mysql中show语句的详细使用,可以参考我分享的下一篇mysql调优

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值