CzipO2 Asked: 2020-02-06 02:26:28 +0800 CST2020-02-06 02:26:28 +0800 CST 2020-02-06 02:26:28 +0800 CST 暂时关闭生产数据库上的交换? 772 如果我需要关闭 linux 服务器 mysql 数据库上的交换,以便增加交换的大小,数据库会发生什么情况? 数据库正在使用所有 8GB 的交换空间。将数据库交换增加到 16GB 的最佳方法是什么? 它有 16GB 的 RAM 和 1 的交换量,它用完了所有 8GB 的交换空间,它不会也吃掉 16GB 的交换空间吗? linux mysql swap 2 个回答 Voted Best Answer davidgo 2020-02-06T03:12:28+08:002020-02-06T03:12:28+08:00 添加交换没有单一的解决方案,这取决于您的目标。只要在调整底层块设备大小之前禁用交换,您就不会丢失数据(但如果您没有足够的内存,您可能会导致系统崩溃。) 您可以拥有超过 1 个交换文件/设备,因此另一种选择是简单地添加第二个交换设备,您可以在不删除现有交换的情况下执行此操作。您还可以创建一个新的临时交换,启用它,然后禁用现有交换,调整它的大小,启用它并禁用临时交换。这会在进程运行时严重影响性能,但可以在不停机的情况下完成。 Rick James 2020-03-14T16:11:40+08:002020-03-14T16:11:40+08:00 交换 MySQL 对性能来说很糟糕。最好减少设置,以便 MySQL 根本不交换。请提供内容my.cnf;那里的问题可能很明显。 MySQL 假设它在 RAM 中可以轻松访问各种东西,因此它不会考虑扫描整个“表缓存”或“缓冲池”。如果您正在交换,这会导致大量I/O。
添加交换没有单一的解决方案,这取决于您的目标。只要在调整底层块设备大小之前禁用交换,您就不会丢失数据(但如果您没有足够的内存,您可能会导致系统崩溃。)
您可以拥有超过 1 个交换文件/设备,因此另一种选择是简单地添加第二个交换设备,您可以在不删除现有交换的情况下执行此操作。您还可以创建一个新的临时交换,启用它,然后禁用现有交换,调整它的大小,启用它并禁用临时交换。这会在进程运行时严重影响性能,但可以在不停机的情况下完成。
交换 MySQL 对性能来说很糟糕。最好减少设置,以便 MySQL 根本不交换。请提供内容
my.cnf
;那里的问题可能很明显。MySQL 假设它在 RAM 中可以轻松访问各种东西,因此它不会考虑扫描整个“表缓存”或“缓冲池”。如果您正在交换,这会导致大量I/O。