0.前言 之前部署了Jellyfin媒体服务器之后,偶然一次打开pve主节点概要界面,发现,咦,SWAP怎么都爆红了…
随后又又想起来一个问题,这硬盘刚安装上去的时候写入读取数据都在5T左右,怎么这小主机用了这点时间涨了25T读取,10T写入,再这样下去SSD岂不是很快要寄了w(゚Д゚)w
最近忙着优化权限结构和媒体下载硬链接,以及部署一些服务,到现在才着手开始解决这个问题。SWAP占用一直很高的话,PVE主硬盘会大量读取写入,很伤硬盘而且也会导致性能下降。下面来讲讲解决办法。
I.前提条件 你的PVE系统除了换源,加温度显示或者删除订阅弹窗这些不影响Linux系统本体的操作之外,没有对本体进行多余的修改。
这点很重要,因为我参阅了Proxmox VE的论坛,影响Swap使用的有很多。使用第三方脚本时一定要注意对Swap的调整。
II.了解SWAP和Swappiness 以下内容从网上摘的,改了点表述,适当加了点东西,使之更加易懂。鉴于我看的网上那些文章大都是搬运,不太能找得到来源,就不标注来源了。
(中文互联网太多自动爬虫搬运资源,乱拉shit o(≧口≦)o)
关于 Swap Swap(Swap 分区、Swap 内存),中文名是交换分区,类似于 Windows 中的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
因此,Swap 分区的作用就是牺牲硬盘,增加内存,解决 VPS 内存不够用或者爆满的问题。不过鉴于硬盘速度肯定是慢于内存,因此非必要情况下,大量地使用这个貌似不是件好事捏
Swappiness 的通俗解释 Swappiness可以用来调整系统在何时开始使用SWAP,Swappiness 可以设置为 0 到 100 之间的值。
swappiness=0: 表示最大限度使用物理内存,物理内存用满之后才用swap空间
swappiness=100: 表示积极使用swap分区,并且会把内存上的数据及时地搬运到swap空间里面
linux中该项默认值为60。也就是说,你的内存在使用到100-60=40%的时候,就会开始使用交换内存。大家知道,内存的速度会比磁盘快很多,过早地使用SWAP会加大系统IO,同时造成大量页的交换进出,严重影响系统的性能。
举例: 我的笔记本电脑有 16 GB 的内存和 8 GB 的交换空间。如果我在内核参数中,swappiness设置为60,那么在使用大约 6
GB (16G*40% == 6.4G)的内存后,我的笔记本就会开始使用SWAP,这会不必要地使我的应用程序变慢。所以咱应该知道怎么改这个参数。
III.让PVE少吃点SWAP Seems like proxmox only offers swap for lvm installs, I’m a zfs only guy so I never had the option in the installer.
...