婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux系統診斷之內存基礎深入詳解

Linux系統診斷之內存基礎深入詳解

熱門標簽:地圖標注審核周期 黑暗之魂3地圖標注 合肥電銷外呼系統供應商 電話機器人對家居行業幫助大嗎 AI智能電銷機器人壞處 如何申請400的電話呀 蘭州電銷機器人加盟 電商外呼系統排名 沈陽ai電銷智能機器人

1.背景

談及linux內存,很多時候,我們會關注free,top等基礎命令。當系統遇到異常情況時,內存問題的根因追溯,現場診斷時,缺乏深層次的debug能力。本篇幅不做深層討論,能把當前系統的問題描述清楚,是每個SRE應該具備的最基礎能力。

2. free

2.1 free命令原理

free是通過查看 /proc/meminfo 來獲取內存的使用情況。但是 /proc/meminfo 這個文件又是怎么來的?我們先了解下 /proc 目錄:

  • /proc 是一個虛擬文件系統,該目錄下的所有文件都是偽文件,該類文件只存在于內存中,并不占用空間——使用 du -sh 即可驗證,該模具路下的磁盤占用都是0。
  • /proc 下的所有文件都是內核調用proc_create() 接口來創建的虛擬條目。
  • /proc 中的文件,大多反饋系統信息的實時情況(進程、內存、cpu、設備信息等)。

結論: /proc/meminfo 是 /proc 文件系統下保存你內存相關信息的"偽文件"。

2.2 命令輸出簡介

每個發行版輸出都有一定差異,我們以debian8 4.19.x發行版為例。

root@4f996feeb851:~# free -m
  total used free shared buffers cached
Mem:  1991 1909  81  4 155 836
-/+ buffers/cache: 917 1073
Swap:  1023  1 1022

大部分的命令輸出意思,大家可以在man文檔中找到解析,這里不做贅述。

  • used: 已使用的內存 used = total - free -buffers -cached
  • free: 未使用的內存 memFree swapFree in /proc/meminfo
  • shared: tmpfs使用的內存 shmem in /proc/meminfo
  • buffers:被內核緩沖去使用的內存
  • cached: 被頁緩存和slabs使用的內存
  • buffers/cache: 表示buffers和cache的總和
  • swap: 交換分區的使用量

2.3 buffer和cache會使用內存嗎?

答案是肯定的,先來了解下buffer和cache。

  • cache(緩存)官方定義是用來彌補高速設備和低速設備之間的訪問速度不匹配而預留的一段空間,用來加快資源的訪問。 簡單講就是讀的更快。
  • buffer(緩沖)是為了做資源寫入整形,計算機遇到大量的“小規模IO”時,會將其整形為少量的“大規模IO”,降低寫入次數。從而達到“寫資源”合理利用的效果。

然而,free命令所展示的buffer和cache 有點狹義的意思——free展示的buffer表示 塊設備所占用的緩存 、free展示的cache表示普通文件占用的the page cache(緩存頁) 。

總之,buffer和cache使用的內存都是用來加速Linux讀寫性能,如果有新的進程需要內存,系統會將buffer和cache占用的內存回收,并重新分配給進程使用。

2.4 其他內存概念

RSS VSZ PSS USS

  • RSS(Resident Set Size):進程實際使用的物理內存大小,包括sharedMem。
  • VSZ(Virtual Memory Size):進程所有能夠訪問到的內存大小,包括因為缺頁中斷,被swap出去的內存大小,以及sharedMem。
  • PSS(Proportional Set Size):按照比例將內存的大小加到RSS中。
  • USS(Unique Set Size):進程獨占的物理內存大小。

usedMem分為 active inactive

  • active:表示這部分的內存正在被某個特定的進程使用,不太可能被收回。
  • inactive:表示這部分內存是被分配到某個不在running狀態的進程,有可能會被回收。

Linux會維護一個LRU List用來管理活動頁和非活動頁的回收。 簡單講, 越接近該List的末尾,該頁面被回收的概率就越大,反之,越接近列首,則更不易被回收。 linux內核會維護兩類LRUList——active list和inactive list,剛訪問過的頁面放入active list,長時間未訪問的頁面放入inactive list,內核線程kswapd會定期將active list中的頁面移至 inactive list中。

