如果您只是从正在运行的系统拔掉交换驱动器会发生什么?


2

我在服务器上运行了大量泄漏的应用程序,这些应用程序在100多天的正常运行时间内已经换掉了大约60GB的垃圾。当我第一次用完交换(32gb)时,我开始插入pendrives并且 swapon 他们。它帮助了大约一个月,但我慢慢耗尽了pendrives和USB端口......我得出结论,可能所有重要的东西都被换掉了第一次交换(我认为),剩下的东西留在交换空间中,优先级较低可能只是泄漏所以...如果我只是拔掉那些pendrives,格式化它们怎么办? swapon 再次?是否更有可能使这些应用程序或整个操作系统崩溃?


2
这是一个很好的问题,但我必须注意使用闪存驱动器作为交换空间是一个糟糕的主意。它们很慢,它们磨损并且它们无法解决RAM泄漏的实际问题。
gronostaj

@ user21111737试试并报告它是怎么回事。
Moab

@Moab当我今天开始使用服务器时,由于持续的交换操作,它变得非常缓慢,无论如何它几乎无法使用。有时我因为i / o延迟而遇到ssh登录超时。我决定使用过多的交换利用来杀死所有进程。但是我会在笔记本电脑上检查一下。
Lapsio

Answers:


1

除非您设法触发内核错误,否则不应该导致系统崩溃。可能会有一些潜伏,因为拔掉活动交换设备很可能不是常见的测试场景。

如果您的系统没有崩溃,那么一旦他们尝试访问任何不再可用的换出页面,您的应用程序就会逐个死亡。

杀死并重新启动泄漏的应用程序更加安全,所有泄露的内存将在退出时释放。


1

所以我测试了它。拔掉pendrive系统后遇到即时恐慌。即使实际上有一些备用RAM,因此在设备拔出电源时没有主动访问交换,仍然导致系统崩溃。

系统日志没有记录任何内容,就像文件系统崩溃一样。它 威力 最终由我使用的btrfs引起,因为使用btrfs的系统在RAM(和交换)耗尽时也会遇到恐慌(oom杀手没有被激活,系统崩溃的结果相同 - 没有日志记录)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.