我有一个 5.6 的 mysql 数据库。
启用二进制日志,它有 5 个从站。
启用 GTID 模式。
最大 binlog 文件大小为 1GB。
sync_binlog = 0
当我检查free -gh
total used free shared buff/cache available
Mem: 117G 79G 1.4G 25M 37G 37G
Swap: 0B 0B 0B
37GB 缓存。
我想检查一下所有与Mysql相关的内容。所以我使用了fincore
并且我可以看到从mysql-bin.000557
到mysql-bin.000590
都在操作系统缓存中。
binlog 的总缓存为 35GB。
是的,它的预期行为。MySQL 不控制缓冲区/缓存中的内容,这完全取决于操作系统。它会根据任何新的文件访问或进程内存需求快速回收。
Linux 不能真正告诉它不会很快再次使用,但它不会对内存做任何其他事情,所以它只是使用它(或者更准确地说,不会立即清除它)。