如果系統的inactive的內存過大,可以通過如下操作對其做回收。
sync; echo 3 > /proc/sys/vm/drop_caches

3. 虛擬內存

現代x86系統,計算機能夠使用的內存會大于其物理內存的上限,依靠的就是虛擬內存機制。Linux支持虛擬內存機制和實模式機制。

實模式下,計算機會直接申請物理內存, 虛擬內存機制下,系統會把磁盤當成內存的擴展,已增加可使用的內存大小。并通過映射map的機制,來保存和物理內存的真實對應關系。

在磁盤和內存之間傳送Page的活動叫做swapping或者頁面調度(paging),被用作虛擬內存的磁盤分區稱為swap。

可以通過在線添加swap的方式臨時緩解內存不足的問題,但一般不能直接作在線減少swap的操作,很有可能導致進程的crash。具體swap配置方式見5.1swap相關配置。

4. OOM

1.What is OOM?

Out Of Memory Killer 是 Linux 的一種系統保護機制,在系統內存緊張時,kill掉某些進程防止系統卡死。系統通過打分機制,來實施對進程的殺死操作。默認機制是通過掃描所有進程的內存占用,cpu占用等因素,然后打分  (badness),分數越高,進程被kill的優先級就越高。

2.哪些行為會讓系統對進程進行打分?

  • 進程使用fork(2)調用,創建眾多子進程時,會加分(+)
  • 進程已經運行了很長時間,或者和使用了大量的CPU時間,會減分(-)
  • 進程的nice值如果比較低,會加分(+)
  • 進程如果是特權進程(privileged),會減分(-)
  • 進程如果對硬件設備進行直接訪問,會減分(-)

3.在哪兒可以看到進程的打分?

/proc/pid>/oom_score

4.手動調整分數

/proc//oom_adj 該文件可以用于調整在oom發生時,哪些進程應該被kill,范圍-16 -- +15 ,默認值為0,  

特殊值-17:表示進程永遠不會被kill。

5.我怎么知道系統有沒有觸發過OOM?

/var/log/messages 、 /var/log/syslog 系統日志或者 dmesg 系統日志診斷工具等都能夠找到

5. 內存相關配置

5.1 swap相關配置

通過調節系統參數,來告訴計算機使用swap分區的權重

1. 簡介
swappiness范圍0-100,默認60
0: 表示禁止使用swap
60: 默認
100: 瘋狂使用swap
 
2. 操作方法
# sysctl vm.swappiness=VALUE
# sysctl vm.swappiness=20
或者
# echo VALUE > /proc/sys/vm/swappiness
# echo 30 > /proc/sys/vm/swappiness

通過在線增加swap分區大小,臨時控制內存泄露,內存不夠用等異常。

1. 需要root用戶
2. 創建存儲文件
# dd if=/dev/zero of=/home/swap2G bs=1024 count=2M
3. 安全設置
# chown root:root /home/swap2G
# chmod 0600 /home/swap2G
4. 創建liunx交換分區
# mkswap /home/swap2G
5. enable 交換分區
# swapon /home/swap2G
6. 更新fstab文件【注意: 部分操作系統不需要】
# vim /etc/fstab
/home/swap2G none swap sw 0 0
7. 檢查是否生效
#free -m
8. 卸載swap分區
# swapoff /home/swap2G

5.2 緩存相關

sync; echo 3 > /proc/sys/vm/drop_caches
 
0:不釋放
1:釋放頁緩存
2:釋放 dentries 和 inodes
3:釋放所有緩存

