最近在计算一例弥漫性结节时,出现了由于内存不足导致算法服务重启的问题,从而出现了肺结节无结果的故障。
除了通过土豪加物理内存来解决的方法外,其实可以有0成本的解决方案:
增大服务器的虚拟内存。
在家里一台32G的服务器上,原来虚拟内存只有1G,跑弥漫性结节会出现算法服务重启。
通过增加虚拟内存,32G内存的服务器顺利的跑过了这例弥漫性结节(实测VIRT峰值达到60多G)。
以下的/swapfile不一定在根目录下,在其他目录同样有效,如/home/guest/swapfile (当系统分区空间不足时,可以放到更大的数据分区中)
分步指南
swapon --show 查看虚拟内存情况
如果为空,需要新增
create_swap.sh
|
如果已经有,但是比较小,需要调整大
make_swap_bigger.sh
|
(注意:如果是大调整小,需要rm /swapfile后,再fallocate,否则会维持原有大小)
再次swapon --show 查看新结果。
通过glances监控整个弥漫性结节的计算可以发现,物理内存用满了之后,磁盘IO读写频繁,这是在将数据导入swap的过程。
因此,虚拟内存虽然0成本使用,但是硬盘IO的限制,导致了计算结节的一些时间用在IO交换上。