部落格的 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 個,這一點一直都沒有改變呢。