情境:
最近查看伺服器記憶體總是很少,提示需要增加記憶體空間,但是添加記憶體,要加錢,但是怎麼樣可以同時加大記憶體又不花錢。於是想到了虛擬記憶體,查看了一下,探索服務器並沒有設定swap分區,於是我就從資料盤分出1g來當做swap空間
方法:
使用dd命令建立一個swap分區
[root@localhost Desktop]#dd if=/dev/zero of=/home/swap bs=1024 count=1048576
count的計算公式: count=SIZE*1024 (size以MB為單位)
這樣就建立一個/home/swap的分區檔案,大小為1G,接著需要格式化建立的SWAP分區:
[root@localhost Desktop]# mkswap /home/swap
再用swapon命令把這個檔案分區變成swap分區
[root@localhost Desktop]#swapon /home/swap
(關閉SWAP分區命令為:[root@localhost Desktop]#swapoff /home/swap)
再用free -m查看一下,可以看出swap擴大了。
為了能夠讓swap自動掛載,要修改/etc/fstab檔案
vi /etc/fstab
在檔案末尾加上
/home/swap swap swap default 0 0
這樣就算重啟系統,swap分區就不用手動掛載了。
效果:
[root@AY130701184903434d7bZ classes]# free -m
total used free shared buffers cached
Mem: 491 443 48 0 0 17
-/+ buffers/cache: 424 66
Swap: 1023 113 910
由此可以看到顯然記憶體空間有一些剩餘,在每次重啟tomcat的時候也不會報需要加大記憶體了
補充:小編的啊裡雲主機配置swap分區的辦法
在安裝Linux的時候,不知道swap空間分配多少比較好,所以會隨便分配一個,在真正使用的時候,比如安裝Oracle10g會要求很大的swap空間,發現swap空間不夠,那應該怎麼增加swap空間大小呢。
以下的操作都要在root使用者下進行,首先先建立一個分區,採用dd命令比如
dd if=/dev/zero of=/home/swap bs=1024 count=512000
這樣就會建立/home/swap這麼一個分區檔案。檔案的大小是512000個block,一般情況下1個block為1K,所以這裡空間是512M。接著再把這個分區變成swap分區。
/sbin/mkswap /home/swap
再接著使用這個swap分區。使其成為有效狀態。
/sbin/swapon /home/swap
現在再用free -m命令查看一下記憶體和swap分區大小,就發現增加了512M的空間了。不過當電腦重啟了以後,發現swap還是原來那麼大,新的swap沒有自動啟動,還要手動啟動。那我們需要修改/etc/fstab檔案,增加如下一行
/home/swap swap swap defaults 0 0
你就會發現你的機器自動啟動以後swap空間也增大了。
補充:
關於swap分區的用處,swap是當實體記憶體不夠用的時候,把資料放到swap中,所以swap起到了一個虛擬記憶體的作用,在某種意義上來說也算是加大了記憶體空間。