1.swap區和/tmp資料夾的聯絡以及介紹。
swap
空間的作用可簡單描述為:當系統的物理記憶體不夠用的時候,就需要將物理記憶體中
的一部分空間釋放出來,以供當前執行的程式使用。那些被釋放的空間可能來自一些很
長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到
swap
空間中,等到那些程
序要執行時,再從
swap
中恢復儲存的資料到記憶體中。這樣,系統總是在物理記憶體不夠時
,才進行
swap
交換。這種現象對於計算機使用者是經常遇到的。有一點要宣告的是,並不是所有從物理記憶體中交換出來的資料都會被放到
swap
中(如果
這樣的話,
swap
會不堪重負),有相當一部分的資料直接交換到檔案系統。例如,有的
程式會開啟一些檔案,對檔案進行讀寫
(其實每個程式都至少開啟乙個檔案,那就是執行程式本身
),當這些程式的記憶體空間需要交換出去時,檔案部分的資料就沒有必要放到
swap
空間中了,如果是讀檔案操作,那麼記憶體資料直接就釋放了,不需要交換出來,因
為下次需要時,直接從檔案系統就能恢復
;如果是寫檔案,只需要將變化的資料儲存到文
件中,以便恢復。但是那些用
malloc(
3c
)
和new
函式(c++
語言中分配空間的語句)生成的物件的資料則不同,需要
swap
空間,因為它們在檔案系統中沒有相應的「儲備」檔案,因此被稱為「匿名」
(anonymous)
的記憶體資料,這類資料還包括堆疊中的一些狀態和變數資料等,所以說,
swap
空間是「匿名」資料的交換空間。
例如:web
伺服器能根據不同的請求數量衍生出多個服務程序
(或執行緒
),如果
swap
空間用完,則服務程序無法進動,通常會出現
的錯誤,嚴重時會造成服務程序的死鎖。
通常情況下,
swap
空間應大於或等於物理記憶體的大小,最小不應小於
64m,通常
swap
空間的大小應是物理記憶體的2-
2.5倍
(solaris 2
以上的版本有所變化,見下文
)。但根據不
同的應用,應有不同的配置:如果是小的桌面系統,只需要較小的
swap
空間,而大的服
務器系統則視情況不同需要不同大小的
swap
空間。特別是資料庫伺服器和
web伺服器會隨
著訪問量的增加,對
swap
空間的要求也會增加,具體配置參見各自伺服器產品的說明。
另外,swap
分割槽的數量對效能也有很大的影響。因為
swap
交換的操作是磁碟
i/o的操作,
如果有多個
swap
交換區,
swap
空間的分配會以輪流的方式操作於所有的
swap
,這樣會大
大均衡i/o
的負載,加快
swap
交換的速度。如果只有乙個交換區,所有的交換操作會使交
換區變得很忙,使系統大多數時間位於等待狀態,效率很低,用效能監視工具就會發現
,此時的
cpu並不很忙,而系統卻慢,這說明,瓶頸在
i/o上,依靠提高
cpu的速度是解決
不了問題的。
效能監視
最常用的是
vmstat
命令,在大多數
unix
平台下都有此命令,此命令可以檢視大多數效能
的指標。
另外使用
swap -s
也能簡單的檢視當前
swap
資源的使用情況。例如:
#swap
-s
你知道嗎?虛擬
swap
空間與/tmp
目錄有相當大的關係。
sun在實現
/tmp
目錄時,充分考
慮了應用程式執行的效率。許多應用程式,特別是資料庫服務都會頻繁使用
/tmp
目錄作為臨時資料儲存區,而
solaris
將/tmp
目錄下的檔案都放在記憶體中而不是硬碟裡,這樣
會大大提高應用程式的效率。
但是/tmp
目錄的空間是從系統虛擬空間裡擠出來的,是虛
擬swap
空間的一部分。如果說,你用完了
/tmp
空間,也就是用完了
swap
空間,所以要小
心監視系統的
/tmp
目錄的使用情況,千萬別用光了,否則系統會癱瘓
!下面兩點建議作為
參考:1.
在mount /tmp
目錄時,使用(-
o size)
選項來控制
/tmp
目錄的大小。
2.當使用編譯器編譯檔案時,如果不想占用
swap
空間,則用
tmpdir
環境變數指向另外一
個臨時目錄,而不是
/tmp
目錄。增加
swap
空間1.
成為超級使用者
$su
-root
2.建立
swap檔案#
mkfile nnn[klblm] filename
如:#mkfile
100m
swapfile1
3.啟用
swap檔案#
/usr/sbin/swap
-a /path/filename
swap
檔案必須以絕對路徑來指定,
filename
指的是上一步建立的檔案。
4.現在新加的
swap
檔案已經起作用了,但系統重新啟動以後,並不會記住前幾步的操作
。因此要在
/etc/vfstab
檔案中記錄檔案的名字,和
swap
型別,如:
/path/filename --
swap
-no -5.
效驗swap
檔案是否加上
/usr/sbin/swap
-l
刪除多餘的
swap
空間1.
成為超級使用者
2.使用
swap -d
命令收回
swap
空間。#
/usr/sbin/swap
-d /path/filename
3.編輯
/etc/ufstab
檔案,去掉此
swap(交換)
檔案的實體。
4.從檔案系統中**此檔案。
#rm swap
-filename
5.當然,如果此
swap(交換)
空間不是乙個檔案,而是乙個分割槽,則需建立乙個新的檔案系統,再掛接到原來的檔案系統上。
ubuntu下swap分割槽 boot分割槽 概念理解
swap是linux下的虛擬記憶體分割槽,作用是在物理記憶體使用完成之後,將磁碟空間 也即swap分割槽 虛擬成記憶體來使用。swap和windows系統的交換檔案作用類似,但是它是一段連續的磁碟空間,並且對使用者不可見。swap分割槽能夠作為 虛擬 的記憶體,但其速度比物理記憶體慢,因此若需要更快...
分割槽 swap分割槽
what?將乙個硬碟驅動器,劃分為若干個邏輯上的驅動器。一般來說,分割槽和 boot分割槽的是必要,swap分割槽的重要的,使用者分割槽是可要的。why?多年前我們就習慣將硬碟分割槽,但是那時候和現在分割槽的理由或不相同。總之分割槽的理由或者說好處,大概有這些。檔案系統限制最大硬碟容量,如00年前後...
Linux下修改Swap分割槽大小
據了解linux下可以有兩種方法建立交換空間,一種是建立交換分割槽,另一種是建立交換檔案。本文記錄的是建立交換檔案的方法,因為我用的是這種方法。新增交換檔案步驟 1 找個地方建立乙個.swap的檔案,我放在了 mnt目錄下 dd if dev zero of mnt 10gb.swap bs 1g ...