Les données du cache pour les tables, index et autres tampons auxiliaires InnoDB sont stockées dans la zone mémoire du pool de tampons. La taille du pool de mémoire tampon est importante pour les performances du système. Un pool de mémoire tampon plus grand peut réduire les E/S disque pour plusieurs accès aux mêmes données de table. Il est possible de définir la taille du pool de mémoire tampon à 80 % de la taille de la mémoire physique de l'ordinateur sur un serveur de base de données dédié
1) Paramètres des variables système
Innodb_page_size
Innodb_page_size
InnoDB页面大小(默认为16KB)。页面中包含许多值,页面大小使它们可以轻松转换为字节。
Innodb_buffer_pool_chunk_size
innodb_buffer_pool_chunk_size 定义InnoDB缓冲池大小调整操作的块大小。默认128M。最大值可设置innodb_buffer_pool_size / innodb_buffer_pool_instances
innodb_buffer_pool_instances
InnoDB 缓冲池划分为的区域数。
Innodb_buffer_pool_pages_data
数页在 InnoDB 缓冲池中包含的数据。该数字包括 脏页和干净页。使用压缩表时,报告的 Innodb_buffer_pool_pages_data 值可能大于 Innodb_buffer_pool_pages_total (错误#59550)。
Innodb_buffer_pool_pages_total
InnoDB 缓冲池 的总大小(以页为单位)。使用压缩表时,报告的 Innodb_buffer_pool_pages_data 值可能大于 Innodb_buffer_pool_pages_total (错误#59550)
2)运行状态变量
Innodb_buffer_pool_pages_flushed
从缓冲池刷新页面的请求数 。
Innodb_buffer_pool_read_requests
表示从内存中读取逻辑的请求数。
Innodb_buffer_pool_reads
InnoDB 不能从缓冲池满足的逻辑读取的数量,必须直接从磁盘读取。
Innodb_buffer_pool_wait_free
Innodb_buffer_pool_chunk_size
innodb_buffer_pool_chunk_size définit la taille des morceaux pour les opérations de redimensionnement du pool de tampons InnoDB. La valeur par défaut est 128 Mo. La valeur maximale peut être définie innodb_buffer_pool_instances / innodb_buffer_pool_instances
innodb_buffer_pool_instances
Innodb_buffer_pool_pages_data
Nombre de pages de données contenues dans le pool de tampons InnoDB. Ce nombre comprend les pages sales et les pages propres. Lors de l'utilisation de tables compressées, la valeur Innodb_buffer_pool_pages_data signalée peut être supérieure à Innodb_buffer_pool_pages_total (bogue n° 59550). Innodb_buffer_pool_pages_total
Innodb_buffer_pool_pages_flushed
Actualisez la page de le pool de mémoire tampon Nombre de requêtes. 🎜🎜🎜🎜
Innodb_buffer_pool_read_requests
🎜🎜🎜🎜 représente le nombre de requêtes de lecture de logique depuis la mémoire. 🎜🎜🎜🎜Innodb_buffer_pool_reads
🎜🎜🎜🎜Le nombre de lectures logiques qu'InnoDB ne peut pas satisfaire à partir du pool de tampons et doivent être lues directement à partir du disque. 🎜🎜🎜🎜Innodb_buffer_pool_wait_free
🎜🎜🎜🎜Normalement, les écritures dans le pool de tampons InnoDB se produisent en arrière-plan. Lorsqu'InnoDB a besoin de lire ou de créer une page et qu'aucune page propre n'est disponible, InnoDB vide d'abord certaines pages sales et attend la fin de l'opération. Ce compteur compte ces instances d'attente. S'il est défini correctement, innodb_buffer_pool_size doit avoir une valeur plus petite. 🎜🎜🎜🎜Définir raisonnablement les paramètres liés au pool de tampons🎜🎜🎜1. innodb_buffer_pool_size est défini par défaut sur 80 % de la mémoire système, puis ajusté selon les règles suivantes pour s'adapter à la situation réelle🎜🎜mysql> show global status like 'Innodb_buffer_pool_pages_data'; +-------------------------------+---------+ | Variable_name | Value | +-------------------------------+---------+ | Innodb_buffer_pool_pages_data | 1894874 | +-------------------------------+---------+ 1 row in set (0.00 sec) mysql> show global status like 'Innodb_buffer_pool_pages_total'; +--------------------------------+---------+ | Variable_name | Value | +--------------------------------+---------+ | Innodb_buffer_pool_pages_total | 1965960 | +--------------------------------+---------+ 1 row in set (0.00 sec) # 计算是否应该添加内存 使用率 = Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100% 当结果 > 95% 则增加 innodb_buffer_pool_size 当结果 < 95% 则减少 innodb_buffer_pool_size, 可适当较少,当然独享业务机器多了也没啥问题
# cat /etc/my.cnf [mysqld] ...... innodb_buffer_pool_size = 系统内存%80 innodb_buffer_pool_instances = 大于8的情况下,每个缓冲池实例至少1GB ......
对于繁忙的服务器, buffer pool 将划分为多个实例以提高系统并发性, 减少线程间读写缓存的争用。buffer pool 的大小首先受 innodb_buffer_pool_instances 影响, 当然影响较小。
1.Innodb_buffer_pool_pages_data: Innodb buffer pool缓存池中包含数据的页的数目,包括脏页。单位是page。
show global status like 'Innodb_buffer_pool_pages_data';
2.Innodb_buffer_pool_pages_total: innodb buffer pool的页总数目。单位是page。
show global status like 'Innodb_buffer_pool_pages_total';
3.show global status like 'Innodb_page_size'; 查看@@innodb_buffer_pool_size大小,单位字节
SELECT @@innodb_buffer_pool_size/1024/1024/1024; #字节转为G
4.在线调整InnoDB缓冲池大小,如果不设置,默认为128M
set global innodb_buffer_pool_size = 4227858432; ##单位字节
计算Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100%
当结果 > 95% 则增加 innodb_buffer_pool_size, 建议使用物理内存的 75%
当结果 < 95% 则减少 innodb_buffer_pool_size, 建议设置大小为: Innodb_buffer_pool_pages_data * Innodb_page_size * 1.05 / (1024*1024*1024)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!