暂时关闭生产数据库上的交换?

暂时关闭生产数据库上的交换?

如果我需要关闭 Linux 服务器 mysql 数据库上的交换空间以便增加交换空间的大小,那么数据库会发生什么?

数据库正在使用全部 8GB 交换空间。将数据库交换空间增加到 16GB 的最佳方法是什么?

它有 16GB 的 RAM 和 1 的交换量,并且它用完了所有 8GB 的​​交换量,它不会也吃掉 16GB 的交换量吗?

答案1

添加交换区没有单一的解决方案,这取决于您的目标。只要在调整底层块设备大小之前禁用交换区,您就不会丢失数据(但如果内存不足,您的系统可能会崩溃)。

您可以拥有多个交换文件/设备,因此另一种方法是简单地添加第二个交换设备,而无需删除现有交换。您还可以创建一个新的临时交换,启用它,然后禁用现有交换,调整其大小,启用它并禁用临时交换。这会在进程运行时严重影响性能,但可以在不停机的情况下完成。

答案2

MySQL 的交换是糟糕的以提高性能。最好降低设置,这样 MySQL 根本不会交换。请提供 的内容my.cnf;那里的问题可能很明显。

MySQL 认为它在 RAM 中有很多东西可以随时访问,因此它不会考虑扫描整个“表缓存”或“缓冲池”。如果你正在交换,这会导致很多输入/输出。

相关内容