博客的Hetzner服务器迁移和交换空间创建
大家好,我是无能。
虽然已经迁移到Hetzner服务器,但在运行deno task lume时卡住了。然后,当我查看top时,发现内存耗尽了。
因此,我将创建并挂载虚拟内存。
在12月31日……
创建交换空间
虽然有人说不应该使用它,但因为它很方便,所以我将这样做。
从概念上讲,就是先用fallocate告诉磁盘“我要从这里到这里使用”,然后用mkswap像mkfs一样格式化,以便虚拟内存可以像构建文件系统一样使用,最后用swapon像mount一样将此区域用作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个,这一点至今都没有改变呢。