日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux靈活釋放交換空間,提升系統(tǒng)性能(linux釋放交換空間)

在Linux系統(tǒng)中,交換空間為系統(tǒng)提供了一種擴(kuò)展內(nèi)存的手段。當(dāng)物理內(nèi)存不足時(shí),內(nèi)核會將一些不常用的內(nèi)存數(shù)據(jù)寫到交換空間中,以便系統(tǒng)能夠更靈活地運(yùn)行。然而,在系統(tǒng)高負(fù)荷運(yùn)行時(shí),交換空間也會成為系統(tǒng)瓶頸。為了提升系統(tǒng)性能,Linux采用了一系列策略來靈活釋放交換空間。

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)建站將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

1.交換空間的概念和用途

交換空間是一塊磁盤空間,由Linux內(nèi)核用于暫存不活躍(頁面中斷)的進(jìn)程內(nèi)存數(shù)據(jù)。當(dāng)系統(tǒng)運(yùn)行時(shí),內(nèi)核會將進(jìn)程內(nèi)存數(shù)據(jù)復(fù)制到交換空間中,并從物理內(nèi)存中釋放,從而騰出更多的物理內(nèi)存空間。當(dāng)這些數(shù)據(jù)再次被需要時(shí),內(nèi)核會從交換空間中讀取數(shù)據(jù),并將其拷貝到物理內(nèi)存中。

交換空間通常位于硬盤上,因此訪問速度比內(nèi)存慢很多,但相對于物理內(nèi)存而言,交換空間的容量更大。因此,交換空間為系統(tǒng)提供了一種擴(kuò)展內(nèi)存的方式。當(dāng)物理內(nèi)存不足時(shí),交換空間可以暫存部分?jǐn)?shù)據(jù),以便系統(tǒng)能夠正常運(yùn)行。

2.交換空間的優(yōu)化

盡管交換空間可以擴(kuò)展Linux系統(tǒng)的內(nèi)存容量,但使用交換空間也會影響系統(tǒng)性能,特別是在高負(fù)荷運(yùn)行時(shí)。因此,Linux內(nèi)核采用了一系列策略來優(yōu)化交換空間的使用,以提高系統(tǒng)性能。

2.1.交換空間的調(diào)度

Linux內(nèi)核采用了一種基于優(yōu)先級的隊(duì)列調(diào)度算法,用于決定哪些數(shù)據(jù)應(yīng)該被換出到交換空間中。在這種算法中,內(nèi)核將頁面根據(jù)其優(yōu)先級放到不同的隊(duì)列中,而更低優(yōu)先級的頁面最容易被換出到交換空間中。

各個進(jìn)程的內(nèi)存使用情況對于交換空間的調(diào)度也有很大的影響。當(dāng)物理內(nèi)存不足時(shí),內(nèi)核會嘗試從不同的進(jìn)程中選取優(yōu)先級更低的頁面進(jìn)行換出。當(dāng)一個進(jìn)程使用了大量的內(nèi)存時(shí),它的頁面就可能比其他進(jìn)程的頁面更容易被換出到交換空間中。因此,內(nèi)存使用效率也會影響系統(tǒng)的交換空間調(diào)度效率。

2.2.交換空間的大小

交換空間的大小也會影響系統(tǒng)性能。交換空間越大,系統(tǒng)可以擴(kuò)展的內(nèi)存容量就越大,但同時(shí),交換空間占用的磁盤空間也越大。因此,交換空間應(yīng)該根據(jù)系統(tǒng)內(nèi)存使用情況和磁盤容量來合理配置。

2.3.交換空間的位置

交換空間的物理位置也會影響性能。建議將交換空間放在磁盤的最外側(cè)部分(即磁盤的之一簇),這樣可以提高讀寫速度。此外,在配置交換空間的時(shí)候,還可以根據(jù)具體使用情況進(jìn)行優(yōu)化,例如可以將交換空間放在磁盤的不同分區(qū)內(nèi)。

3.和建議

