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

linux查看內(nèi)核版本命令 linux查看內(nèi)存命令


linux查看內(nèi)核版本命令 linux查看內(nèi)存命令


簡(jiǎn)介: Linux系統(tǒng)診斷-內(nèi)存基礎(chǔ)
1. 背景
談及l(fā)inux內(nèi)存,很多時(shí)候,我們會(huì)關(guān)注free,top等基礎(chǔ)命令 。當(dāng)系統(tǒng)遇到異常情況時(shí),內(nèi)存問(wèn)題的根因追溯,現(xiàn)場(chǎng)診斷時(shí),缺乏深層次的debug能力 。本篇幅不做深層討論,能把當(dāng)前系統(tǒng)的問(wèn)題描述清楚,是每個(gè)SRE應(yīng)該具備的最基礎(chǔ)能力 。
2. free
2.1 free命令原理
free是通過(guò)查看 /proc/meminfo 來(lái)獲取內(nèi)存的使用情況 。但是 /proc/meminfo 這個(gè)文件又是怎么來(lái)的?我們先了解下 /proc 目錄:
/proc 是一個(gè)虛擬文件系統(tǒng),該目錄下的所有文件都是偽文件,該類(lèi)文件只存在于內(nèi)存中,并不占用空間——使用 du -sh 即可驗(yàn)證,該模具路下的磁盤(pán)占用都是0 。/proc 下的所有文件都是內(nèi)核調(diào)用proc_create() 接口來(lái)創(chuàng)建的虛擬條目 。/proc 中的文件,大多反饋系統(tǒng)信息的實(shí)時(shí)情況(進(jìn)程、內(nèi)存、cpu、設(shè)備信息等) 。
結(jié)論: /proc/meminfo 是 /proc 文件系統(tǒng)下保存你內(nèi)存相關(guān)信息的"偽文件" 。
2.2 命令輸出簡(jiǎn)介
每個(gè)發(fā)行版輸出都有一定差異,我們以debian8 4.19.x發(fā)行版為例 。
root@4f996feeb851:~# free -m
totalusedfreesharedbufferscached
Mem:19911909814155836
-/+ buffers/cache:9171073
Swap:102311022
大部分的命令輸出意思,大家可以在man文檔中找到解析,這里不做贅述 。
used: 已使用的內(nèi)存 used = total – free -buffers -cachedfree: 未使用的內(nèi)存 memFree & swapFree in /proc/meminfoshared: tmpfs使用的內(nèi)存 shmem in /proc/meminfobuffers:被內(nèi)核緩沖去使用的內(nèi)存cached: 被頁(yè)緩存和slabs使用的內(nèi)存buffers/cache: 表示buffers和cache的總和swap: 交換分區(qū)的使用量
2.3 buffer和cache會(huì)使用內(nèi)存嗎?
答案是肯定的,先來(lái)了解下buffer和cache 。
cache(緩存)官方定義是用來(lái)彌補(bǔ)高速設(shè)備和低速設(shè)備之間的訪問(wèn)速度不匹配而預(yù)留的一段空間,用來(lái)加快資源的訪問(wèn) 。簡(jiǎn)單講就是讀的更快 。buffer(緩沖)是為了做資源寫(xiě)入整形,計(jì)算機(jī)遇到大量的“小規(guī)模IO”時(shí),會(huì)將其整形為少量的“大規(guī)模IO”,降低寫(xiě)入次數(shù) 。從而達(dá)到“寫(xiě)資源”合理利用的效果 。
然而,free命令所展示的buffer和cache 有點(diǎn)狹義的意思——free展示的buffer表示 塊設(shè)備所占用的緩存 、free展示的cache表示普通文件占用的the page cache(緩存頁(yè))。
總之,buffer和cache使用的內(nèi)存都是用來(lái)加速Linux讀寫(xiě)性能,如果有新的進(jìn)程需要內(nèi)存,系統(tǒng)會(huì)將buffer和cache占用的內(nèi)存回收,并重新分配給進(jìn)程使用 。
2.4 其他內(nèi)存概念
RSS & VSZ & PSS & USS
RSS(Resident Set Size):進(jìn)程實(shí)際使用的物理內(nèi)存大小,包括sharedMem 。VSZ(Virtual Memory Size):進(jìn)程所有能夠訪問(wèn)到的內(nèi)存大小,包括因?yàn)槿表?yè)中斷,被swap出去的內(nèi)存大小,以及sharedMem 。PSS(Proportional Set Size):按照比例將內(nèi)存的大小加到RSS中 。USS(Unique Set Size):進(jìn)程獨(dú)占的物理內(nèi)存大小 。
usedMem分為 active & inactive
active:表示這部分的內(nèi)存正在被某個(gè)特定的進(jìn)程使用,不太可能被收回 。inactive:表示這部分內(nèi)存是被分配到某個(gè)不在running狀態(tài)的進(jìn)程,有可能會(huì)被回收 。
Linux會(huì)維護(hù)一個(gè)LRU List用來(lái)管理活動(dòng)頁(yè)和非活動(dòng)頁(yè)的回收 。簡(jiǎn)單講,越接近該List的末尾,該頁(yè)面被回收的概率就越大,反之,越接近列首,則更不易被回收 。linux內(nèi)核會(huì)維護(hù)兩類(lèi)LRUList——active list和inactive list,剛訪問(wèn)過(guò)的頁(yè)面放入active list,長(zhǎng)時(shí)間未訪問(wèn)的頁(yè)面放入inactive list,內(nèi)核線程kswapd會(huì)定期將active list中的頁(yè)面移至?inactive list中 。
如果系統(tǒng)的inactive的內(nèi)存過(guò)大,可以通過(guò)如下操作對(duì)其做回收 。sync; echo 3 > /proc/sys/vm/drop_caches

推薦閱讀