部落格的 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