交換空間為Linux系統(tǒng)提供了一種擴(kuò)展內(nèi)存的手段,但過量的交換空間使用會導(dǎo)致系統(tǒng)性能下降。因此,在配置交換空間時(shí),需要根據(jù)系統(tǒng)內(nèi)存使用情況和磁盤容量來綜合考慮,合理地配置交換空間大小和位置。同時(shí),開啟適當(dāng)?shù)慕粨Q空間調(diào)度策略,可以提高系統(tǒng)的交換空間效率,減小系統(tǒng)的響應(yīng)時(shí)間,提升系統(tǒng)性能。

相關(guān)問題拓展閱讀:

  • 給Linux分配多少Swap空間才夠呢?
  • Linux內(nèi)存系統(tǒng)
  • 如何解決Linux系統(tǒng)Swap耗盡問題

給Linux分配多少Swap空間才夠呢?

Swap交換大小應(yīng)該是多少?交換應(yīng)該是RAM大小的兩倍還是RAM大小的一半?如果我的系統(tǒng)有幾GB的RAM,我是否需要交換?

也許這些是關(guān)于在安孝斗裝Linux時(shí)選擇交換大小的最常見問題。

這不是什么新鮮事。交換大小一直存在很多混亂。

很長一段時(shí)間,推薦的交換大小是RAM大小的兩倍,但這條黃金法則不再適用于現(xiàn)代計(jì)算機(jī)。

我們的系統(tǒng)RAM大小高達(dá)128 GB,許多舊計(jì)算機(jī)甚至沒有這么多的硬盤。但是你會分配到具有32 GB RAM的系統(tǒng)的交換大?。?64GB?那將是一個荒謬的硬盤浪費(fèi),不是嗎?

在了解需要分配Swap空間應(yīng)該分配多大之前,讓我們先快速了解交換內(nèi)存的一兩件事。

這些有助于讓每個人真正理解為什么Linux需要Swap交換空間。

我們都知道計(jì)算機(jī)系統(tǒng)在運(yùn)行的時(shí)候會使用到RAM(Random Access Memory),當(dāng)只有少數(shù)應(yīng)用程序在運(yùn)行時(shí),系統(tǒng)會使用可用的RAM進(jìn)行管理。

但是如果有很多很多的程序在運(yùn)行,那么就需要非常大容量RAM,這時(shí)候計(jì)算機(jī)RAM不夠,應(yīng)用程序就會崩潰。

當(dāng)RAM耗盡時(shí),Swap交換空間會被系統(tǒng)使用。當(dāng)RAM耗盡時(shí),Linux系統(tǒng)使用部分硬盤內(nèi)存并將其分配給正在運(yùn)行的應(yīng)用程序。

這聽起來非常不錯,這意味著如果我們?nèi)绻峙?0GBSwap交換空間,系統(tǒng)或許可以同時(shí)運(yùn)行成百上千的應(yīng)用程序?是這樣么?大錯特錯?。。?/p>

你知道的,程序運(yùn)行速度十分重要;

RAM訪問數(shù)據(jù)的大小為納秒級;

SSD訪問數(shù)據(jù)(以微秒為單位),而普通硬盤以毫秒為單位訪問數(shù)據(jù);

這意味著RAM比SSD快1000倍,比普通HDD快100,000倍。

如果應(yīng)用程序過分依賴Swap交換空間,則其伏陵性能將下降,因?yàn)樗鼰o法以與RAM中相同的速度訪問數(shù)據(jù)。

因此,完成相同任務(wù)可能需要幾分鐘才能完成任務(wù),而不需要花費(fèi)1秒鐘完成任務(wù)。這將使應(yīng)用程序幾乎無用。這被稱為計(jì)算術(shù)語中的顛簸。

Swap交換空間只是用來應(yīng)急的,所以它的分配要適量。

以下是需要交換空間Swap的幾個原因

如果你的RAM有32GB或者64GB,你的系統(tǒng)可能永遠(yuǎn)都不會使用到這么多的交換分區(qū)。

我猜測缺慎戚,如果你的系統(tǒng)有32GB的RAM,它或許至少有100GB的硬盤。

分配幾GB的交換空間應(yīng)該也無關(guān)痛癢,如果錯誤的程序開始濫用RAM,它將提供額外的“穩(wěn)定性”。

現(xiàn)在回到這個更大的問題上,應(yīng)該給Linux分配多少Swap空間才夠。

答案是沒有一個確切的答案,不過倒是有一些建議,不同的人根據(jù)自己的實(shí)際情況分配交換空間的大小。

