結語:
這個是小問題,沒有swap,咱們能夠自行建立。但我見過禁用mkswap命令的廠商,在只有512M甚至更少內存的虛擬機中,真是欲哭無淚,編譯一個軟件都不行。
建立swap分區很簡單,首先得建立一個文件,而後將這個文件設置爲交換分區,最後給系統使用這個交換分區。vim
網絡上不少文章所使用的命令,會在設置交換分區的時候出現錯誤,這是由於建立文件的時候使用了錯誤的方式。centos
# 建立文件 [root@VM_171_54_centos ~]# fallocate -l 4G /swapfile # 檢查文件信息 [root@VM_171_54_centos ~]# ll -h /swapfile -rw-r--r-- 1 root root 4.0G Jan 30 23:05 /swapfile # 修改文件權限 [root@VM_171_54_centos ~]# chmod 600 /swapfile # 再次檢查文件信息 [root@VM_171_54_centos ~]# ll -h /swapfile -rw------- 1 root root 4.0G Jan 30 23:05 /swapfile # 將文件設置爲交換分區 [root@VM_171_54_centos ~]# swapon /swapfile swapon: /swapfile: read swap header failed: Invalid argument
從上面能夠看出,在設置交換分區的時候,系統拋出了錯誤信息。網絡
問題其實很簡單,設置交換分區所使用的命令swapon須要使用物理分配的文件空間,但建立交換文件時使用的fallocate倒是使用ioctls來快速劃分一塊區域,由於不是物理分配的空間,因此在設置交換分區的時候會出現錯誤。post
此時咱們能夠使用dd命令建立一個文件:spa
[root@VM_171_54_centos ~]# dd if=/dev/zero of=/swapfile bs=1024 count=2048k 2097152+0 records in 2097152+0 records out 2147483648 bytes (2.1 GB) copied, 6.51212 s, 330 MB/s
接下來再進行其餘步驟:code
# 修改文件權限 [root@VM_171_54_centos ~]# chmod 600 /swapfile # 將文件設置爲交換分區 [root@VM_171_54_centos ~]# mkswap /swapfile Setting up swapspace version 1, size = 2097148 KiB no label, UUID=27eea5f0-d60d-494c-9b37-7db855d9ea0f # 使用交換分區 [root@VM_171_54_centos ~]# swapon /swapfile
最後還得將分區信息寫入文件,以便下次啓動系統的時候自動加掛載:blog
# 打開文件 [root@VM_171_54_centos ~]# vim /etc/fstab # 將配置信息寫入文件的最後一行 /swapfile swap swap sw 0 0
至此,完成全部工做。內存
最後還得進行檢查:虛擬機
[root@VM_171_54_centos ~]# free -m total used free shared buff/cache available Mem: 991 55 74 0 861 782 Swap: 2047 0 2047 0
能夠看到,目前擁有2G的swap空間,還能夠經過swapon進行檢查:it
[root@VM_171_54_centos ~]# swapon -s Filename Type Size Used Priority /swapfile file 2097148 0 -1
結語:
這個是小問題,沒有swap,咱們能夠自行建立。但我見過禁用mkswap命令的廠商,在只有512M甚至更少內存的虛擬機中,真是欲哭無淚,編譯一個軟件都不行。