❶ linux - Swap
首先,swap是硬碟上的一塊空間。
其次,當內存沒有多餘空間的時候,可以將一部分數據交換到swap空間。也就是將內存中的一部分數據放到硬碟中,並釋放內存空間。這樣,釋放出的內存空間就又可以被利用來存儲其他數據了。
這樣,本來只有4G的內存,如果swap有2G的話,可使用的內存可以認為是6G。
但是,硬碟的速度比內存慢太多太多了。因此swap只是對內存的一種補充,是在內存不足時對內存的擴充,但是不能代替內存使用。
內存不足時, 操作系統 會選擇 最久沒被使用的內存數據 ,交換到swap空間。
注意,交換操作是由操作系統來進行的。
系統在什麼情況或條件下才會使用Swap分區的空間呢? 其實是Linux通過一個參數swappiness來控制的。當然還涉及到復雜的演算法。
這個參數值可為 0-100,控制系統 swap 的使用程度。
0告訴內核盡可能的不要將內存數據移到swap中,也即只有在迫不得已的情況下才這么做,而100告訴內核只要有可能,盡量的將內存中不常訪問的數據移到swap中。默認值為 60。注意:這個只是一個權值,不是一個百分比值,涉及到系統內核復雜的演算法
查看當前系統中swappiness的值
修改當前系統中swappiness的值
上面通過sysctl修改的swappiness值在系統重啟後會失效,要想重啟後繼續生效,需要修改配置文件/etc/sysctl.conf,將下面這行修改成10,如果文件中找不到這行的話,在文件末位加上這行就可以了
既然配置swap對桌面系統有幫助,那麼配置多少大小的swap比較合適呢?下面是ubuntu給出的建議:
Linux下有兩種類型的swap空間,swap分區和swap文件,他們有各自的特點:
swap分區上面由於沒有文件系統,所以相當於內核直接訪問連續的磁碟空間,效率相對要高點,但由於swap分區一般安裝系統時就分配好了了,後期要縮減空間和擴容都很不方便。
swap文件放在指定分區的文件系統裡面,所以有可能受文件系統性能的影響,但據說2.6版本以後的內核可以直接訪問swap文件對應的物理磁碟地址,相當於跳過了文件系統直接訪問磁碟,不過如果swap文件在磁碟上的物理位置不連續時,還是會對性能產生不利影響,但其優點就是靈活,隨時可以增加和移除swap文件。
如果配置有多個swap分區或者文件的話,這里將會有多行,每行代表一個正在被系統使用的swap分區或文件,下面是每個欄位的意思:
並不是swap空間佔用多就一定性能下降,真正影響性能是swap in和out的頻率,頻率越高,對系統的性能影響越大,我們可以通過vmstat命令來查看swap in/out的頻率
在添加swap分區前,首先得有一個空閑的分區,如果是一塊新的磁碟,可以用fdisk來創建一個新的分區用於swap。
添加swap文件就簡單多了,也沒有分區操作那麼有風險。
通過如下命令,能查看所有進程的使用swap情況
查看某個進程swap佔用內存大小腳本:
查看所有進程使用swap情況腳本:
❷ 如何合理設置Linux的swap分區
1、首先在linux中打開terminal命令窗口。
❸ linux系統swap是什麼意思
linux系統swap意思:
1、Swap分區,即交換區,系統在物理內存不夠時,與Swap進行交換。 其實,Swap的調整對Linux伺服器,特別是Web伺服器的性能至關重要。通過調整Swap,有時可以越過系統性能瓶頸,節省系統升級費用。
2、眾所周知,現代操作系統都實現了「虛擬內存」這一技術,不但在功能上突破了物理內存的限制,使程序可以操縱大於實際物理內存的空間,更重要的是,「虛擬內存」是隔離每個進程的安全保護網,使每個進程都不受其它程序的干擾。
3、計算機用戶會經常遇這種現象。例如,在使用Windows系統時,可以同時運行多個程序,當你切換到一個很長時間沒有理會的程序時,會聽到硬碟「嘩嘩」直響。這是因為這個程序的內存被那些頻繁運行的程序給「偷走」了,放到了Swap區中。因此,一旦此程序被放置到前端,它就會從Swap區取回自己的數據,將其放進內存,然後接著運行。
❹ Linux系統怎麼調整swap分區大小
/根分區並不是越大越好,因為驅動程序也是安裝在根分區的,所以盡量分配1g(不要低於1g)。然後就是/boot,此分區的空間只要有100m就足夠了,多了是沒有用的。而/usr分區要根據自己安裝軟體的數量決定,一般15g已經非常充裕。接下來是/var,這個分區是用來存儲安裝軟體的配置和數據文件用的,一般8-10g就可以了。而/tmp分區是用來存儲系統中所有的臨時文件用的,這個分區分配25g可以避免虛擬機或者系統中程序的下載臨時文件過大,而造成的空間不夠問題。而交換分區則是系統的交換文件所使用的獨立分區,如果內存大於4g可以完全不使用,不分配。在這些分區全部分配完畢之後,把剩餘空間全部分配給/home即可。
❺ 調整Linux系統SWAP空間大小教程
很多初學linux的童鞋應用都有這想的體會,在剛剛接觸Linux在安裝的時候,不知道SWAP空間分配多少比較好,所以會隨便分配一個,在真正使用的時候,比如安裝Oracle10g會要求很大的SWAP空間,發現swap空間不夠,那應該怎麼增加swap空間大小呢。這里就給大家分享一下如何調整Linux系統的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空間也增大了。
❻ 如何管理配置 Linux下Swap交換分區
理解什麼是swap分區
Swap是Linux下的虛擬內存分區,他的主要作用是在物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,讓當前的程序來使用,這些內存釋放出來的空間沒有什麼操作的程序,這些釋放的內存將被保存到swap空間中,等到這寫程序在運行的時候,再從swap虛擬空間來讀取這些程序給內存來使用。這樣中是在系統內存不夠用的時候,進行交換。在針對Linux web伺服器的時候,調整swap能提高系統很大的性能。
現在操作系統都突破了物理內存的限制,讓程序可以操作大於物理內存的空間,虛擬內存想防火牆一樣,讓每個進程不受其他程序的干擾。
我們需要注意的是不是所以的物理內存數據都會被交換到swap中的,要是所有的內存都放在swap中肯的是不可能的,所以有一部分直接交換到文件系統。當這文件讀取的時候,直接從文件系統調用不從swap調用程序文件。
早期的時候經常看見說swap不能超過128M,現在我們的伺服器一般不存在這種問題最大可以swap到2048M的.swap空間文件的結構是分頁的每一頁的大小和內存頁的大小是一樣的,這樣的好處是方便swap空間和內存之間的交換,舊版本的Linux實現Swap空間時,用Swap空間的第一頁作為所有Swap空間頁的一個「位映射」。這就是說第一頁的每一位,都對應著一頁Swap空間。如果這一位是1,表示此頁Swap可用;如果是0,表示此頁是壞塊,不能使用。這么說來,第一個Swap映射位應該是0,因為,第一頁Swap是映射頁。
所以取消了Linux映射的方法。
一般創建swap有兩種方法
第一種方法是在創建系統的時候添加swap分區
還有一種是在系統創建完之後再創建swap分區,或者創建臨時的swap。我們需要注意的是,在創建系統的時候我們沒有swap分區也是能正常安裝部署系統的,只是當系統文件調用swa文件的的時候會發生錯誤,所以我們需要swap不是沒有swap不一定能啟動起來系統。
查看當前swap資源的使用情況:
Swapon –s free –m
❼ Linux系統中如何調整swap大小
這里我要跟大家介紹的是Linux系統中調整swap大小的 方法 。歡迎大家閱讀。
Linux系統中調整swap大小的方法
1、使用free命令帶上m參數,查看swap文件大小,官方建議在RAM是2到4.5G時,swap是RAM的2倍;如果RAM大於等於4G則swap等於RAM即可
2、也可用cat 查看etc目錄下的swaps文件,如下圖
3、創建一個swap文件
復制內容到剪貼板
########
dd if=/dev/zero of=/tmp/swap bs=1MB count=1024
########
以下僅供參考:不用看
Creating a swap file
First of, make sure the file system the disk you wish to swap on is properly mounted. For the purposes of this tutorial we will assume the disk is mounted as /mnt and we want to use the file /mnt/myswap.swp for swapping.
使用下面的命令創建一個1G的swap文件
復制內容到剪貼板
Use the following command to create a 1024MB file that we will use for swapping
########
dd if=/dev/zero of=/mnt/myswap.swp bs=1024MB count=1
########
4、製作一個swap文件,如果覺得繁瑣,可以將mkswap文件掛載到tmp目錄下,例如:
復制內容到剪貼板
########
mkswap /tmp/swap
########
以下僅供參考:不用看
Preparing the swap file
Before we enable the swap file we must first set it up. The following command accomplishes just that:
########
mkswap /mnt/myswap.swp
########
5、使用swapon 啟動/tmp/swap
復制內容到剪貼板
########
swapon /tmp/swap
########
使用一個swap分區,如果已經有一個swap分區,該步驟可以省略
以下僅供參考:不用看
Using a swap partition
Setting up a swap partition is a bit more difficult, as the partition must be first created then formatted using the linux-swap file system. Once that is done, assuming the swap partition is at/dev/scsi/host0/bus0/target0/lun0/part5 (common for v24 USB drives with mutiple partitions), the only command that needs be issued is:
6、再次使用free查看增加後的swap大小
7、如果只想增加swap大小,請忽略以下的操作,重要!!如果不使用剛才增加的1G的swap文件,使用下面的swapoff命令,可以關閉,這樣swap文件就縮小了1G
使用swapoff關閉swap文件
復制內容到剪貼板
########
swapoff /tmp/swap
########
注意事項:如果只想增加swap大小,請忽略第7步的所有操作。