如果根據(jù)Red Hat的建議,他們建議是分配RAM 20%的換空間,也就是RAM是8GB,分配1.6GB交換空間。

CentOS建議

Ubuntu考慮到系統(tǒng)需要休眠,

Ubuntu建議的Swap分配表

事實(shí)上沒有一個真正確定的Swap交換空間分配大小,根據(jù)實(shí)際情況來吧,如果你不在乎多點(diǎn)交換空間,可以使用兩倍于RAM的這種方案。

你更傾向于使用哪種方案呢?

Linux內(nèi)存系統(tǒng)

——虛擬內(nèi)存定義

All about Linux swap space

Linux將物理RAM (Random Access Memory) 劃分為稱為頁面的內(nèi)存塊。交換是將一頁內(nèi)存復(fù)制到硬盤上的預(yù)配置空間(稱為交換空間)以釋放改內(nèi)存頁面上的過程。物理內(nèi)存和交換空間的組合就是可用的虛擬內(nèi)存量。

虛擬內(nèi)存的那點(diǎn)事兒

進(jìn)程是與其他進(jìn)程共享CPU和內(nèi)存資源的。為了有效的管理內(nèi)歷純存并減少出錯,現(xiàn)代操作系統(tǒng)提供了一種對主存的抽象概念,即:虛擬內(nèi)存( Virtual Memory )。

虛擬內(nèi)存為每個進(jìn)程提供一個一致的,私有的地址空間,每個進(jìn)程擁有一片連續(xù)完整的內(nèi)存空間。

正如 所說,虛擬內(nèi)存不只是“使用硬盤空間來擴(kuò)展內(nèi)存”的技術(shù)。

虛擬內(nèi)存的重要意義是它定義了一個連續(xù)的虛擬地址空間,

使得程序編寫難度降低。并且,

把內(nèi)存擴(kuò)展到硬盤空間只是使用虛擬內(nèi)存的必然結(jié)果,虛擬內(nèi)存空間會存在硬盤中,并且會被全部放入內(nèi)存中緩沖(按需),有的操作系統(tǒng)還會在內(nèi)存不夠的情況下,將一進(jìn)程的內(nèi)存全部放入硬盤空間中,并在切換到進(jìn)程時(shí)再從硬盤讀取

(這也是Windows會經(jīng)常假死的原因…)。

虛擬內(nèi)存主要提供了如下三個重要的能力:

內(nèi)存通常被組織為一個由M個連續(xù)的字節(jié)大小的單元組成的數(shù)組。每個字節(jié)都有一個唯迅爛氏一的物理地址 (Physical Address PA) ,作為到數(shù)組的索引。

CPU訪問內(nèi)存最簡單直接的方法就是使用物理地址,這種尋址方式稱為

物理尋址

。

現(xiàn)代計(jì)算機(jī)使用的是一種被稱為虛擬尋址 (Virtual Addressing) 的尋址方式。

使用虛擬尋址,CPU需要將虛擬地址翻譯成物理地址,這樣才能訪問到真實(shí)的物理內(nèi)存。

虛擬尋址需要硬件與操作系統(tǒng)之間相互合作。

CPU中含有一個被稱為內(nèi)存管理單元 (Memory Management Unit,MMU) 的硬件,它的功能是將虛擬地址轉(zhuǎn)換稱為物理地址,MMU需要借助存放在內(nèi)存中的 頁表 來動態(tài)翻譯虛擬地址,該頁表由操作系統(tǒng)管理。

分頁表是一種數(shù)據(jù)結(jié)構(gòu),它用于計(jì)算機(jī)操作系統(tǒng)中虛擬內(nèi)存系統(tǒng),其存儲了虛擬地址到物理地址之間的映射。虛擬地址在訪問進(jìn)程中是唯一的,而物理地址在硬件(比如內(nèi)存)中是唯一的。

在操作系統(tǒng)中使用

虛擬內(nèi)存

,每個進(jìn)程會認(rèn)為使用一塊大的連續(xù)的內(nèi)存,事實(shí)上,每個進(jìn)程的內(nèi)存散布在

物理內(nèi)存

