除些之外,我们还可以参考下key_blocks_*参数:
| mysql> show global status like 'key_blocks_u%'; +------------------------+-------------+ | Variable_name | Value | +------------------------+-------------+ | Key_blocks_unused | | | Key_blocks_used | | +------------------------+-------------+ |
Key_blocks_unused表示未使用的缓存簇(blocks)数,Key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。比较理想的设置:
| Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80% |
笔者注:
查看簇(文件系统块,block)的大小(字节数)
Centos中有以下几种方法:
#tune2fs /dev/sda1 | grep "block size"
#dumpe2fs /dev/sda1 | grep "block size"
理论上文件系统块是扇区的倍数
mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态、进程信息、进程杀死等。本文介绍一下如何使用mysqladmin extended-status(因为没有"歧义",所以可以使用ext代替)了解MySQL的运行状态。
1. 使用-r/-i参数
使用mysqladmin extended-status命令可以获得所有MySQL性能指标,即show global status的输出,不过,因为多数这些指标都是累计值,如果想了解当前的状态,则需要进行一次差值计算,这就是mysqladmin extended-status的一个额外功能,非常实用。默认的,使用extended-status,看到也是累计值,但是,加上参数-r(--relative),就可以看到各个指标的差值,配合参数-i(--sleep)就可以指定刷新的频率,那么就有如下命令:
| mysqladmin -uroot -r -i -pxxx extended-status +------------------------------------------+----------------------+ | Variable_name | Value | +------------------------------------------+----------------------+ | Aborted_clients | | | Com_select | | | Com_insert | | ...... | Threads_created | | +------------------------------------------+----------------------+ |
2. 配合grep使用
配合grep使用,我们就有:
| mysqladmin -uroot -r -i -pxxx extended-status grep "Questions|Queries|Innodb_rows|Com_select |Com_insert |Com_update |Com_delete " | Com_delete | | | Com_delete_multi | | | Com_insert | | | Com_select | | | Com_update | | | Innodb_rows_deleted | | | Innodb_rows_inserted | | | Innodb_rows_read | | | Innodb_rows_updated | | | Queries | | | Questions | 2721 | |
当然,还可以配合awk等,笔者在这里就不一一介绍了,有情趣的朋友可以参考一下其它文档。










