日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

linux top命令的用法詳細(xì)詳解 linux釋放內(nèi)存命令

什么是內(nèi)存內(nèi)存(Memory)是計(jì)算機(jī)的重要部件之一,也稱內(nèi)存儲器和主存儲器,它用于暫時存放CPU中的運(yùn)算數(shù)據(jù),與硬盤等外部存儲器交換的數(shù)據(jù) 。
它是外存與CPU進(jìn)行溝通的橋梁,計(jì)算機(jī)中所有程序的運(yùn)行都在內(nèi)存中進(jìn)行,內(nèi)存性能的強(qiáng)弱影響計(jì)算機(jī)整體發(fā)揮的水平 。
只要計(jì)算機(jī)開始運(yùn)行,操作系統(tǒng)就會把需要運(yùn)算的數(shù)據(jù)從內(nèi)存調(diào)到CPU中進(jìn)行運(yùn)算,當(dāng)運(yùn)算完成,CPU將結(jié)果傳送出來 。
內(nèi)存的運(yùn)行也決定計(jì)算機(jī)整體運(yùn)行快慢的程度 。
Linux內(nèi)存回收機(jī)制為啥要回收:

  • 內(nèi)核需要為任何時刻突發(fā)到來的內(nèi)存申請?zhí)峁┳銐虻膬?nèi)存,以便cache的使用和其他相關(guān)內(nèi)存的使用不至于讓系統(tǒng)的剩余內(nèi)存長期處于很少的狀態(tài) 。
  • 當(dāng)真的有大于空閑內(nèi)存的申請到來的時候,會觸發(fā)強(qiáng)制內(nèi)存回收 。
內(nèi)存回收針對的目標(biāo)有兩種,一種是針對zone的,另一種是針對一個memcg的,把針對zone的內(nèi)存回收方式分為三種,分別是快速內(nèi)存回收、直接內(nèi)存回收、kswapd內(nèi)存回收 。
查看Linux內(nèi)存情況查看/proc/meminfobash
[root@test ~]# cat /proc/meminfoMemTotal:16166688 kBMemFree:14051412 kBMemAvailable:14772588 kBBuffers:2116 kBCached:1073260 kBSwapCached:0 kBActive:770384 kBInactive:698264 kBActive(anon):450156 kBInactive(anon):76748 kBActive(file):320228 kBInactive(file):621516 kBUnevictable:0 kBMlocked:0 kBSwapTotal:33554428 kBSwapFree:33554428 kBDirty:476 kBWriteback:0 kBAnonPages:393328 kBMapped:153828 kBShmem:133628 kBSlab:246448 kBSReclaimable:133892 kBSUnreclaim:112556 kBKernelStack:13472 kBPageTables:30496 kBNFS_Unstable:0 kBBounce:0 kBWritebackTmp:0 kBCommitLimit:41637772 kBCommitted_AS:4257776 kBVmallocTotal:34359738367 kBVmallocUsed:320696 kBVmallocChunk:34350426108 kBHardwareCorrupted:0 kBAnonHugePages:155648 kBCmaTotal:0 kBCmaFree:0 kBHugePages_Total:0HugePages_Free:0HugePages_Rsvd:0HugePages_Surp:0Hugepagesize:2048 kBDirectMap4k:279276 kBDirectMap2M:6965248 kBDirectMap1G:11534336 kB使用free命令查看bash
[root@test ~]# free -htotalusedfreesharedbuff/cacheavailableMem:15G874M13G130M1.2G14GSwap:31G0B31G參數(shù)說明:
  • total:總內(nèi)存大小 。
  • used:已經(jīng)使用的內(nèi)存大?。ㄟ@里面包含cached和buffers和shared部分) 。
  • free:空閑的內(nèi)存大小 。
  • shared:進(jìn)程間共享內(nèi)存(一般不會用,可以忽略) 。
  • buffers:內(nèi)存中寫完的東西緩存起來,這樣快速響應(yīng)請求,后面數(shù)據(jù)再定期刷到磁盤上 。
  • cached:內(nèi)存中讀完緩存起來內(nèi)容占的大?。ㄟ@部分是為了下次查詢時快速返回) 。
  • available:還可以被應(yīng)用程序使用的物理內(nèi)存大小,和free的區(qū)別是,free是真正未被使用的內(nèi)存,available是包括buffers、cached的 。
  • Swap:硬盤上交換分區(qū)的使用大小 。
Buffer和CacheCache(緩存),為了調(diào)高CPU和內(nèi)存之間數(shù)據(jù)交換而設(shè)計(jì),Buffer(緩沖)為了提高內(nèi)存和硬盤(或其他I/O設(shè)備的數(shù)據(jù)交換而設(shè)計(jì)) 。
Cache主要是針對讀操作設(shè)計(jì)的,不過Cache概念可能容易混淆,我理解為CPU本身就有Cache,包括一級緩存、二級緩存、三級緩存,我們知道CPU所有的指令操作對接的都是內(nèi)存,而CPU的處理能力遠(yuǎn)高于內(nèi)存速度,所以為了不讓CPU資源閑置,Intel等公司在CPU內(nèi)部集成了一些Cache,但畢竟不能放太多電路在里面,所以這部分Cache并不是很大,主要是用來存放一些常用的指令和常用數(shù)據(jù),真正大部分Cache的數(shù)據(jù)應(yīng)該是占用內(nèi)存的空間來緩存請求過的數(shù)據(jù),即上面的Cached部分(這部分純屬個人理解,正確與否有待考證) 。
【linux top命令的用法詳細(xì)詳解 linux釋放內(nèi)存命令】Buffer主要是針對寫操作設(shè)計(jì)的,更細(xì)的說是針對內(nèi)存和硬盤之間的寫操作來設(shè)計(jì)的,目的是將寫的操作集中起來進(jìn)行,減少磁盤碎片和硬盤反復(fù)尋址過程,提高性能 。

推薦閱讀