的不同區(qū)域。或者可能被調(diào)出到備份存儲中(一般是硬盤)。當(dāng)一個進(jìn)程請求自己的內(nèi)存,操作系統(tǒng)負(fù)責(zé)把程序生成的虛擬地址,映射到實(shí)際存儲的物理內(nèi)存上。操作系統(tǒng)在

分頁表

中存儲虛擬地址到物理地址的映射。每個映射被稱為

分頁表項(xiàng)(page table entry ,PTE)

在一個簡單的地址空間方案中,由虛擬地址尋址的頁與物理內(nèi)存中的幀之間的關(guān)系。物理內(nèi)存可以包含屬于許多進(jìn)程的頁。如果不經(jīng)常使用,或者物理內(nèi)存已滿,可以將頁面分頁到磁盤。在上圖中,并非所有頁面都在物理內(nèi)存中。

虛擬地址到物理地址的轉(zhuǎn)換(即虛擬內(nèi)存的管理)、內(nèi)存保護(hù)、CPU高速緩存的控制。

現(xiàn)代的內(nèi)存管理單元是以

的方式,分割虛擬地址空間(處理器使用的地址范圍)的;頁的大小是2的n次方,通常為幾KB(字節(jié))。地址尾部的n位(頁大小的2的次方數(shù))作為頁內(nèi)的偏移量保持不變。其余的地址位(address)為(虛擬)頁號。

內(nèi)存管理單元通常借助一種叫做轉(zhuǎn)譯旁觀緩沖器(Translation Lookaside Buffer,TLB)和相聯(lián)高速緩存來將虛擬頁號轉(zhuǎn)換為物理頁號。當(dāng)后備緩沖器中沒有轉(zhuǎn)換記錄時(shí),則使用一種較慢的機(jī)制,其中包括專用硬件的數(shù)據(jù)結(jié)構(gòu)或軟件輔助手段。這個數(shù)據(jù)結(jié)構(gòu)稱為

分頁表

,頁表中的數(shù)據(jù)叫做

分頁表項(xiàng)

(page table entry PTE)。物理頁號結(jié)合頁偏移量便提供了完整的物理地址。

頁表 或 轉(zhuǎn)換后備緩沖器數(shù)據(jù)項(xiàng)應(yīng)該包括的信息有:

有時(shí)候,TLB和PTE會

禁止對虛擬頁訪問

,這畝散可能是因?yàn)闆]有RAM與虛擬頁相關(guān)聯(lián)。如果是這種情況,MMU將向CPU發(fā)出頁錯誤的信號,操作系統(tǒng)將進(jìn)行處理,也許會尋找RAM的空白幀,同時(shí)建立一個新的PTE將之映射到所請求的虛擬地址。如果沒有空閑的RAM,可能必須關(guān)閉一個已經(jīng)存在的頁面,使用一些替換算法,將之保存到磁盤中(這被稱為頁面調(diào)度)。

當(dāng)需要將虛擬地址轉(zhuǎn)換為物理地址時(shí),首先搜索TLB,如果找到匹配(TLB)命中,則返回物理地址并繼續(xù)存儲器訪問。然而,如果沒有匹配(稱為TLB未命中),則MMU或操作系統(tǒng)TLB未命中處理器通常會查找

頁表

中的地址映射以查看是否存在映射(頁面遍歷),如果存在,則將其寫回TLB(這必須完成,因?yàn)橛布ㄟ^虛擬存儲器系統(tǒng)中的TLB訪問存儲器),并且重啟錯誤指令(這也可以并行發(fā)生)。此后續(xù)轉(zhuǎn)換找到TLB命中,并且內(nèi)存訪問將繼續(xù)。

虛擬地址到物理地址的轉(zhuǎn)換過程,如果虛擬內(nèi)存不存在與TLB,轉(zhuǎn)換會被重置并通過分頁表和硬件尋找。

通常情況下,用于處理此中斷的程序是操作系統(tǒng)的一部分。如果操作系統(tǒng)判斷此次訪問有效,那么

操作系統(tǒng)會嘗試將相關(guān)的分頁從硬盤上的虛擬內(nèi)存文件調(diào)入內(nèi)存。

而如果訪問是不被允許的,那么操作系統(tǒng)通常會結(jié)束相關(guān)的進(jìn)程。

雖然叫做“頁缺失”錯誤,但實(shí)際上這并不一定是一種錯誤。而且這一機(jī)制是利用虛擬內(nèi)存來增加程序可用內(nèi)存空間。

