diff --git a/CSDN博文备份/MySQL的innodb_buffer_pool_size参数配置指南-146246934.md b/CSDN博文备份/MySQL的innodb_buffer_pool_size参数配置指南-146246934.md new file mode 100644 index 0000000..d9ae069 --- /dev/null +++ b/CSDN博文备份/MySQL的innodb_buffer_pool_size参数配置指南-146246934.md @@ -0,0 +1 @@ +
innodb_buffer_pool_size
是MySQL InnoDB存储引擎最重要的参数之一,它直接影响数据库的性能。这个参数决定了InnoDB缓存表数据和索引数据的内存大小。
innodb_buffer_pool_size
设置为服务器物理内存的50%-80%在my.cnf或my.ini文件中设置:
[mysqld]
innodb_buffer_pool_size = 8G # 例如设置为8GB
SET GLOBAL innodb_buffer_pool_size = 8589934592; # 设置为8GB (以字节为单位)
innodb_buffer_pool_instances = 8 # 例如设置为8个实例
SHOW ENGINE INNODB STATUS\G
SELECT * FROM information_schema.INNODB_BUFFER_POOL_STATS;
innodb_buffer_pool_dump_at_shutdown = 1
innodb_buffer_pool_load_at_startup = 1
最佳的设置取决于您的工作负载特性、服务器配置和其他运行在同一系统上的应用程序。建议在调整后监控系统性能,并根据实际情况进行微调。
针对 MairaDB,修改配置文件路径为: nano /etc/mysql/mariadb.conf.d/50-server.cnf
针对我们的服务器,我们的的这个配置被修改成了 24G。
查询 Pool 大小:
SELECT * FROM information_schema.INNODB_BUFFER_POOL_STATS;
POOL_ID | POOL_SIZE | FREE_BUFFERS | DATABASE_PAGES | OLD_DATABASE_PAGES | MODIFIED_DATABASE_PAGES | PENDING_DECOMPRESS | PENDING_READS | PENDING_FLUSH_LRU | PENDING_FLUSH_LIST | PAGES_MADE_YOUNG | PAGES_NOT_MADE_YOUNG | PAGES_MADE_YOUNG_RATE | PAGES_MADE_NOT_YOUNG_RATE | NUMBER_PAGES_READ | NUMBER_PAGES_CREATED | NUMBER_PAGES_WRITTEN | PAGES_READ_RATE | PAGES_CREATE_RATE | PAGES_WRITTEN_RATE | NUMBER_PAGES_GET | HIT_RATE | YOUNG_MAKE_PER_THOUSAND_GETS | NOT_YOUNG_MAKE_PER_THOUSAND_GETS | NUMBER_PAGES_READ_AHEAD | NUMBER_READ_AHEAD_EVICTED | READ_AHEAD_RATE | READ_AHEAD_EVICTED_RATE | LRU_IO_TOTAL | LRU_IO_CURRENT | UNCOMPRESS_TOTAL | UNCOMPRESS_CURRENT |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1557632 | 1486272 | 70609 | 26044 | 2601 | 1504 | 0 | 0 | 0 | 47084 | 511720 | 0 | 0 | 73858 | 4808 | 3023 | 0 | 0 | 0 | 10046433153 | 1000 | 0 | 0 | 6422 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
上面的配置参数为生产服务器上的真实参数。
SHOW ENGINE INNODB STATUS
上面的命令能够查询当前引擎的使用状态:
=====================================
2025-03-13 18:34:22 0x75a2fc5606c0 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 42 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 10 srv_active, 0 srv_shutdown, 196110 srv_idle
srv_master_thread log flush and writes: 196115
----------
SEMAPHORES
----------
------------
TRANSACTIONS
------------
Trx id counter 1235652
Purge done for trx's n:o < 1235652 undo n:o < 0 state: running but idle
History list length 0
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION (0x75a940405880), not started
mysql tables in use 1, locked 0
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION (0x75a940404d80), ACTIVE 0 sec fetching rows
mysql tables in use 1, locked 0
0 lock struct(s), heap size 1128, 0 row lock(s)
MariaDB thread id 5221894, OS thread handle 129343170938560, query id 399272277 ns564012.ip-54-39-157.net 54.39.157.60 src Sending data
SELECT count(*) FROM `release` WHERE repo_id=? AND sha1<>?
Trx read view will not see trx with id >= 1235652, sees < 1235652
---TRANSACTION (0x75a940401680), not started
0 lock struct(s), heap size 1128, 0 row lock(s)
--------
FILE I/O
--------
Pending flushes (fsync): 0
74899 OS file reads, 93031 OS file writes, 90571 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.36 writes/s, 0.36 fsyncs/s
---
LOG
---
Log sequence number 2828162553
Log flushed up to 2828162553
Pages flushed up to 2765805507
Last checkpoint at 2765805507
----------------------
BUFFER POOL AND MEMORY
----------------------
Total large memory allocated 25803358208
Dictionary memory allocated 155238072
Buffer pool size 1557632
Free buffers 1486272
Database pages 70609
Old database pages 26044
Modified db pages 2601
Percent of dirty pages(LRU & free pages): 0.167
Max dirty pages percent: 90.000
Pending reads 0
Pending writes: LRU 0, flush list 0
Pages made young 47083, not young 511720
0.00 youngs/s, 0.00 non-youngs/s
Pages read 73858, created 4808, written 3023
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 70609, unzip_LRU len: 1504
I/O sum[0]:cur[0], unzip sum[0]:cur[0]
--------------
ROW OPERATIONS
--------------
1 read views open inside InnoDB
state: sleeping
----------------------------
END OF INNODB MONITOR OUTPUT
============================
数据库的参数,通常可以用查询来了解。
MySQL的innodb_buffer_pool_size参数优化配置指南 - #2 by hex - 数据库 - iSharkFly
\ No newline at end of file