5.3 OOM相關

  • vm.panic_on_oom
  • 是否在觸發 oom 機制時觸發 kernel panic。0表示關閉(推薦),1表示打開。 kernel panic是指計算機遇到了致命的錯誤,并且他不知道該怎么處理時的一種動作——可以類比windows的藍屏。 我們當然不希望每次計算機在oom時就直接藍屏。推薦設置為0
  • vm.overcommit_kbytes:
  • 用于限制進程能夠申請的最大內存,0表示不設置,如果設置其他數值,比如400,則進程能夠申請到的最大內存為 swap+400kBytes
  • vm.overcommit_ratio:
  • 定義了進程可以使用的最大內存(百分比模式),默認為50。表示配置50之后,進程不允許申請超過 swap + 50% * 物理內存總量 以上的內存
  • vm.oom_kill_allocating_task (Linux 2.6.24+支持)
  • 這在內存不足的情況下啟用或禁用殺死OOM觸發任務。0表示禁用(默認),1表示啟用。可以理解為oom機制的開關,默認為禁用——表示要讓oom觸發器正常執行。
  • 其他有興趣的話,可以自行man proc

到此這篇關于Linux系統診斷之內存基礎深入詳解的文章就介紹到這了,更多相關Linux系統診斷之內存基礎內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Linux設置虛擬內存的教學與實戰教程
  • Linux 下如何檢查內存使用率
  • Linux系統為什么要吃掉我的“內存”
  • 解決Linux system v 共享內存問題
  • Linux系統查看CPU、機器型號、內存等信息
  • Linux內核設備驅動之內存管理筆記整理
  • Linux中大內存頁Oracle數據庫優化的方法
  • 淺談Linux的虛擬內存

標簽:淮南 常州 黔南 隴南 黔南 河池 河北 通遼