發(fā)生這種情況的可能性:

當(dāng)原程序再次需要該頁內(nèi)的數(shù)據(jù)時(shí),如果這一頁確實(shí)沒有被分配出去,那么系統(tǒng)只需要重新為該頁在MMU內(nèi)注冊映射即可。

操作系統(tǒng)需要:

硬性頁缺失導(dǎo)致的性能損失是很大的。

另外,有些操作系統(tǒng)會將程序的一部分延遲到需要使用的時(shí)候再加載入內(nèi)存執(zhí)行,以此提升性能。這一特性也是通過捕獲硬性頁缺失達(dá)到的。

當(dāng)硬性頁缺失過于頻繁發(fā)生時(shí),稱發(fā)生

系統(tǒng)顛簸。

具體動作與所使用的操作系統(tǒng)有關(guān),比如Windows會使用異常機(jī)制向程序報(bào)告,而類Unix系統(tǒng)則使用信號機(jī)制。

盡管在整個運(yùn)行過程中,程序引用不同的頁面總數(shù)(也就是虛擬內(nèi)存大小)可能超出了物理存儲器(DRAM)總大小,但是程序常常在較小的活動頁面上活動,這個叫做工作集或者常駐集。在工作集被緩存后,對它的反復(fù)調(diào)用會使程序命中提高,從而提高性能。

大部分的程序都可以在存儲器獲取數(shù)據(jù)和讀取中達(dá)到穩(wěn)定的狀態(tài),當(dāng)程序達(dá)到穩(wěn)定狀態(tài)時(shí),存儲器的使用量通常都不會太大。虛擬內(nèi)存雖然可以有效率控制存儲器的使用,

但是大量的頁缺失還是造成了系統(tǒng)遲緩的主要因素。

當(dāng)工作集的大小超過物理存儲器大小,程序?qū)l(fā)生一種不幸的情況,這種情況稱為

“顛簸”

,頁面將不停的寫入、釋放、讀取,由于大量的丟失(而非命中)而損失極大性能。用戶可以增加隨機(jī)存取存儲器的大小或是減少同時(shí)在系統(tǒng)里運(yùn)行程序的數(shù)量來降低系統(tǒng)顛簸的記錄。

推薦閱讀:

操作系統(tǒng)–分頁(一)

操作系統(tǒng)實(shí)現(xiàn)(二):分頁和物理內(nèi)存管理

如何解決Linux系統(tǒng)Swap耗盡問題

Linux系統(tǒng)上可以同時(shí)有多個swap,根據(jù)是用swapon -s命令可以看到系統(tǒng)上所有的swap,而用free命令看到的是swap總的大小。所以swap不夠用時(shí)可以再建立一個swap,一般是用建立swap文件的方式配知添加一個swap空間。下面以1G大小的文件為例介紹如何用文件建立內(nèi)存交換空間:

1. 使用dd命令在某個目錄(實(shí)際使用悉梁時(shí)換成其他目錄,/tmp目錄的數(shù)據(jù)會在重啟后丟失)下新建一個1G的文件:

dd if=/dev/培陸消zero of=/tmp/swap bs=1M count=1024

解釋:1M是單位,1024是數(shù)目,合計(jì)1024M就是總大小1G

2. 格式化這個文件為swap格式:(用mkswap命令)

mkswap /tmp/swap

3. 啟動swap,用swapon命令(就是將新建的swap添加到系統(tǒng)):

swapon /tmp/swap

4. 查看效果(用swapon的-s參數(shù)):

swapon -s

可以看到所有的swap分區(qū),如果成功了,/tmp/swap必然在里面。然后再用free命令查看,就可以看到swap空間增加了。

linux釋放交換空間的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux釋放交換空間,Linux靈活釋放交換空間,提升系統(tǒng)性能,給Linux分配多少Swap空間才夠呢?,Linux內(nèi)存系統(tǒng),如何解決Linux系統(tǒng)Swap耗盡問題的信息別忘了在本站進(jìn)行查找喔。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


當(dāng)前名稱:Linux靈活釋放交換空間,提升系統(tǒng)性能(linux釋放交換空間)
鏈接URL:http://m.5511xx.com/article/cddpohj.html