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


咨詢
建站咨詢
