windows增加服务器内存_如何给云服务器增加虚拟内存

真每天都是冒险岛,这是晚上九点半的运行情况,内存占用已经高达83%b0586060376567e3227a5b23fa981dd0.png

再次面临被终止进程的命运

d20e9f9bad79ee8c1829c2dce9d29b0b.png

就这样等着它这样一点一点攀升吗?去查了一下 “运行内存不够怎么办”

办法是:在有限(没有钱)的情况下,可以通过增加虚拟内存,将物理内存的一部分空间释放出来(一般是长时间没有执行的操作),以供当前运行的程序使用。

说到底,可能有用,但是不一定

#在/home目录下,创建swap$ mkdir swap  $ cd swap/#创建交换文件swapfile$ touch swapfile    $ dd if=/dev/zero of=/home/swap/swapfile bs=1MB count=256000256000+0 records in256000+0 records out256000000000 bytes (256 GB, 238 GiB) copied, 1632.31 s, 157 MB/s##dd:用于读取、转换并输出数据的命令##if=/dev/zero:参数 if 用于指定源文件,这里我们用 /dev/zero ,是因为它是“零”设备,可以无限的提供空字符。##of=/var/swapfile:参数 of 用于指定目的文件##bs=1024:参数 bs 指 block size,用于设置单位数据块同时读入/输出的块字节大小##count:用于设置拷贝数的数目##block size设为了1M,所以这里我们设置了约256G的大小,所以会很慢,需要等待#创建swap分区$ mkswap /home/swap/swapfilemkswap: /home/swap/swapfile: insecure permissions 0644, 0600 suggested.Setting up swapspace version 1, size = 238.4 GiB (255999995904 bytes)no label, UUID=6bdce763-df11-4eba-8f10-f52216d9cbbb##提示权限的问题,暂时先不修改#开启swap$ swapon /home/swap/swapfileswapon: /home/swap/swapfile: insecure permissions 0644, 0600 suggested.#查看现在的内存情况$ free -h              total        used        free      shared  buff/cache   availableMem:          251Gi       210Gi       1.6Gi        10Mi        39Gi        39GiSwap:         238Gi          0B       238Gi##可以看到多出了swap空间#设置开机自动挂载swap分区$ echo "UUID=6bdce763-df11-4eba-8f10-f52216d9cbbb swap swap defaults 0 0" >>/etc/fstab ##/etc/fstab这个文件就是上次导致系统进入紧急模式的家伙

到这里,虽然分区已经建好了,但是想要用好还需要调整使用策略

系统使用虚拟内存是有一定策略的,通过参数 swappiness 来平衡。不同系统的默认值不太一样,Ubuntu 是 60,Linux 是 30。

swappiness 的值,越大表示越积极使用 swap 分区,越小表示越积极使用物理内存。以值取 30 为例,代表了当剩余物理内存小于 30% 时,系统开始使用 swap 分区。 

一般的建议是: 

如果内存充足,就将 swappiness 值设置很低,甚至为0,以避免系统进行 swap 而影响性能(设为0并不代表不使用分区,只是最大限度降低使用的可能性)。 

如果内存不足,就将 swappiness 值设大,让系统更多地使用 swap 分区,但不要设太大(除非是 SSD ),一般设置在 10~50之间即可。

https://www.jianshu.com/p/c9cf5c7f6f8d
#查看当前swappniess的值$ cat /proc/sys/vm/swappiness0#修改 swappiness 值为 30$ echo "vm.swappiness = 30" >> /etc/sysctl.conf#激活设置$ sysctl -pvm.swappiness = 0net.core.somaxconn = 1024net.ipv4.tcp_max_tw_buckets = 5000net.ipv4.tcp_max_syn_backlog = 1024net.ipv4.icmp_echo_ignore_all = 0vm.swappiness = 30#查看参数当前设置$ sysctl -q vm.swappinessvm.swappiness = 30

上面提到了权限的问题,当下的权限是0644,建议的权限是0600,因为有多个用户使用,这里就不做修改了,如果你需要修改权限

chmod 0600 /home/swap/swapfile    #修改即可

如果想要删除交换分区的话

#1: 停止正在使用的 swap 分区swapoff /home/swap/swapfile#2: 删除分区文件rm -rf /home/swap/swapfile#3: 删除或注释掉之前在 /etc/fstab 文件里追加的开机自动挂载配置内容,#以及在/etc/sysctl.conf 文件里追加的 swappiness 值vim /etc/fstab  ##注释:UUID=6bdce763-df11-4eba-8f10-f52216d9cbbb    swap  swap  defaults  0  0vim /etc/sysctl.conf  ##注释:vm.swappiness = 30

如果你创建了多个swap,还可以设置分区使用的优先级

参考:

https://www.vpsss.net/4108.html https://blog.csdn.net/qiuchangyong/article/details/89929284

https://blog.csdn.net/chendorid/article/details/88550038utm_medium=distribute.pc_relevant.none-task-blog-title-5&spm=1001.2101.3001.4242

最后让我们来试一下b0586060376567e3227a5b23fa981dd0.pngb0586060376567e3227a5b23fa981dd0.png

kill -cont 132048    #恢复被暂停的进程

13fecb860e33293e538f347ffdd188aa.png

物理内存小于30%才会开始使用swap分区,现在还差一丢丢就使用70%了,还没有用上b0586060376567e3227a5b23fa981dd0.pngb0586060376567e3227a5b23fa981dd0.png明天再来看吧,希望有用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值