调整服务器的虚拟内存大小

22 篇文章 1 订阅

最近在计算一例弥漫性结节时,出现了由于内存不足导致算法服务重启的问题,从而出现了肺结节无结果的故障。

除了通过土豪加物理内存来解决的方法外,其实可以有0成本的解决方案:

增大服务器的虚拟内存。

在家里一台32G的服务器上,原来虚拟内存只有1G,跑弥漫性结节会出现算法服务重启。

通过增加虚拟内存,32G内存的服务器顺利的跑过了这例弥漫性结节(实测VIRT峰值达到60多G)。

 

以下的/swapfile不一定在根目录下,在其他目录同样有效,如/home/guest/swapfile (当系统分区空间不足时,可以放到更大的数据分区中)

分步指南

swapon --show   查看虚拟内存情况

如果为空,需要新增

create_swap.sh

# 给一个文件固定分配64G的体积

sudo fallocate -l 64G /swapfile

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

# 让虚拟内存永久生效

sudo echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

 

如果已经有,但是比较小,需要调整大

make_swap_bigger.sh

# 需要先停用虚拟内存。系统会将虚拟内存里的东西倒入物理内存里(通过htop可以看到,swap一直在变小,mem的使用率一直在增大。如果物理内存剩余空间不足以装载虚拟内存的有效内容,可能会导致个别进程异常。)

sudo swapoff -v /swapfile

sudo fallocate -l 64G /swapfile

# 这一步不能省,需要重新mkswap

sudo mkswap /swapfile

sudo swapon /swapfile

(注意:如果是大调整小,需要rm /swapfile后,再fallocate,否则会维持原有大小)

 

再次swapon --show  查看新结果。

 

通过glances监控整个弥漫性结节的计算可以发现,物理内存用满了之后,磁盘IO读写频繁,这是在将数据导入swap的过程。

因此,虚拟内存虽然0成本使用,但是硬盘IO的限制,导致了计算结节的一些时间用在IO交换上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值