新聞中心
在Linux服務(wù)器中,內(nèi)存和交換空間是系統(tǒng)運(yùn)行必不可少的兩個部分。優(yōu)化系統(tǒng)的內(nèi)存管理和交換空間是確保系統(tǒng)高效工作的關(guān)鍵步驟。本文將討論關(guān)于如何優(yōu)化Linux系統(tǒng)的內(nèi)存管理和交換空間的一些技巧和步驟。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供科爾沁網(wǎng)站建設(shè)、科爾沁做網(wǎng)站、科爾沁網(wǎng)站設(shè)計(jì)、科爾沁網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、科爾沁企業(yè)網(wǎng)站模板建站服務(wù),十年科爾沁做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
1.調(diào)整交換空間大小
交換空間用于暫時(shí)存儲不再使用內(nèi)存的進(jìn)程和數(shù)據(jù)。然而,如果交換空間設(shè)置過小,系統(tǒng)的一些進(jìn)程可能會被迫過早地被殺死,執(zhí)行效率可能會大幅下降。
一般來說,如果內(nèi)存的總量小于等于2GB,則應(yīng)將交換空間設(shè)置為內(nèi)存大小的2倍;而如果內(nèi)存的總量大于2GB,則建議將交換空間設(shè)置為2GB+內(nèi)存大小的一半。
在調(diào)整交換空間大小之前,建議先運(yùn)行free -h或top -n 1看看當(dāng)前的內(nèi)存使用率。如果內(nèi)存使用率過高,則需要優(yōu)化內(nèi)存管理;如果內(nèi)存使用率較低,則可以適量減少交換空間大小。
2.啟用透明大頁支持
傳統(tǒng)的大頁面由于會導(dǎo)致內(nèi)存碎片化和缺頁調(diào)度的開銷,而不利于內(nèi)存管理的優(yōu)化。而透明大頁(Transparent Huge Page)則可以在不增加缺頁調(diào)度的懲罰和寫時(shí)復(fù)制(Copy-On-Write)開銷的同時(shí),有效地優(yōu)化內(nèi)存管理。
啟用透明大頁支持可以極大地提升內(nèi)存管理的效率,降低CPU使用率和延遲時(shí)間??梢酝ㄟ^cat /sys/kernel/mm/transparent_hugepage/enabled來查看透明大頁的使用狀態(tài)。而可以通過修改/sys/kernel/mm/transparent_hugepage/enabled文件來啟用透明大頁。
3.禁用內(nèi)存泄漏進(jìn)程
內(nèi)存泄漏進(jìn)程是指內(nèi)存管理存在漏洞,導(dǎo)致某些進(jìn)程長時(shí)間占用大量內(nèi)存的現(xiàn)象。這些進(jìn)程會嚴(yán)重危及系統(tǒng)的性能和穩(wěn)定性。因此,禁用內(nèi)存泄漏進(jìn)程對于優(yōu)化內(nèi)存管理至關(guān)重要。
可以使用一些工具和命令來查找和殺死內(nèi)存泄漏進(jìn)程。例如,可以通過ps命令查看內(nèi)存使用更大的進(jìn)程,或者使用top命令來查看系統(tǒng)中CPU、內(nèi)存和I/O等的運(yùn)行情況。
4.使用進(jìn)程控制器
進(jìn)程控制器是一種用于控制進(jìn)程的工具。它可以幫助我們調(diào)整進(jìn)程的CPU使用率、內(nèi)存限制以及其他資源限制等。
常用的進(jìn)程控制器有cgroups和systemd。cgroups是Linux內(nèi)核通過管理組限制進(jìn)程資源使用的機(jī)制。而systemd是進(jìn)程管理器和初始化系統(tǒng),還可以與cgroups一起使用,控制每個進(jìn)程使用的資源量。
5.優(yōu)化內(nèi)核參數(shù)
內(nèi)核參數(shù)可以控制系統(tǒng)的一些基本設(shè)置,包括內(nèi)存緩存、文件打開限制、文件句柄數(shù)、網(wǎng)絡(luò)緩存和協(xié)議棧等設(shè)置。通過優(yōu)化這些內(nèi)核參數(shù),可以提高系統(tǒng)的性能和穩(wěn)定性,影響內(nèi)存管理和交換空間的優(yōu)化。
一些常用的內(nèi)核參數(shù)包括vm.swappiness、vm.dirty_background_ratio和vm.overcommit_memory等。vm.swappiness參數(shù)控制交換空間的使用情況。而vm.dirty_background_ratio和vm.overcommit_memory參數(shù)可以控制內(nèi)存使用情況。
6.使用優(yōu)化工具
使用一些優(yōu)化工具可以幫助我們更快速和方便地進(jìn)行內(nèi)存管理和交換空間的優(yōu)化。
常用的優(yōu)化工具包括sar、top、htop、vmstat、ss、lsof等。這些工具可以幫助我們實(shí)時(shí)地監(jiān)控系統(tǒng)狀態(tài)、篩選出不必要的進(jìn)程和服務(wù)等。
Linux系統(tǒng)的內(nèi)存管理和交換空間對于系統(tǒng)的性能和穩(wěn)定性至關(guān)重要。通過調(diào)整交換空間大小、啟用透明大頁支持、禁用內(nèi)存泄漏進(jìn)程、使用進(jìn)程控制器和優(yōu)化內(nèi)核參數(shù)等方法,可以有效地優(yōu)化系統(tǒng)的內(nèi)存管理和交換空間。同時(shí),使用優(yōu)化工具可以幫助我們快速地監(jiān)控系統(tǒng)狀態(tài),及時(shí)調(diào)整系統(tǒng)配置,提高Linux服務(wù)器的運(yùn)行效率和穩(wěn)定性。
相關(guān)問題拓展閱讀:
- linux安裝如何分區(qū)?如何手動分區(qū)?為什么?
- LINUX系統(tǒng)的內(nèi)存管理知識詳解
- linux查看內(nèi)存使用情況
linux安裝如何分區(qū)?如何手動分區(qū)?為什么?
linux下,建議新手分區(qū)時(shí)只分兩個:一個“SWAP”分區(qū),大小為內(nèi)存的兩倍,一個“/”分區(qū)大小為全部可用空間。
這里把Linux分區(qū)問題詳細(xì)地介紹一下,以Red Hat Linux7.1為例。
首先我們要對硬盤分區(qū)的基本概念進(jìn)行一些初步的了解,硬盤的分區(qū)主要分為基本分區(qū)
(Primary Partion)和擴(kuò)充分區(qū)(Extension Partion)兩種,基本分區(qū)和擴(kuò)充分區(qū)的數(shù)目之
和不能大于四個。且基本分區(qū)可以馬上被使用但不能再分區(qū)。擴(kuò)充分區(qū)必須再進(jìn)行分區(qū)后才
能使用,也就是說它必須還要進(jìn)行二次分區(qū)。那么由擴(kuò)充分區(qū)再分下去的是什么呢?它就是
邏輯分區(qū)(Logical Partion),況且邏輯分區(qū)沒有數(shù)量上限制。
對習(xí)慣于使用Dos或Windows的用戶來說,有幾個分區(qū)就有幾個驅(qū)動器,并且每個分區(qū)都
會獲得一個字母標(biāo)識符,然后就可以選用這個字母來指定在這個分區(qū)上的文件和目錄,它們
的文件結(jié)構(gòu)都是獨(dú)立的,非常好理解。但對這些用戶初上手Red Hat linux嗎, 可就有點(diǎn)惱
人了。因?yàn)閷ed Hat linux用戶來說無論有幾個分區(qū),分給哪一目錄使用, 它歸根結(jié)底就
只有一個根目錄,一個獨(dú)立且唯一的文件結(jié)構(gòu)。 Red Hat linux中每個分區(qū)都是用來組成整
個文件系統(tǒng)的一部分,因?yàn)樗捎昧艘环N叫“載入”的處理方法,它的整個文件系統(tǒng)中包含了
一整套的文件和目錄,且將一個分區(qū)和一個目錄聯(lián)系起來。這時(shí)要載入的一個分區(qū)將使它的
存儲空間在一個目錄下獲得。下面我們先來看看Red Hat linux的驅(qū)動器是如何標(biāo)識的。
對于IDE硬盤,驅(qū)動器標(biāo)識符為“hdx~”,其中“hd”表明分區(qū)所在設(shè)備的類型,這里是
指IDE硬盤了?!皒”為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),
“~”代表分區(qū),前四個分區(qū)用數(shù)字1到4表示,它們是主分區(qū)或擴(kuò)展分區(qū),從5開始就是邏輯
分區(qū)。例,hda3表示廳緩祥為之一個IDE硬盤上的第三個主分區(qū)或擴(kuò)展分區(qū),hdb2表示為第二個
IDE硬盤上的第二個主分區(qū)或擴(kuò)展分區(qū)。對于SCSI硬盤則標(biāo)識為“sdx~”,SCSI硬盤是用
“sd”來表示分區(qū)所在設(shè)備的類型的,其余則和IDE硬盤的表示方法一樣,不哪廳在多說。
我們從上面可以看到,Red Hat linux的分區(qū)是不同于其它操作系統(tǒng)分區(qū)的, 它的分區(qū)
格式只有Ext2和Swap兩種,Ext2用于存放系統(tǒng)文件,Swap則作為Red Hat linux的交換分區(qū)。
那么現(xiàn)在我們就可以知道Red Hat linux至少需要兩個專門的分區(qū)(Linux Native和Linux
Swap)況且不能將Red Hat linux安裝在Dos/Windows分區(qū)。一般來說我們將Red Hat Linux
安裝一個或多個類型為“l(fā)inux Native”的硬盤分區(qū), 但是在Red Hat Linux的每一個分區(qū)
都必須要指定一個“Mount Point”(載入點(diǎn)),告訴Red Hat linux在啟動時(shí),這個目錄要
給哪個目錄使用。對“Swap”分區(qū)來說,一般定義一個且它不必要定義載入點(diǎn)。 下面我們先
對“l(fā)inux Native”和“Linux Swap”有個初步的了解。
*SWAP分區(qū)是LINUX暫時(shí)存儲數(shù)據(jù)的交換分區(qū),它主要是把主內(nèi)存上暫時(shí)不用得數(shù)據(jù)存起
來,在需要的時(shí)候再調(diào)進(jìn)內(nèi)存內(nèi),且作為SWAP使用的分區(qū)不用指定“Mout Point”(載入點(diǎn)),
既然它作為交換分區(qū),我們理所當(dāng)然應(yīng)給它指定大小,它至少要等于系統(tǒng)上實(shí)際內(nèi)存的量,
一般來說它的大小是內(nèi)存的兩倍。具體如下:當(dāng)順利啟動了安裝過程后,會顯示一個boot:提示符,
這時(shí)你只要鍵入boot:linux mem=1024MB就可以了(假定你的電腦內(nèi)存為512MB)。另外你也可以創(chuàng)建和使用一個以上的交換
分區(qū),最多16個。
*linux Native是存放系統(tǒng)文件的地方,它只能用EXT2的分區(qū)類型,上面已說過。對
Windows用戶來說,操作系統(tǒng)必須裝在同一分區(qū)里,它是商業(yè)軟件嗎!所以你沒有選擇的余地!
對Red Hat linux來說,你有了扮搏較大的選擇余地,你可以把系統(tǒng)文件分幾個區(qū)來裝 (必須要
說明載入點(diǎn)),也可以就裝在同一個分區(qū)中(載入點(diǎn)是“/”)。 下面我們看看可以創(chuàng)建哪些
分區(qū)(僅列常用幾種)。
/boot分區(qū),它包含了操作系統(tǒng)的內(nèi)核和在啟動系統(tǒng)過程中所要用到的文件, 建這個分
區(qū)是有必要的,因?yàn)槟壳按蠖鄶?shù)的PC機(jī)要受到BIOS的限制,況且如果有了一個單獨(dú)的/boot啟
動分區(qū),即使主要的根分區(qū)出現(xiàn)了問題,計(jì)算機(jī)依然能夠啟動。
/usr分區(qū),是Red Hat linux系統(tǒng)存放軟件的地方,如有可能應(yīng)將更大空間分給它。
/home分區(qū),是用戶的home目錄所在地,這個分區(qū)的大小取決于有多少用戶。 如果是多
用戶共同使用一臺電腦的話,這個分區(qū)是完全有必要的,況且根用戶也可以很好地控制普通
用戶使用計(jì)算機(jī),如對用戶或者用戶組實(shí)行硬盤使用,限制普通用戶訪問哪些文件等。
其實(shí)單用戶也有建立這個分區(qū)的必要,因?yàn)闆]這個分區(qū)的話,那么你只能以根用戶的身份登
陸系統(tǒng),這樣做是危險(xiǎn)的,因?yàn)楦脩魧ο到y(tǒng)有絕對的使用權(quán),可一旦你對系統(tǒng)進(jìn)行了誤操
作,麻煩也就來了。
/var/log分區(qū),是系統(tǒng)日志記錄分區(qū),如果設(shè)立了這一單獨(dú)的分區(qū),這樣即使系統(tǒng)的日
志文件出現(xiàn)了問題,它們也不會影響到操作系統(tǒng)的主分區(qū)。
/tmp分區(qū),用來存放臨時(shí)文件。這對于多用戶系統(tǒng)或者網(wǎng)絡(luò)服務(wù)器來說是有必要的。這
樣即使程序運(yùn)行時(shí)生成大量的臨時(shí)文件,或者用戶對系統(tǒng)進(jìn)行了錯誤的操作,文件系統(tǒng)的其
它部分仍然是安全的。因?yàn)槲募到y(tǒng)的這一部分仍然還承受著讀寫操作,所以它通常會比其
它的部分更快地發(fā)生問題。
/bin分區(qū),存放標(biāo)準(zhǔn)系統(tǒng)實(shí)用程序。
/dev分區(qū),存放設(shè)備文件。
/opt分區(qū),存放可選的安裝的軟件。
/in分區(qū),存放標(biāo)準(zhǔn)系統(tǒng)管理文件。
上面介紹了幾個常用的分區(qū),一般來說我們需要一個SWAP分區(qū),一個/boot分區(qū),一個
/usr分區(qū),一個/home 分區(qū),一個/var/log分區(qū)。當(dāng)然這沒有什么規(guī)定,完全是依照你個人
來定的。但記住至少要有兩個分區(qū),一個SWAP分區(qū),一個/分區(qū)。下面我們來看看怎樣分區(qū)。
用戶可以使用兩種分區(qū)工具:
1.Disk Druid:它是Red Hat linux提供的硬盤管理工具, 它最初是隨Red HatLinux5
一起發(fā)售的,它可以根據(jù)用戶的要求創(chuàng)建和刪除硬盤分區(qū),另外還可以為每個分區(qū)管理載入
點(diǎn),這是一個不錯的分區(qū)軟件,建議讀者使用。本文也將以此軟件詳細(xì)地介紹Red Hat linux
分區(qū)。
2.Fdisk:它是傳統(tǒng)的linux硬盤分區(qū)工具,比Disk Druid更強(qiáng)大,使用更加靈活。 但
是Fdisk要求用戶對硬盤分區(qū)有一定經(jīng)驗(yàn),并能夠適應(yīng)且讀懂簡單的文本界面。 如果你是第
一次對一個硬盤驅(qū)動器進(jìn)行分區(qū)操作的話,更好還是避免Fdisk這樣的程序, 它雖然強(qiáng)大但
用起來的感覺不是太好的。
附注:此外Red Hat linux還提供了一種叫fips的分區(qū)軟件, 但這種分區(qū)軟件具有一定
的危險(xiǎn)性,不宜提倡操作。雖然有許多人已經(jīng)成功地用fips對他們的硬盤進(jìn)行了分區(qū),但這
不能保證fips將在你的系統(tǒng)中也能正常地運(yùn)行。況且Red Hat linux也不提供對fips的支持,
勸你對這種分區(qū)軟件還是慎用為好。
如果你希望將Red Hat linux安裝在已經(jīng)含有其他操作系統(tǒng)的盤上, 也就是多重操作系
統(tǒng),這個情況就比較復(fù)雜了,因?yàn)橐粋€錯誤就可以毀掉你辛辛苦苦保存的數(shù)據(jù),讓你欲哭無
淚。如果你想讓Red Hat linux與OS/2共存,那你必須使用OS/2的分區(qū)軟件來創(chuàng)建硬盤分區(qū),
要不然OS/2將不能識別硬盤分區(qū)。另外你也可以用其它的一些分區(qū)軟件來分區(qū),下面列出了
一些常見的這種分區(qū)工具軟件:
*Partition Commander軟件,從
www.v-com.com
處下載。
*partition It軟件,從
www.quarterdeck..com
處下載。
*partition Magic軟件,從
www.powerquest.com
處下載。
注意:硬盤分區(qū)是一個非常危險(xiǎn)的步驟,你要想安全地在不丟失數(shù)據(jù)的情況下改變磁盤
的分區(qū)有點(diǎn)不太現(xiàn)實(shí),所以我建議大家對重要得數(shù)據(jù)進(jìn)行備份,裝多操作系統(tǒng)更要如此,以
備不測。當(dāng)然或許你是剛裝系統(tǒng)或就準(zhǔn)備重裝,那也就是另外一回事了,但是大家對待分區(qū)
一定要慎重又慎重,切記。
下面我們詳細(xì)地了解一下Red Hat linux7.1自帶的Disk Druid分區(qū)軟件所包含的一些信息。
1.Current Disk Partitions區(qū)域(這里每一行代表了一個硬盤分區(qū))
Mount Point 指出Red Hat linux啟動并運(yùn)行以后該分區(qū)的加載點(diǎn),交換空間
(linux swap)是不需要加載點(diǎn)的。
Device 硬盤分區(qū)的設(shè)備名
Requeted 給這個分區(qū)定義時(shí)申請的最小空間
Actual 分配給該分區(qū)的實(shí)際空間
Type 說明了該分區(qū)的類型
2.Drive Summaries區(qū)域(這里每一行代表一個硬盤)
Drive 顯示硬盤的設(shè)備名
Geom 顯示硬盤的物理信息,C(柱面),H(磁頭),S(扇區(qū))
Total 顯示硬盤的可用空間
Used 顯示硬盤中已分配的空間
Free 顯示硬盤中末分配的空間
Bar Graph 該條圖形化地顯示當(dāng)前硬盤使用的百分比,#號越少,空閑空間越多
3.Disk Druid按鈕
Add 增加一個分區(qū)
Edit 修改在Current Disk Partitons中被選中的分區(qū)的屬性, 選中該按鈕將出現(xiàn)一個
對話框來進(jìn)行修改,但只能修改該分區(qū)的載入點(diǎn)。如果你需要修改其它內(nèi)容,請先
刪除該分區(qū),而后再重新建這分區(qū)。
Delete 刪除一個在Current Disk Partitons中被選中的分區(qū)
Ok 確認(rèn)
Back 不作保存,返回
4.如果你想增加一個分區(qū),請點(diǎn)擊“add”按鈕,這時(shí)會出現(xiàn)一對話框,內(nèi)容說明如下:
Mount Point 分區(qū)載入點(diǎn),說明分區(qū)
Size 分區(qū)的大小
Grow to fill disk 表明這個分區(qū)將添滿一個硬盤的整個未分配空間。這時(shí),這個分區(qū)
的容量可以隨著其它分區(qū)的修改增加或減少
Type 選擇分區(qū)類型
Allowable Drives 選擇這個分區(qū)將創(chuàng)建在哪個硬盤上
好了,通過上面的了解想必大家都能容易地創(chuàng)建出適合自己的分區(qū)。下一步我們所要做
的工作就是要格式化所建的分區(qū),選擇你要格式化的分區(qū)并按Space鍵, 如果想在格式化分
區(qū)時(shí)檢查有無壞塊,選擇“Check for bad blocks during format”,點(diǎn)擊OK并按Space鍵。如
果分區(qū)中已無你要所保存的數(shù)據(jù),更好都格式化一下。
看鄭春一配叢消看視培知頻教程吧
LINUX系統(tǒng)的內(nèi)存管理知識詳解
內(nèi)存是Linux內(nèi)核所管理的最重要的資源之一。內(nèi)存管理系統(tǒng)是操作系統(tǒng)中最為重要的部分,因?yàn)橄到y(tǒng)的物理內(nèi)存總是少于系統(tǒng)所需要的內(nèi)存數(shù)量。虛擬內(nèi)存就是為了克服這個矛盾而采用的策略。系統(tǒng)的虛擬內(nèi)存通過在各個進(jìn)程之間共享內(nèi)存而使系統(tǒng)看起來有多于實(shí)際內(nèi)存的內(nèi)存容量。Linux支持虛擬內(nèi)存, 就是使用磁盤作為RAM的擴(kuò)展,使可用內(nèi)存相應(yīng)地有效擴(kuò)大。核心把當(dāng)前不用的內(nèi)存塊存到硬盤,騰出內(nèi)存給其他目的。當(dāng)原來的內(nèi)容又要使用時(shí),再讀回內(nèi)存。以下就是我為大家整理到的詳細(xì)LINUX系統(tǒng)內(nèi)存管理的知識,歡迎大家閱讀!!!
LINUX系統(tǒng)教程:內(nèi)存管理的知識詳解
一、內(nèi)存使用情況監(jiān)測
(1)實(shí)時(shí)監(jiān)控內(nèi)存使用情況
在命令行使用“Free”命令可以監(jiān)控內(nèi)存使用情況
代碼如下:
#free
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:72
上面給出了一個256兆的RAM和512兆交換空間的系統(tǒng)情況。第三行輸出(Mem:)顯示物理內(nèi)存。total列不顯示核心使用的物理內(nèi)存(通常大約1MB)。used列顯示被使用的內(nèi)存總額(第二行不計(jì)緩沖)。 free列顯示全部沒使用的內(nèi)存。Shared列顯示多個進(jìn)程共享的內(nèi)存總額。Buffers列顯示磁盤緩存的當(dāng)前大小。第五行(Swap:)對對換空間,顯示的信息類似上面。如果這行為羨芹全0,那么沒使用對換空間。在缺省的狀態(tài)下,free命令以千字節(jié)(也就是1024字節(jié)為單位)來顯示內(nèi)存使用情況??梢允褂谩猦參數(shù)以字節(jié)為單位顯示內(nèi)存使用情況,或者可以兄晌使用—m參數(shù)以兆字節(jié)為單位顯示內(nèi)存使用情況。還可以通過—s參數(shù)使用命令來不間斷地監(jiān)視內(nèi)存使用情況:
#free –b –s2
這個命令將會在終端窗口中連續(xù)不斷地報(bào)告內(nèi)存的使用情況,每2秒鐘更新一次。
(2)組合watch與 free命令用來實(shí)時(shí)監(jiān)控內(nèi)存使用情況:
代碼如下:
#watch -n 2 -d free
Every 2.0s: free Fri Jul 6 06:06:
total used free shared buffers cached
Mem:64784
-/+ buffers/cache:
Swap:15928
watch命令會每兩秒執(zhí)行 free一次,執(zhí)行前會清除屏幕,在同樣位置顯示數(shù)據(jù)。因?yàn)?watch命令不會卷動屏幕,所以適合出長時(shí)間的監(jiān)測內(nèi)存使用率??梢允褂?-n選項(xiàng),控制執(zhí)行的頻率;也可以利用 -d選項(xiàng),讓命令將每次不同的地方顯示出來。Watch命令會一直執(zhí)行,直到您按下 – 為止。
二、虛擬內(nèi)存的概念
(1)Linux虛擬內(nèi)存實(shí)現(xiàn)機(jī)制
Linux虛擬內(nèi)存的實(shí)現(xiàn)需要六種機(jī)制的支持:地址映射機(jī)制、內(nèi)存分配回收機(jī)制、緩存和刷新機(jī)制、請求頁機(jī)制、交換機(jī)制、內(nèi)存共享機(jī)制。
首先內(nèi)存管理程序通過映射機(jī)制把用戶程序的邏輯地址映射到物理地址,在用戶程序運(yùn)行時(shí)如果發(fā)現(xiàn)程序中要用的虛地址沒有對應(yīng)的物理內(nèi)存時(shí),就發(fā)出了請求頁要求;如果有空閑的內(nèi)存可供分配,就請求分配內(nèi)存(于是用到了內(nèi)存的分配和回收),并把正在使用的物理頁記錄在緩存中(使用了緩存機(jī)制)。 如果沒有足夠的內(nèi)存可供分配,那么就調(diào)用交換機(jī)制,騰出一部分內(nèi)存。另外在地址映射中要通過TLB(翻譯后援存儲器)來尋找物理頁;交換機(jī)制中也要羨派鋒用到交換緩存,并且把物理頁內(nèi)容交換到交換文件中后也要修改頁表來映射文件地址。
(2)虛擬內(nèi)存容量設(shè)定
也許有人告訴你,應(yīng)該分配2倍于物理內(nèi)存的虛擬內(nèi)存,但這是個不固定的規(guī)律。如果你的物理保存比較小,可以這樣設(shè)定。如果你有1G物理內(nèi)存或更多的話,可以縮小一下虛擬內(nèi)存。Linux會把大量的內(nèi)存用做Cache的,但在資源緊張時(shí)回收回.。你只要看到swap為0或者很小就可以放心了,因?yàn)閮?nèi)存放著不用才是更大的浪費(fèi)。
三、使甩vmstat命令監(jiān)視虛擬內(nèi)存使用情況
vmstat是Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計(jì))的縮寫,可對操作系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU活動進(jìn)行監(jiān)視。它是對系統(tǒng)的整體情況進(jìn)行統(tǒng)計(jì),不足之處是無法對某個進(jìn)程進(jìn)行深入分析。通常使用vmstat 5 5(表示在5秒時(shí)間內(nèi)進(jìn)行5次采樣)命令測試。將得到一個數(shù)據(jù)匯總它可以反映真正的系統(tǒng)情況。
代碼如下:
#vmstat 5 5
procemoryswapiosystemcpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
54 2
vmstat命令輸出分成六個部分:
(1)進(jìn)程procs:
r:在運(yùn)行隊(duì)列中等待的進(jìn)程數(shù) 。
b:在等待io的進(jìn)程數(shù) 。
(2)內(nèi)存memoy:
swpd:現(xiàn)時(shí)可用的交換內(nèi)存(單位KB)。
free:空閑的內(nèi)存(單位KB)。
buff: 緩沖去中的內(nèi)存數(shù)(單位:KB)。
cache:被用來做為高速緩存的內(nèi)存數(shù)(單位:KB)。
(3) swap交換頁面
si: 從磁盤交換到內(nèi)存的交換頁數(shù)量,單位:KB/秒。
so: 從內(nèi)存交換到磁盤的交換頁數(shù)量,單位:KB/秒。
(4) io塊設(shè)備:
bi: 發(fā)送到塊設(shè)備的塊數(shù),單位:塊/秒。
bo: 從塊設(shè)備接收到的塊數(shù),單位:塊/秒。
(5)system系統(tǒng):
in: 每秒的中斷數(shù),包括時(shí)鐘中斷。
cs: 每秒的環(huán)境(上下文)切換次數(shù)。
(6)cpu中央處理器:
cs:用戶進(jìn)程使用的時(shí)間 。以百分比表示。
sy:系統(tǒng)進(jìn)程使用的時(shí)間。 以百分比表示。
id:中央處理器的空閑時(shí)間 。以百分比表示。
如果 r經(jīng)常大于 4 ,且id經(jīng)常小于40,表示中央處理器的負(fù)荷很重。 如果bi,bo 長期不等于0,表示物理內(nèi)存容量太小。
四、Linux 服務(wù)器的內(nèi)存泄露和回收內(nèi)存的方法
1、內(nèi)存泄漏的定義:
一般我們常說的內(nèi)存泄漏是指堆內(nèi)存的泄漏。堆內(nèi)存是指程序從堆中分配的,大小任意的(內(nèi)存塊的大小可以在程序運(yùn)行期決定),使用完后必須顯示釋放的內(nèi)存。應(yīng)用程序一般使用malloc,realloc,new等函數(shù)從堆中分配到一塊內(nèi)存,使用完后,程序必須負(fù)責(zé)相應(yīng)的調(diào)用free或釋放該內(nèi)存塊,否則,這塊內(nèi)存就不能被再次使用,我們就說這塊內(nèi)存泄漏了。
2、內(nèi)存泄露的危害
從用戶使用程序的角度來看,內(nèi)存泄漏本身不會產(chǎn)生什么危害,作為一般的用戶,根本感覺不到內(nèi)存泄漏的存在。真正有危害的`是內(nèi)存泄漏的堆積,這會最終消耗盡系統(tǒng)所有的內(nèi)存。從這個角度來說,一次性內(nèi)存泄漏并沒有什么危害,因?yàn)樗粫逊e,而隱式內(nèi)存泄漏危害性則非常大,因?yàn)檩^之于常發(fā)性和偶發(fā)性內(nèi)存泄漏它更難被檢測到。存在內(nèi)存泄漏問題的程序除了會占用更多的內(nèi)存外,還會使程序的性能急劇下降。對于服務(wù)器而言,如果出現(xiàn)這種情況,即使系統(tǒng)不崩潰,也會嚴(yán)重影響使用。
3、內(nèi)存泄露的檢測和回收
對于內(nèi)存溢出之類的麻煩可能大家在編寫指針比較多的復(fù)雜的程序的時(shí)候就會遇到。在 Linux 或者 unix 下,C、C++語言是最使用工具。但是我們的 C++ 程序缺乏相應(yīng)的手段來檢測內(nèi)存信息,而只能使用 top 指令觀察進(jìn)程的動態(tài)內(nèi)存總額。而且程序退出時(shí),我們無法獲知任何內(nèi)存泄漏信息。
使用kill命令
使用Linux命令回收內(nèi)存,我們可以使用Ps、Kill兩個命令檢測內(nèi)存使用情況和進(jìn)行回收。在使用超級用戶權(quán)限時(shí)使用命令“Ps”,它會列出所有正在運(yùn)行的程序名稱,和對應(yīng)的進(jìn)程號(PID)。Kill命令的工作原理是:向Linux操作系統(tǒng)的內(nèi)核送出一個系統(tǒng)操作信號和程序的進(jìn)程號(PID)。
應(yīng)用例子:
為了高效率回收內(nèi)存可以使用命令ps 參數(shù)v:
代碼如下:
# ps v
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
tty1 Ss+ 0:8 0.1 /in/mingetty tty1
tty2 Ss+ 0:8 0.1 /in/mingetty tty2
tty3 Ss+ 0:2 0.1 /in/mingetty tty3
tty4 Ss+ 0:8 0.1 /in/mingetty tty4
tty5 Ss+ 0:2 0.1 /in/mingetty tty5
tty6 Ss+ 0:4 0.1 /in/mingetty tty6
tty7 Ss+ 1:.0 /usr/bin/Xorg :0 -br -a
pts/2 Ss 0:1496 0.6 -bash
pts/4 Ss 0:1472 0.6 /bin/bash
pts/4 S+ 0:48 0.2 ping 192.168.1.12
pts/2 R+ 0:68 0.3 ps v
然后如果想回收Ping命令的內(nèi)存的話,使用命令:
代碼如下:
# Kill
使用工具軟件
Memprof是一個非常具有吸引力且非常易于使用的軟件,它由Red Hat的Owen Talyor創(chuàng)立。這個工具是用于GNOME前端的Boehm-Demers-Weiser垃圾回收器。這個工具直接就可以執(zhí)行,并且其工作起來無需對源代碼進(jìn)行任何修改。在程序執(zhí)行時(shí),這個工具會以圖形化的方式顯示內(nèi)存的使用情況。
相關(guān)介紹:Linux
嚴(yán)格來講,Linux這個詞本身只表示Linux內(nèi)核,但人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。
Linux擁有以下特性:類似于Unix的基本思想,支持完全免費(fèi)與自由傳播,完全兼容POSIX1.0標(biāo)準(zhǔn),支持多用戶、多任務(wù)、有著良好的界面、支持多種平臺。Linux 能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
linux查看內(nèi)存使用情況
linux查看內(nèi)存使用情況的方法是,1,proc。meminfo,查看 RAM 使用情況最簡單的方法是通過 ,procmeminfo。
這個動態(tài)更新的虛擬文件實(shí)際上是許多其他內(nèi)存相關(guān)工具 free ,ps ,top的組合顯示。
2,atop。atop 命令是一個終端環(huán)境的監(jiān)控命令。它顯示的是各種并枯系統(tǒng)資源,CPU, memory, network, IOkernel的綜合,并且在高負(fù)載的情況下進(jìn)行了彩色標(biāo)注。
3,free。free 命令是一個快速查看內(nèi)存使用情況的方法,它是對 ,proc,meminfo 收集到的信息的一個概述。
4,GNOME System Monitor。GNOME System Monitor 是一個顯示最近一段時(shí)間內(nèi)的 CPU內(nèi)存交換區(qū)及網(wǎng)絡(luò)的使用情況的視圖工具。它還提供了一種查絕臘洞看 CPU 及內(nèi)存使用情況的方法。
5,htop。htop 命令顯示了每個進(jìn)程的內(nèi)存實(shí)時(shí)使用率。它提供了所有進(jìn)程的常駐內(nèi)存大小,程序總內(nèi)存大小,共享庫大小等的報(bào)告,列表可以水平局?jǐn)?shù)及垂直滾動。6,KDE System Monitor功能同 4 中介紹的 GENOME 版本。
top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。
可以直接使用top命令后,查看%MEM的內(nèi)容,可以選擇按進(jìn)程查看或者按用戶查看,如想查看oracle用戶的進(jìn)程內(nèi)存使用情況的話可以使用如下的命令$top-uoracle。
內(nèi)容解釋PID進(jìn)程的ID,USER進(jìn)程所有者,PR進(jìn)程的優(yōu)先級別,越小越優(yōu)先被執(zhí)行,NInice值,VIRT進(jìn)程占用的虛擬內(nèi)存,RES進(jìn)程占用的物理內(nèi)存,SHR進(jìn)程使用的共享內(nèi)存,S進(jìn)程的狀態(tài),S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值為負(fù)數(shù)。
%CPU進(jìn)程占用CPU的使用率,%MEM進(jìn)程使用的物理內(nèi)存和總內(nèi)存的百分比,TIME+該進(jìn)程啟動后占用的總的CPU時(shí)間,即占用CPU使用時(shí)間的累加值,COMMAND進(jìn)程啟動命令名稱。
在命令行中輸入top,即可啟動top,top的全屏對話模式可分為3部分系統(tǒng)信息欄、命令輸入欄、進(jìn)程列表欄。
之一部分最上部的系統(tǒng)信息欄,之一行top00:11:04為系統(tǒng)當(dāng)前時(shí)刻,3:35為系統(tǒng)啟動后到現(xiàn)在的運(yùn)作時(shí)間,2users為當(dāng)前登錄到系統(tǒng)的用戶,更確切的說是登錄到用戶的終端數(shù)–同一個用戶同一時(shí)間對系統(tǒng)多個終端的連接將被視為多個用戶連接到系統(tǒng),這里的用戶數(shù)也將表現(xiàn)為終端的數(shù)目。
loadaverage為當(dāng)前系統(tǒng)負(fù)載的平均值,后面的三個值分別為1分鐘前、5分鐘前、15分鐘前進(jìn)程的平均數(shù),一般的可以認(rèn)為這個數(shù)值帶宏汪超過CPU數(shù)目時(shí),CPU將比較吃力的負(fù)載當(dāng)前系統(tǒng)所包含的進(jìn)程。
第二行Tasks,59total為當(dāng)前系統(tǒng)進(jìn)程總數(shù),1running為當(dāng)前運(yùn)行中的進(jìn)程數(shù),58sleeping為當(dāng)前處于等待狀態(tài)中的進(jìn)程數(shù),0stoped為被停蠢仔止的系統(tǒng)進(jìn)程數(shù),0zombie為被復(fù)原的進(jìn)程數(shù)。
第三行Cpus,分別表示了CPU當(dāng)前的使用率,第四行Mem分別表示了內(nèi)存總量、當(dāng)前使用量、空閑內(nèi)存量、以及緩沖使用中的內(nèi)存量,第五行Swap表示類別同第四行Mem,但此處反映著交換分區(qū)Swap的使用情況,通常,交換分區(qū)(Swap)被頻繁使用的情況,將被視作物理內(nèi)存不足而造成的。
第二部分中間部分的內(nèi)部命令提示欄top運(yùn)行中可以通過top的內(nèi)部命令對進(jìn)程的顯示方式進(jìn)行控制,內(nèi)部命令如下表,s改變畫面更新頻率,l關(guān)閉或開啟之一部分之一行top信息的表示,t關(guān)閉或開啟之一部分第二行Tasks和第三行Cpus信息的表示,m關(guān)閉或開啟之一部分第四行Mem和第五絕旁行Swap信息的表示。
N以PID的大小的順序排列表示進(jìn)程列表第三部分后述,P以CPU占用率大小的順序排列進(jìn)程列表第三部分后述,M以內(nèi)存占用率大小的順序排列進(jìn)程列表第三部分后述,h顯示幫助,n設(shè)置在進(jìn)程列表所顯示進(jìn)程的數(shù)量,q退出top,s改變畫面更新周期。
第三部分最下部分的進(jìn)程列表欄以PID區(qū)分的進(jìn)程列表將根據(jù)所設(shè)定的畫面更新時(shí)間定期的更新,通過top內(nèi)部命令可以控制此處的顯示方式pmap可以根據(jù)進(jìn)程查看進(jìn)程相關(guān)信息占用的內(nèi)存情況,進(jìn)程號可以通過ps查看如下所示$pmap-d5647。
ps如下例所示$ps-e-o’pid,comm,args,pcpu,rsz,vsz,stime,user,uid’其中rsz是是實(shí)際內(nèi)存,$ps-e-o’pid,comm,args,pcpu,rsz,vsz,stime,user,uid’|greporacle|sort-nrk,其中rsz為實(shí)際內(nèi)存,上例實(shí)現(xiàn)按內(nèi)存排序,由大到小。
在Linux下查看內(nèi)存我們一般用free命令#free,totalusedfreesharedbufferscached,Mem:68236,-/+buffers/cache:,Swap:68116。
下面是對這些數(shù)值的解釋total總計(jì)物理內(nèi)存的大小,used已使用多大,free可用有多少,Shared多個進(jìn)程共享的內(nèi)存總額,Buffers/cached:磁盤緩存的大小,第三行-/+buffers/cached,used已使用多大,free:可用有多少。
Linux的特點(diǎn)
Linux是一種自由和開放源代碼的類UNIX操作系統(tǒng),該操作系統(tǒng)的內(nèi)核由林納斯托瓦茲在1991年10月5日首次發(fā)布,在加上用戶空間的應(yīng)用程序之后,成為Linux操作系統(tǒng),Linux也是自由軟件和開放源代碼軟件發(fā)展中最著名的例子,只要遵循GNU通用公共許可證,任何個人和機(jī)構(gòu)都可以自由地使用Linux的所有底層源代碼,也可以自由地修改和再發(fā)布。
大多數(shù)Linux系統(tǒng)還包括了像提供GUI界面的X Window之類的程序,除了一部分專家之外,大多數(shù)人都是直接使用Linux發(fā)布版,而不是自己選擇每一樣組件或自行設(shè)置,以后借助于Internet網(wǎng)絡(luò),并通過全世界各地計(jì)算機(jī)愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統(tǒng),并且使用人數(shù)還在迅猛增長。
linux查看內(nèi)存使用情況方法:
工具/原料:蘋果筆記本,Linux操作系統(tǒng)。
方法/步驟:
1、在電腦中進(jìn)碼鎮(zhèn)入Linux操作系統(tǒng),打開Linux命令界面。
2、在Linux命令界面中輸入cat /proc/meminfo命令后,敲擊鍵鍵盤回車嘩芹鍵。
3、在敲擊完回車鍵后,出現(xiàn)MemTotal和MemFree分別就可以查看內(nèi)存使用情況和空閑內(nèi)存了。
關(guān)于linux swap mem的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
標(biāo)題名稱:如何優(yōu)化Linux系統(tǒng)的交換空間和內(nèi)存管理(linuxswapmem)
本文鏈接:http://www.5511xx.com/article/dpdipec.html


咨詢
建站咨詢
