博客的Hetzner服务器迁移和交换空间创建

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

大家好,我是无能。
虽然已经迁移到Hetzner服务器,但在运行deno task lume时卡住了。然后,当我查看top时,发现内存耗尽了。
因此,我将创建并挂载虚拟内存。
在12月31日……

创建交换空间

虽然有人说不应该使用它,但因为它很方便,所以我将这样做。
从概念上讲,就是先用fallocate告诉磁盘“我要从这里到这里使用”,然后用mkswapmkfs一样格式化,以便虚拟内存可以像构建文件系统一样使用,最后用swaponmount一样将此区域用作Swap区域。就是这样的一个概念。

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

free -h确认

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           1.9Gi       736Mi       202Mi       4.3Mi       1.1Gi       1.2Gi
Swap:          4.0Gi       621Mi       3.4Gi

因为是资源紧张的服务器,所以这是必要的……

持久化

在启动时加载创建的交换文件以实现持久化。

sudo echo "/swapfile none swap sw 0 0" >> /etc/fstab

顺利通过了。

已经是12月31日了……我自己在做什么啊……(;´д`)トホホ…

简要说明

对于那些不清楚交换空间到底是什么的人,
计算机将数据临时存储在称为RAM的内存中。
CPU中也存在一级(L1)缓存和二级(L2)缓存,但这属于更底层的讨论,在编程时通常不需要过多关注。

此外,还存在用于程序存储的内存区域,例如用于存储临时文件的/tmp目录。这些文件记录在RAM上,速度非常快,但RAM是易失性内存,因此在断电(即重启)时会被清除。

程序就是这样存储在RAM区域的,但如果超出这个区域,就会变得满满当当并卡住,因此,通过创建本次的交换文件区域作为某种意义上的备用存储,可以将无法写入RAM的部分转移出去。

然而,它终究是虚拟内存区域,是存在于磁盘上的区域,看起来像RAM。
如果是HDD,则创建在HDD上;如果是SSD,则创建在SSD上。
这有点偏向硬件的思考,但本来对RAM的写入是高速处理大量文件的,因此这会增加磁盘本身的负载,可能导致寿命缩短,也可能增加磁盘I/O,所以最好的办法是尽可能多地安装RAM。
但是,那样的富裕环境真是令人羡慕啊……
主板的内存插槽,低端是2个,中端是4个,这一点至今都没有改变呢。

Related Posts