__ Key _________________________________________________________________
Buffer used 4.00k of 256.00M %Used: 0.00
Current 31.83M %Usage: 12.43
Write hit 0.00%
Read hit 93.27%
__ Questions ___________________________________________________________
Total 380.30k 13.8/s
DMS 311.97k 11.3/s %Total: 82.03
Com_ 47.10k 1.7/s 12.38
QC Hits 20.90k 0.8/s 5.50
COM_QUIT 1.18k 0.0/s 0.31
-Unknown 846 0.0/s 0.22
Slow 5 s 52 0.0/s 0.01 %DMS: 0.02 Log: ON
DMS 311.97k 11.3/s 82.03
SELECT 271.20k 9.8/s 71.31 86.93
INSERT 24.18k 0.9/s 6.36 7.75
UPDATE 15.17k 0.5/s 3.99 4.86
DELETE 1.42k 0.1/s 0.37 0.46
REPLACE 0 0/s 0.00 0.00
Com_ 47.10k 1.7/s 12.38
show_fields 35.39k 1.3/s 9.31
show_create 4.53k 0.2/s 1.19
set_option 3.42k 0.1/s 0.90
__ SELECT and Sort _____________________________________________________
Scan 40.62k 1.5/s %SELECT: 14.98
Range 257 0.0/s 0.09
Full join 0 0/s 0.00
Range check 0 0/s 0.00
Full rng join 0 0/s 0.00
Sort scan 437 0.0/s
Sort range 180 0.0/s
Sort mrg pass 226 0.0/s
__ Query Cache _________________________________________________________
Memory usage 4.75M of 99.00M %Used: 4.80
Block Fragmnt 5.22%
Hits 20.90k 0.8/s
Inserts 53.98k 2.0/s
Insrt:Prune 53.98k:1 2.0/s
Hit:Insert 0.39:1
__ Table Locks _________________________________________________________
Waited 16 0.0/s %Total: 0.02
Immediate 97.30k 3.5/s
__ Tables ______________________________________________________________
Open 408 of 512 %Cache: 79.69
Opened 3.04k 0.1/s
__ Connections _________________________________________________________
Max used 26 of 1024 %Max: 2.54
Total 1.35k 0.0/s
__ Created Temp ________________________________________________________
Disk table 36.20k 1.3/s
Table 39.51k 1.4/s Size: 103.0M
File 450 0.0/s
__ Threads _____________________________________________________________
Running 2 of 22
Cached 2 of 8 %Hit: 98.07
Created 26 0.0/s
Slow 0 0/s
__ Aborted _____________________________________________________________
Clients 341 0.0/s
Connects 0 0/s
__ Bytes _______________________________________________________________
Sent 323.06M 11.7k/s
Received 21.79M 788.0/s
__ InnoDB Buffer Pool __________________________________________________
Usage 1.00G of 1.00G %Used: 100.00
Read hit 99.97%
Pages
Free 0 %Total: 0.00
Data 62.84k 95.88 %Drty: 0.00
Misc 2701 4.12
Latched 0.00
Reads 209.98M 7.6k/s
From file 69.59k 2.5/s 0.03
Ahead Rnd 0/s
Ahead Sql 0/s
Writes 549.01k 19.9/s
Flushes 115.31k 4.2/s
Wait Free 0 0/s
__ InnoDB Lock _________________________________________________________
Waits 0 0/s
Current 0
Time acquiring
Total 0 ms
Average 0 ms
Max 0 ms
__ InnoDB Data, Pages, Rows ____________________________________________
Data
Reads 82.96k 3.0/s
Writes 65.88k 2.4/s
fsync 10.34k 0.4/s
Pending
Reads 0
Writes 0
fsync 0
Pages
Created 1.37k 0.0/s
Read 82.80k 3.0/s
Written 57.66k 2.1/s
Rows
Deleted 1.58k 0.1/s
Inserted 269.26k 9.7/s
Read 230.26M 8.3k/s
Updated 15.61k 0.6/s
第一区块, 展示了 mysql innodb 的缓存统计信息.
其中, innodb跟myisam的缓存机制有较大区别, innodb不仅缓存索引,还缓存一些表数据.而myisam只缓存索引.
__ InnoDB Buffer Pool __________________________________________________
Usage 1.00G of 1.00G %Used: 100.00
Read hit 99.97%
Usage 表示, 总的缓存中, 当前已占用 1G, 使用率达 100.00%. 这种情况, 是存在瓶颈的, 需要适当增加缓存总量.
Read hit 表示缓存命中率 99.97%, 这个数值是比较理想的, 一般情况下, 都应该大于99.98%.
Pages
Free 0 %Total: 0.00
Data 62.84k 95.88 %Drty: 0.00
Misc 2701 4.12
Latched 0.00
innodb的存储是按页分的, 每页的容量默认是 16K. (详见
http://www.mysqlperformanceblog.com/2006/06/04/innodb-page-size/
)
这里的,Free指的是缓存中的总页数, 剩余的页, 占总的 0.39%.
Data是指缓存中, 存储索引数据的页的数量.其中, 最后一项 %Dtry 表示脏数据的百分比.所谓的脏数据是指, 对缓存数据更新后, 没有同步到硬盘的数据.
misc 和 latched 就是之前说的其他信息的一些缓存.
Reads 209.98M 7.6k/s
From file 69.59k 2.5/s 0.03
Ahead Rnd 0/s
Ahead Sql 0/s
Reads代表从缓存里, 总共读取了多少M的数据.
From file, 表示从硬盘文件中读取到缓存里的页数量.
Ahead Rnd, 表示随机预读的次数.
Ahead Sql, 表示全表扫描时, sql预读的次数.
Writes 549.01k 19.9/s
Flushes 115.31k 4.2/s
Wait Free 0 0/s
Writes , 表示写入缓存的总大小.
Flushes , 表示缓存数据更新到硬盘的大小.
Waint Free, 表示, 等待可写入数据的页的次数.
这里为什么会等待, 是因为, 数据写入到缓存页时, 必须保证, 这个页被创建好, 或者这个页之前的数据已经被同步到硬盘上.
InnoDB Lock _________________________________________________________
Waits 0 0/s
Current 0
Time acquiring
Total 0 ms
Average 0 ms
Max 0 ms
Waits , 表示执行线程等待锁的释放的次数.
Current, 表示当前所有的执行线程, 正在等待锁的数量.
Time acquiring 里的 Total , 指的是, 等待锁所消耗的总时间.
Average, 是指, 平均消耗的时间.
Max, 是指, 单次等待锁, 所消耗最多的时间.
__ InnoDB Data, Pages, Rows ____________________________________________
Data
Reads 82.96k 3.0/s
Writes 65.88k 2.4/s
fsync 10.34k 0.4/s
Pending
Reads 0
Writes 0
fsync 0
Data里的Reads, 表示数据读取的次数.
Writes, 表示数据写入的数据量大小.
fsync, 表示缓存同步到硬盘的数据量大小.
Pending里的Reads, Writes, fsync , 表示当前进行读写, 同步的次数.
Pages
Created 1.37k 0.0/s
Read 82.80k 3.0/s
Written 57.66k 2.1/s
Pages 里的created, 表示, 总共创建过 699 个页.
Read, 表示被读取的页的数量.
Written, 表示写入到页里的,总大小.
Rows
Deleted 1.58k 0.1/s
Inserted 269.26k 9.7/s
Read 230.26M 8.3k/s
Updated 15.61k 0.6/s
Rows里的四个操作,分别代表删除, 插入, 查询, 更新的数据量大小.
性能关注点分析
首先是Usage, 如果占比达 90 - 95%以上, 可能需要增加预设缓存大小.
调整的参数是
innodb_buffer_pool_size
其次是 Read Hit, 即缓存命中率, 如果该值远远小于100%, 就要调查缓存的有效性了.
比如, 缓存写次数是否大于查询次数. (Buffer里的reads和writes)
最后,需要关注的是, 数据的读写比例. 这里有个要注意的地方是, mysql如果启动到现在不到24小时或一个较长的运行周期, 这个读写比例值可能是不准的.
一般的应用,我感觉读写比例在 8/2 差不多. 如果读远远大于写, 那么你可以测下 MyISAM 引擎的性能, 看看是否适合你.