本人之前安裝CentOS 7學習Oracle的時候,發現初始安裝配置的swap小了(因為懶,全部選擇的默認安裝 T。T),為了不浪費時間重裝一次,就去找了下如何修改swap配置。
根據度娘出來的帖子內容,fallocate 創建新swap文件之后,mkswap 也很正常,然而,swapon 出現了問題
[root@oracle ~]# swapon /swapfile
swapon: /swapfile: swapon failed: Invalid argument
這個錯誤是fallocate造成的,如果使用dd 來創建新swap文件,mkswap之后就沒有這個問題
[root@oracle ~]# dd if=/dev/zero of=/swapfile bs=1024 count=4194304 [root@oracle ~]# mkswap /swapfile [root@oracle ~]# swapon /swapfile [root@oracle ~]# free -m total used free shared buff/cache available Mem: 3933 1524 124 48 2285 2038 Swap: 8191 16 8175
在GitHub上找到了關於這個問題的一個帖子,其中,作為fallocate的contributor,Andrew Gross也參與了討論。https://github.com/sous-chefs/swap/issues/5
這是fallocate對於xfs支持的問題,根據Andrew Gross自己的測試,fallocate對於ext4各版本的支持都沒什么問題,但是對於老版本xfs的支持則不那么好了。
然而在原帖里可以發現,實際上現在對於高版本的xfs也已經支持不那么好了,我的xfs版本如下。
[root@oracle ~]# yum list installed | grep xfs xfsdump.x86_64 3.1.7-1.el7 @anaconda xfsprogs.x86_64 4.5.0-15.el7 @anaconda
總結:
綜上所述,遇到這種問題的時候,用dd吧,雖然時間是比fallocate要長一點。最好的解決辦法,就是在安裝和部署任何應用之前,還是把sizing提前做好吧。