CentOS7設(shè)置swap交換文件的完整過程

今天在服務(wù)器部署nuxt項(xiàng)目時(shí) 執(zhí)行npm run build總是執(zhí)行到一半時(shí)出現(xiàn) Killed
后經(jīng)過查詢,說這個(gè)是因?yàn)閮?nèi)存不足導(dǎo)致的。解決的辦法就是設(shè)置交換分區(qū)或交換文件。
交換分區(qū)就不嘗試了,直接設(shè)置交換文件。一般按照交換區(qū)的大小是內(nèi)存的2-4倍,服務(wù)器的內(nèi)存是1G,所以設(shè)置2GB的交換文件大小。那么如果創(chuàng)建這么大的文件呢?網(wǎng)上都是提供的fallocate命令:

fallocate -l 2G /swapfile

結(jié)果提示:

fallocate: /swapfile: fallocate failed: Operation not supported

還說什么呢?運(yùn)氣背,沒辦法。好吧,那就用其他方式吧。后來找到了:truncate -s 2G swapfile
然后,在設(shè)置交換文件后,啟動(dòng)交換文件的時(shí)候,提示:

swapon: /swapfile: skipping - it appears to have holes. 

對,你沒看錯(cuò),你的文件有很多洞洞,好搞笑。
再換一種:

dd if=/dev/zero of=/swapfile bs=4096 count=512k
不要把if=/dev/zero去掉,似乎有問題。這樣就成功創(chuàng)建了一個(gè)大文件,沒有洞洞了。
好了,下面就將設(shè)置swap交換文件的流程說一下,請?jiān)趓oot權(quán)限下操作,非root用戶,請使用root權(quán)限,在命令前加上sudo:

1.查看系統(tǒng)是否已經(jīng)設(shè)置了swap交換文件(交換分區(qū))

swapon -s

如果什么也沒有就退出了,表示沒有設(shè)置任何交換文件(分區(qū))。

2.查看內(nèi)存大小**

 free -m

看到內(nèi)存大小,來確定交換文件的大小,建議值是內(nèi)存的2-4倍。當(dāng)然這只是建議值,你可以根據(jù)情況來選擇。

3.查看磁盤大小**

df -h

看看磁盤容量,來確定到底設(shè)置多大的交換文件比較好。

4.創(chuàng)建交換文件

你也可以創(chuàng)建一個(gè)交換分區(qū)。我們創(chuàng)建交換文件就好了。有的主機(jī)沒有辦法創(chuàng)建交換分區(qū)。相對于創(chuàng)建交換分區(qū)來講,創(chuàng)建交換文件是要容易很多了。
交換文件一般都很大,如何創(chuàng)建大文件的空文件呢?下面有可供選擇的命令:

命令1:

fallocate -l 2G /swapfile

2G是容量,/swapfile是文件名和所在的路徑,這里是在根目錄下創(chuàng)建這樣一個(gè)文件。但是有些系統(tǒng)就可能會(huì)失敗。如果失敗,就換下一個(gè)命令。

命令2:

truncate -s 2G /swapfile

參數(shù)基本相同。這個(gè)命名創(chuàng)建文件的速度很快,但是可能有問題。我遇到的就是在設(shè)置交換文件的時(shí)候提示文件有很多洞洞,也就是沒法使用。那就換下一個(gè)命令。

命令3:

dd if=/dev/zero of=/swapfile bs=4096 count=512k

這個(gè)命令就OK了。但是不要去掉 if=/dev/zero,不然還是會(huì)出問題的。of后面是文件的路徑和文件名,bs是文件塊大小,count是塊的數(shù)量。bs*count=文件大小。我測試過,bs沒有要求要對齊到扇區(qū)大小的512 字節(jié),但是建議對齊一下,也就是設(shè)置為512的整倍數(shù),以免一些系統(tǒng)又出問題。文件越大創(chuàng)建的速度越慢,但是只要最后可以,還是可以等的。創(chuàng)建完會(huì)有這樣的提示:

524288+0 records in
524288+0 records out
2147483648 bytes (2.1 GB) copied, 38.2492 s, 56.1 MB/s

文件名可以是其他的,不一定要是swapfile哦。

5.設(shè)置文件的權(quán)限

將文件的權(quán)限設(shè)置為``` 600```,因?yàn)樵谠O(shè)置交換文件時(shí)需要。下面是設(shè)置命令:
chmod 600 /swapfile

6.設(shè)置交換文件,將swapfile指定為交換文件

mkswap /swapfile

設(shè)置完后,提示:

Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=9ab7410d-5c33-49f1-9f20-a192dc2e0088

7.啟動(dòng)交換文件

swapon /swapfile

8.查看交換文件設(shè)置情況

 swapon -s

提示如下:

Filename    Type    Size    Used    Priority
/swapfile   file    2097148 0       -1

9.再使用free確認(rèn)一遍

free

提示如下:

              total        used        free      shared  buff/cache   available
Mem:        1016516      432388       63392         184      520736      399700
Swap:       3146744     1189312     1957432

這樣,系統(tǒng)需要時(shí)就會(huì)使用它了。

10.如果不再需要了,可以關(guān)閉

swapoff /swapfile

關(guān)閉之后,再用

swapon -s

就不到交換文件信息了。

11.永久生效交換文件

上面設(shè)置的只是臨時(shí)使用的,重啟系統(tǒng)就沒有了。如要永久使用這個(gè)交換文件,就要寫到配置文件里。
配置文件是:/ect/fstab
我們用vi編輯這個(gè)文件:

vi /ect/fstab

進(jìn)入后,按i進(jìn)入編輯模式,然后在最后一行加入:

/swapfile   swap    swap    sw  0   0

按Esc鍵退出編輯狀態(tài),然后輸入:wq,回車就可以退出了。
這樣就搞定了。


原文鏈接

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,980評論 0 9
  • 觀其大綱 第1部分Linux的基礎(chǔ)知識第1章Linux概述第2章Linux系統(tǒng)的安裝KickStart開始自動(dòng)安裝...
    周少言閱讀 1,671評論 1 10
  • 磁盤及文件系統(tǒng) 硬盤的物理構(gòu)成: 扇區(qū)(sector)、磁道(track)、磁頭、柱面(cylinder) 分...
    崔千易閱讀 775評論 0 0
  • 本廠自主研發(fā)生產(chǎn)的利爾丹牌茶幾,電視柜系列隆重推出,歡迎各位新老客戶來電咨詢定購
    扣扣妞閱讀 299評論 0 0
  • 從上帝的手中遣出,那單純的靈魂 來到一個(gè)充滿燈光和噪音的復(fù)雜的世界 來到亮的,黑的,干的或濕的,冷的或暖的之中 在...
    沒有遠(yuǎn)方的詩閱讀 573評論 0 5

友情鏈接更多精彩內(nèi)容