innodb内存:
用以下命令可以查出这3个参数的设置值
echo "show variables where variable_name in ('innodb_buffer_pool_size','innodb_log_buffer_size','innodb_additional_mem_pool_size')\G;" | mysql -uroot -p
*************************** 1. row ***************************
Variable_name: innodb_additional_mem_pool_size
Value: 1048576
*************************** 2. row ***************************
Variable_name: innodb_buffer_pool_size
Value: 134217728
*************************** 3. row ***************************
Variable_name: innodb_log_buffer_size
Value: 8388608
以上三个数值分别为byte
数据缓冲:
innodb_buffer_pool_size是占用内存最大的一块,用来存放各种数据的缓存。包括数据页,索引页,插入缓冲(insert buffer),锁信息,自适应hash索引,数据字典信息。
innodb的工作方式是把数据文件按页(16K)读到缓冲中,然后按LRU算法来保留数据。如果数据文件需要修改,则先修改内存中的页(标记为脏页),然后按一定频率刷新到硬盘上。对于innodb_buffer_pool_size的使用情况,可以用以下命令查看
echo "show engine innodb status\G;" | mysql -uroot -p
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 171910970; in additional pool allocated 1048576 --分配的总内存
Buffer pool size 8192 --使用了多少个块(16K)
Free buffers 0 --空闲块
Database pages 7621 --己使用的块
Modified db pages 98 --脏页数量
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages read 155372, created 13558, written 5829431
0.76 reads/s, 0.00 creates/s, 6.47 writes/s
Buffer pool hit rate 1000 / 1000 --Innodb Buffer Read Hit Ratios,可知命中率百分之百
日志缓冲:
innodb_log_buffer_size 日志缓冲把重做日志信息先放入这个区,然后按一定频率刷新到重做日志。一般情况下此值不需要设置成很大,因为一般一秒钟就会把重做日志刷新到日志文件。我们只要保证每秒事务量在这个缓冲大小内。
额外内存:
innodb_additional_mem_pool_size
阅读(921) | 评论(0) | 转发(0) |