巨人網絡通訊聲明:本文標題《Linux系統診斷之內存基礎深入詳解》,本文關鍵詞  Linux,系統,診斷,之,內存,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux系統診斷之內存基礎深入詳解》相關的同類信息!
  • 本頁收集關于Linux系統診斷之內存基礎深入詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲另类色综合网站| 亚洲视频免费在线观看| 欧美裸体一区二区三区| 色婷婷av一区| 色哟哟精品一区| 91成人免费在线| 欧亚一区二区三区| 欧美视频三区在线播放| 欧美日韩免费视频| 91.com在线观看| 国产精品久久久久四虎| 欧美人动与zoxxxx乱| 成人亚洲一区二区一| 亚洲图片你懂的| 日韩三级在线观看| 色噜噜夜夜夜综合网| 99视频精品在线| 爽爽淫人综合网网站| 精品福利一区二区三区| 久久男人中文字幕资源站| 国模套图日韩精品一区二区| 国内久久精品视频| 国产91丝袜在线播放| 成人动漫一区二区| 色av成人天堂桃色av| 欧美日韩一区二区在线观看视频| 亚洲动漫第一页| 国产亚洲一区字幕| 视频一区二区欧美| 亚洲欧美国产高清| 亚洲第四色夜色| 91首页免费视频| 午夜精品久久久久| 精品视频免费在线| 国产精品你懂的| 亚洲精品欧美在线| 国产蜜臀97一区二区三区| 亚洲美女区一区| 国产综合色视频| 欧美另类高清zo欧美| 色天天综合色天天久久| 视频一区二区欧美| 亚洲香蕉伊在人在线观| 久久精品男人的天堂| 日韩欧美中文字幕一区| 国产午夜精品久久久久久免费视| 欧美精品一区二区三区很污很色的| 在线欧美日韩国产| 精品国偷自产国产一区| 亚洲国产毛片aaaaa无费看| 日本中文字幕一区二区视频| 亚洲最大的成人av| 亚洲韩国精品一区| 国产日韩成人精品| 国产精品视频一区二区三区不卡| 欧美少妇性性性| 欧美午夜在线观看| 日韩一区二区在线观看视频播放| 美国三级日本三级久久99 | 国产一区二区三区日韩| 欧美成人福利视频| 国产高清亚洲一区| 风间由美中文字幕在线看视频国产欧美| 高清视频一区二区| 欧美挠脚心视频网站| 中文字幕 久热精品 视频在线| 午夜久久福利影院| 91丨九色丨黑人外教| 久久精品一区二区三区不卡牛牛| 天天免费综合色| 91丨porny丨国产入口| 久久先锋影音av| 天天爽夜夜爽夜夜爽精品视频| 懂色av一区二区三区免费观看| 欧美男同性恋视频网站| 一区二区三区自拍| 粉嫩在线一区二区三区视频| 精品久久久影院| 亚洲大片精品永久免费| 国产三级欧美三级日产三级99| 欧美成人猛片aaaaaaa| 亚洲美女在线一区| 国产91色综合久久免费分享| 日韩欧美国产精品一区| 日韩精品乱码av一区二区| 欧洲人成人精品| 亚洲女爱视频在线| 激情文学综合插| 不卡一区二区中文字幕| 精品国产亚洲在线| 麻豆视频观看网址久久| 制服丝袜一区二区三区| 亚洲国产精品久久艾草纯爱| 91视频免费观看| 亚洲欧洲精品一区二区三区不卡| 国内外成人在线| 久久久亚洲欧洲日产国码αv| 蜜臂av日日欢夜夜爽一区| 在线观看91av| 婷婷六月综合亚洲| 欧美精品自拍偷拍| 日韩黄色片在线观看| 欧美精品成人一区二区三区四区| 亚洲国产视频a| 欧美日韩精品一区二区三区 | 亚洲欧美另类久久久精品2019| 成人黄色软件下载| 国产精品美女一区二区在线观看| 国产不卡视频在线观看| 国产精品色哟哟网站| 99久久精品久久久久久清纯| 中文字幕第一区二区| 国产.欧美.日韩| 国产精品久久久久久久久快鸭| av动漫一区二区| 亚洲乱码国产乱码精品精小说 | 日韩欧美一卡二卡| 美女一区二区久久| 久久这里只有精品首页| 成人免费精品视频| 亚洲视频一区二区在线观看| 欧洲另类一二三四区| 男男成人高潮片免费网站| 久久午夜羞羞影院免费观看| 成人av高清在线| 亚洲午夜在线电影| 欧美草草影院在线视频| 国v精品久久久网| 亚洲在线免费播放| 日韩视频免费直播| 国产成人午夜片在线观看高清观看| 国产精品视频yy9299一区| 在线视频中文字幕一区二区| 日本不卡在线视频| 亚洲国产高清在线观看视频| 一本大道久久a久久综合婷婷| 亚洲成av人影院| 久久这里只有精品视频网| 91啪亚洲精品| 麻豆国产91在线播放| 亚洲欧美激情小说另类| 日韩欧美亚洲一区二区| 播五月开心婷婷综合| 午夜精品一区在线观看| 国产日韩欧美综合一区| 欧美优质美女网站| 国产在线精品一区二区夜色| 中文字幕在线观看不卡| 欧美日韩国产乱码电影| 国产成a人亚洲精| 亚洲午夜一区二区三区| 久久精品亚洲麻豆av一区二区| 成人国产精品免费| 美国毛片一区二区| 亚洲柠檬福利资源导航| 久久久综合精品| 精品婷婷伊人一区三区三| 国产成人在线观看| 午夜精品视频一区| 国产精品久久久一本精品| 51精品国自产在线| 99re在线视频这里只有精品| 免费在线欧美视频| 亚洲一区av在线| 国产精品全国免费观看高清| 精品视频一区三区九区| 99久久免费视频.com| 国产专区欧美精品| 午夜欧美电影在线观看| 亚洲婷婷综合久久一本伊一区| 日韩欧美一二三四区| 欧美日韩不卡一区| 日本韩国一区二区| 成人黄色电影在线 | 在线电影欧美成精品| 色婷婷激情一区二区三区| 国产精品99久久久久久有的能看| 一片黄亚洲嫩模| 国产精品成人免费| 中文字幕免费不卡在线| 精品国产亚洲一区二区三区在线观看| 欧美日韩国产乱码电影| 91国产丝袜在线播放| 99热这里都是精品| 国产aⅴ综合色| 国产自产视频一区二区三区| 青草国产精品久久久久久| 亚洲大型综合色站| 亚洲福利视频导航| 亚洲综合免费观看高清完整版| 亚洲欧洲三级电影| 国产精品久久久久久久蜜臀| 久久久久久久电影| 久久香蕉国产线看观看99| 日韩精品一区二区三区视频在线观看 | 成人av电影在线| 国产成a人亚洲精品| 国产成人高清在线| 国产一区二区三区久久久| 久久国产生活片100|