Solaris性能監(jiān)控的Swap空間管理_第1頁
Solaris性能監(jiān)控的Swap空間管理_第2頁
Solaris性能監(jiān)控的Swap空間管理_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、    Solaris性能監(jiān)控的Swap空間管理 凱思信得 王昱 隨著電子商務如火如荼的開展,網(wǎng)站服務器的性能變得尤其重要。一旦服務器的能力不能滿足用戶的需要,就會對用戶的服務大打折扣,那么就需要對服務器進行升級擴容。但是,有些時候只需對服務器進行一些適當?shù)男阅苷{整,便可以越過性能的瓶頸,大大提高服務器的吞吐能力,從而減少服務器升級的費用。 本文介紹了在Solaris平臺上Swap(交換)空間的基本概念、實現(xiàn)的原理以及對Swap(交換)空間進行監(jiān)控的方法和調整的策略。 什么是SWAP(交換)空間 對于一般的Solaris系統(tǒng)管理員來說,很少會接觸Swap

2、(交換)空間,在他們看來Swap區(qū)只不過是磁盤上的一兩個分區(qū)或是幾個Swap(交換)文件,當系統(tǒng)沒有足夠的物理內存來處理當前進程的時候,就利用Swap(交換)空間作為虛擬內存的臨時存儲空間,這種說法從技術角度來說是沒有錯的,但Solaris在實現(xiàn)Swap時有其非常獨特的地方。 WAP空間作用 眾所周知,現(xiàn)代操作系統(tǒng)都實現(xiàn)了“虛擬內存”這一技術,不但在功能上突破了物理內存的限制,使程序可以操縱大于實際物理內存的空間,更重要的是“虛擬內存”是隔離每個進程的安全保護網(wǎng),使每個進程不受其他程序的干擾。 Swap空間的作用可簡單描述為:當系統(tǒng)的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來

3、,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢復保存的數(shù)據(jù)到內存中。這樣,系統(tǒng)總是在物理內存不夠時,才進行Swap交換。這種現(xiàn)象對于計算機使用者是經(jīng)常遇到的。 有一點要聲明的是,并不是所有從物理內存中交換出來的數(shù)據(jù)都會被放到Swap中(如果這樣的話,Swap會不堪重負),有相當一部分的數(shù)據(jù)直接交換到文件系統(tǒng)。例如,有的程序會打開一些文件,對文件進行讀寫(其實每個程序都至少打開一個文件,那就是運行程序本身),當這些程序的內存空間需要交換出去時,文件部分的數(shù)據(jù)就沒有必要放到Swap

4、空間中了,如果是讀文件操作,那么內存數(shù)據(jù)直接就釋放了,不需要交換出來,因為下次需要時,直接從文件系統(tǒng)就能恢復;如果是寫文件,只需要將變化的數(shù)據(jù)保存到文件中,以便恢復。但是那些用malloc(3C)和new函數(shù)生成的對象的數(shù)據(jù)則不同,需要Swap空間,因為它們在文件系統(tǒng)中沒有相應的“儲備”文件,因此被稱為“匿名”(Anonymous)的內存數(shù)據(jù),這類數(shù)據(jù)還包括堆棧中的一些狀態(tài)和變量數(shù)據(jù)等,所以說,Swap空間是“匿名”數(shù)據(jù)的交換空間。 Swap的配置對性能的影響 太多的Swap空間會浪費磁盤的空間,而太少的Swap空間,系統(tǒng)則會發(fā)生錯誤。 如果系統(tǒng)的物理內存用光了,你的系統(tǒng)就會跑得慢,但仍能運行

5、;如果Swap空間用光了,那么系統(tǒng)就會發(fā)生錯誤。例如,Web服務器能根據(jù)不同的請求數(shù)量衍生出多個服務進程(或線程),如果Swap空間用完,則服務進程無法進動,通常會出現(xiàn)"application is out of memory"的錯誤,嚴重時會造成服務進程的死鎖。因此Swap空間的分配是很重要的。 通常情況下,Swap空間應大于或等于物理內存的大小,最小不應小于64M,通常Swap空間的大小應是物理內存的22.5倍(Solaris 2以上的版本有所變化,見下文)。但根據(jù)不同的應用,應有不同的配置:如果是小的桌面系統(tǒng),只需要較小的Swap空間,而大的服務器系統(tǒng)則視情況不同需要

6、不同大小的Swap空間。特別是數(shù)據(jù)庫服務器和Web服務器會隨著訪問量的增加,對Swap 空間的要求也會增加,具體配置參見各自服務器產品的說明。 另外,Swap分區(qū)的數(shù)量對性能也有很大的影響。因為Swap交換的操作是磁盤I/O的操作,如果有多個Swap交換區(qū),Swap空間的分配會以輪流的方式操作于所有的Swap,這樣會大大均衡I/O的負載,加快Swap交換的速度。如果只有一個交換區(qū),所有的交換操作會使交換區(qū)變得很忙,使系統(tǒng)大多數(shù)時間位于等待狀態(tài),效率很低,用性能監(jiān)視工具就會發(fā)現(xiàn),此時的CPU并不很忙,而系統(tǒng)卻慢,這說明,瓶頸在I/O上,依靠提高CPU的速度是解決不了問題的。 性能監(jiān)視 Swap空

7、間的分配固然很重要,而系統(tǒng)在運行時的性能監(jiān)控卻更加有價值,通過性能監(jiān)視工具可以檢查系統(tǒng)的各項性能指標,找到系統(tǒng)性能的瓶頸。本文只介紹一下在Solaris下和Swap相關的一些命令和用途。 最常用的是Vmstat命令,在大多數(shù)Unix平臺下都有此命令,此命令可以查看大多數(shù)性能的指標。 另外使用swap s 也能簡單的查看當前swap資源的使用情況。例如: swap s total: 65896k bytes allocated 56840k reserved = 122736k used, 1069456k available 能夠方便的看出swap空間的已用和未用資源的大小。應該使Swap保持

8、30的負載以下,才能保證系統(tǒng)的良好性能。 Solaris中Swap的特點 虛擬Swap空間 本來Swap空間就是為虛擬內存服務的,現(xiàn)在Solaris的Swap空間也成為虛擬,這到底是怎么回事呢? 讓我們看一個例子就明白了,當在Solaris 2以前版本的Solaris(或其它Unix, 如Linux)上編程時經(jīng)常會出現(xiàn)一個問題: 假設系統(tǒng)當前還有可用的內存空間為30M,而只剩下10M的Swap空間了,這時,如果有一個進程開始運行并企圖執(zhí)行Malloc(1510241024)的命令(分配15M空間),這個進程會因為這個命令而失敗。 為什么呢?系統(tǒng)不是有30M可用的內存空間嗎?原因在于:你的Swap空間不足,系統(tǒng)認為你在分配空間以后,沒有能力(空間)在發(fā)生頁面交換時,將這部分數(shù)據(jù)保存起來,因此認為你沒有資格分配這塊空間。這不是太不公平了吧!也許這15M空間根本不用交換,當前系統(tǒng)可是還有30M內存空間的富余啊! 還有更不公平的呢?有些大型系統(tǒng)配備了海量的內存,1G或4G,配了這么多內存就是為了避免交換,提高運行速度,可是系統(tǒng)還要為這個系統(tǒng)分配并不需要的Swap空間,占用了大量磁盤資源。 為了彌補這個缺陷,Sun為Solaris 2 以后的版本設計了虛擬Swap空間。所謂虛擬的Swap空間,概念其實很簡單,swap空間再也不是單指硬盤的分區(qū)或文件。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論