Linux增加虛擬內存
一般來說現在計算機的內存都非常大,基本不會出現內存不夠用的情況,但是我們在做計算的時候,還是偶爾會出現內存不夠用的情況,例如Fortran程序運行時常出現的insufficient virtual memory的報錯就是由於內存不夠。比如想開一個非常大的數組時會出現這種情況。這時,第一應該想到的是去優化自己的程序,看看可否想辦法減少內存的使用,如果實在沒有辦法,只能手動增加虛擬內存了。其原理很簡單,就是從硬碟划出一塊來,當作硬碟,其後果可想而知,那就是速度會很慢。
以下做一個示例,創建一塊268GB的虛擬內存。藍字部分為需要輸入的命令。
[root@cu26 data]#dd if=/dev/md0 of=/swapadd bs=1024 count=262144000
以上表示從/dev/md0分區割一塊硬碟,用作虛擬內存,目標位置是根目錄下的swapadd,需要創建的大小由count值控制,以上數字的結果是268GB的空間。
[root@cu26 data]#mkswap /swapadd
mkswap: /swapadd: warning: wiping old ext4 signature.
no label, UUID=a5ce3dbc-9c26-43b7-a05b-72ebd12e8e0e
[root@cu26 data]#swapon /swapadd
swapon: /swapadd: insecure permissions 0644, 0600 suggested.
此時已經操作成功,用free -g命令可以看到Swap空間已經變大。
[root@cu26 data]#free -g
total used free shared buff/cache available
Mem: 251 158 0 0 92 92
Swap: 253 1 252
這樣操作只是臨時有效,開機重啟後會失效,若想開機後依然生效,需要修改/etc/fstab文件,在其中加入一行:
/swapadd swap swap defaults 0 0
如需刪除這部分空間:
swapoff /swapadd
rm -f /swapadd
並將/etc/fstab文件相應的行刪除。
TAG:量子化學 |