【linux 內存】cat /proc/meminfo、free

cat /proc/meminfo 各字段詳解

/proc/meminfo是了解Linux系統內存使用狀況的主要接口,我們最常用的”free”、”vmstat”等命令就是通過它獲取數據的 ,/proc/meminfo所包含的信息比”free”等命令要豐富得多,因此需要了解這些字段的含義。

/ $ cat /proc/meminfo
MemTotal:         877368 kB  :所有可用RAM大小(即物理內存減去一些預留位和內核的二進制代碼大小)
(HighTotal + LowTotal),系統從加電開始到引導完成,BIOS等要保留一些內存,內核要保留一些內存,
最后剩下可供系統支配的內存就是MemTotal。這個值在系統運行期間一般是固定不變的。MemFree:           22516 kB  :LowFree與HighFree的總和,被系統留著未使用的內存,MemFree是說的系統層面
MemAvailable:     470244 kB  :應用程序可用內存數。系統中有些內存雖然已被使用但是可以回收的,
比如cache/buffer、slab都有一部分可以回收,所以MemFree不能代表全部可用的內存,
這部分可回收的內存加上MemFree才是系統可用的內存,即:MemAvailable≈MemFree+Buffers+Cached,
它是內核使用特定的算法計算出來的,是一個估計,MemAvailable是說的應用程序層面Buffers:            1772 kB  :用來給文件做緩沖大小
Cached:           459224 kB  :被高速緩沖存儲器(cache memory)用的內存的大小(等于 diskcache minus SwapCache )
SwapCached:           16 kB  :被高速緩沖存儲器(cache memory)用的交換空間的大小,
已經被交換出來的內存,但仍然被存放在swapfile中。用來在需要的時候很快的被替換而不需要再次打開I/O端口Active:           333148 kB  :在活躍使用中的緩沖或高速緩沖存儲器頁面文件的大小,
除非非常必要否則不會被移作他用. (Active(anon) + Active(file))Inactive:         330384 kB  :在不經常使用中的緩沖或高速緩沖存儲器頁面文件的大小,
可能被用于其他途徑. (Inactive(anon) + Inactive(file))Active(anon):     104368 kB  :活躍的與文件無關的內存(比如進程的堆棧,用malloc申請的內存)
(anonymous pages),anonymous pages在發生換頁時,是對交換區進行讀/寫操作
Inactive(anon):   104508 kB  :非活躍的與文件無關的內存(比如進程的堆棧,用malloc申請的內存)
Active(file):     228780 kB  :活躍的與文件關聯的內存(比如程序文件、數據文件所對應的內存頁)
(file-backed pages) File-backed pages在發生換頁(page-in或page-out)時,是從它對應的文件讀入或寫出
Inactive(file):   225876 kB  :非活躍的與文件關聯的內存(比如程序文件、數據文件所對應的內存頁)
Unevictable:        6708 kB  :
Mlocked:            1428 kB  :
HighTotal:        261888 kB  :高位內存總大小(Highmem是指所有內存高于860MB的物理內存,Highmem區域供用戶程序使用,
或用于頁面緩存。該區域不是直接映射到內核空間。內核必須使用不同的手法使用該段內存)HighFree:           5680 kB  :未被使用的高位內存大小
LowTotal:         615480 kB  :低位內存總大小,低位可以達到高位內存一樣的作用,而且它還能夠被內核用來記錄一些自己的數據結構
LowFree:           16836 kB  :未被使用的低位大小
SwapTotal:        614396 kB  :交換空間的總大小
SwapFree:         611044 kB  :未被使用交換空間的大小
Dirty:                40 kB  :等待被寫回到磁盤的內存大小
Writeback:             0 kB  :正在被寫回到磁盤的內存大小
AnonPages:        209224 kB  :未映射頁的內存大小
Mapped:           280668 kB  :設備和文件等映射的大小
Shmem:              1084 kB  :
Slab:              59840 kB  :內核數據結構緩存的大小,可以減少申請和釋放內存帶來的消耗
SReclaimable:      34196 kB  :可收回Slab的大小
SUnreclaim:        25644 kB  :不可收回Slab的大小(SUnreclaim+SReclaimable=Slab)
KernelStack:        7504 kB  :常駐內存,每一個用戶線程都會分配一個kernel stack(內核棧)
PageTables:        15508 kB  :管理內存分頁頁面的索引表的大小
NFS_Unstable:          0 kB  :不穩定頁表的大小
Bounce:                0 kB  :
WritebackTmp:          0 kB  :
CommitLimit:     1053080 kB  :根據超額分配比率('vm.overcommit_ratio'),
這是當前在系統上分配可用的內存總量,這個限制只是在模式2('vm.overcommit_memory')時啟用。CommitLimit用以下公式計算:CommitLimit ='vm.overcommit_ratio'*物理內存)+交換
例如,在具有1G物理RAM和7G swap的系統上,當`vm.overcommit_ratio` = 30時 CommitLimit =7.3GCommitted_AS:   16368536 kB  :目前在系統上分配的內存量。
是所有進程申請的內存的總和,即時所有申請的內存沒有被完全使用,
例如一個進程申請了1G內存,僅僅使用了300M,但是這1G內存的申請已經被 "committed"給了VM虛擬機,進程可以在任何時間使用。
如果限制在模式2('vm.overcommit_memory')時啟用,分配超出CommitLimit內存將不被允許VmallocTotal:     245760 kB  :可以vmalloc虛擬內存大小
VmallocUsed:           0 kB  :vmalloc已使用的虛擬內存大小
VmallocChunk:          0 kB  :最大的連續未被使用的vmalloc區域

free

/ $ free -htotal        used        free      shared  buff/cache   available
Mem:           94Gi        29Gi       9.2Gi       1.0Mi        55Gi        63Gi
Swap:          63Gi        11Gi        52Gi總內存 (Mem: total): 94GiB
已用內存 (Mem: used): 29GiB
空閑內存 (Mem: free): 9.2GiB
共享內存 (Mem: shared): 1.0MiB
緩存/緩沖區使用的內存 (buff/cache): 55GiB
可用內存 (available): 63GiB
總交換空間 (Swap: total): 63GiB
已用交換空間 (Swap: used): 11GiB
空閑交換空間 (Swap: free): 52GiB

參考:
https://blog.csdn.net/qq_42139745/article/details/127302222

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63575.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63575.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63575.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android HandlerThread、Looper、MessageQueue 源碼分析

Android HandlerThread、Looper、MessageQueue 源碼分析 簡介 在 Android 開發中,大家應該對 HandlerThread 有一定了解。顧名思義,HandlerThread 是 Thread 的一個子類。與普通的 Thread 不同,Thread 通常一次只能執行一個后臺任務&#x…

配置PostgreSQL用于集成測試的步驟

在進行軟件開發時,集成測試是確保各個組件能夠協同工作的關鍵環節。PostgreSQL作為一種強大的開源數據庫系統,常被用于集成測試中。下面將詳細介紹如何在不同的環境中配置PostgreSQL以支持集成測試。 1. 選擇并安裝PostgreSQL 首先,你需要根…

WebRTC搭建與應用(一)-ICE服務搭建

WebRTC搭建與應用(一) 近期由于項目需要在研究前端WebGL渲染轉為云渲染,借此機會對WebRTC、ICE信令協議等有了初步了解,在此記錄一下,以防遺忘。 第一章 ICE服務搭建 文章目錄 WebRTC搭建與應用(一)前言一、ICE是什么?二、什么…

【學習筆記】深入淺出詳解Pytorch中的View, reshape, unfold,flatten等方法。

文章目錄 一、寫在前面二、Reshape(一)用法(二)代碼展示 三、Unfold(一)torch.unfold 的基本概念(二)torch.unfold 的工作原理(三) 示例代碼(四&a…

深入理解 MySQL 索引

引言 在數據庫管理中,索引(Index)是提高查詢性能的關鍵技術之一。MySQL 是最流行的關系型數據庫管理系統之一,廣泛應用于各種規模的應用程序中。本文將深入探討 MySQL 中的索引概念、類型、工作原理以及最佳實踐,幫助…

利用notepad++刪除特定關鍵字所在的行

1、按組合鍵Ctrl H,查找模式選擇 ‘正則表達式’,不選 ‘.匹配新行’ 2、查找目標輸入 : ^.*關鍵字.*\r\n (不保留空行) ^.*關鍵字.*$ (保留空行)3、替換為:(空) 配置界面參考下圖: ??…

docker安裝和換源

安裝: https://www.runoob.com/docker/ubuntu-docker-install.html sudo apt-get remove docker docker-engine docker.io containerd runcsudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-commoncurl -fsS…

CSSmodule的作用是什么

CSS Modules的作用主要體現在以下幾個方面: 1. 解決全局樣式污染問題 在傳統的CSS管理方式中,樣式定義通常是全局的,這很容易導致全局樣式污染。當多個組件或頁面共享同一個樣式時,可能會出現樣式沖突和覆蓋的情況,從…

創建第一個QML項目

文章目錄 使用 Qt Creator 創建 Qt Quick 項目詳解為什么選擇 Qt Creator?1. 打開 Qt Creator2. 選擇項目模板3. 設置項目名稱與路徑4. 定義項目細節5. 配置構建套件6. 檢查項目配置7. 編譯并運行項目后續操作修改界面添加功能 總結 使用 Qt Creator 創建 Qt Quick …

【k8s集群應用】K8S二進制安裝大致步驟(簡略版)

文章目錄 K8S二進制安裝部署etcd測試etcd集群(可選)恢復etcd數據庫 部署master組件部署node組件K8S kubeadm安裝關鍵命令更新kubeadm安裝的K8S證書有效期方法一方法二查看證書有效期 K8S二進制安裝 部署etcd 使用cfssl工具簽發證書和私鑰下載解壓etcd軟…

瑞吉外賣項目學習筆記(二)Swagger、logback、表單校驗和參數打印功能的實現

瑞吉外賣項目學習筆記(一)準備工作、員工登錄功能實現 文章目錄 3 項目組件優化3.1 實現Swagger文檔輸出3.2 實現logback日志打印3.3 實現表單校驗功能3.4 實現請求參數和響應參數的打印 3 項目組件優化 3.1 實現Swagger文檔輸出 1)在application.yml中增加knife4…

leetcode刷題-回溯算法04

代碼隨想錄回溯算法part01| 491.遞增子序列、46.全排列、47.全排列II 491.遞增子序列46.全排列47.全排列II 491.遞增子序列 leetcode題目鏈接 代碼隨想錄文檔講解 思路: 與上一題不同,不能用used列表,因為這個題不能排序, 在每一…

基于字節大模型的論文翻譯(含免費源碼)

基于字節大模型的論文翻譯 源代碼: 👏 star ? https://github.com/boots-coder/LLM-application 展示 項目簡介 本項目是一個基于大語言模型(Large Language Model, LLM)的論文閱讀與翻譯輔助工具。它通過用戶界面&#xff08…

mysql的事務控制和數據庫的備份和恢復

事務控制語句 行鎖和死鎖 行鎖 兩個客戶端同時對同一索引行進行操作 客戶端1正常運行 客戶端2想修改,被鎖行 除非將事務提交才能繼續運行 死鎖 客戶端1刪除第5行 客戶端2設置第1行為排他鎖 客戶端1刪除行1被鎖 客戶端2更新行5被鎖 如何避免死鎖 mysql的備份和還…

Tengine:Nginx二次開發-高性能進化

前言:在當今的互聯網時代,Web 服務器的性能和穩定性對于網站的成功至關重要。Nginx 以其高性能和可擴展性而聞名,但有時候,我們需要更多的特性來滿足特定的業務需求。Tengine,作為一個由淘寶網發起的 Nginx 二次開發版…

RK3588, FFmpeg 拉流 RTSP, mpp 硬解碼轉RGB

RK3588 ,基于FFmpeg, 拉取RTSP,使用 mpp 實現硬解碼. ?? 傳送 ?? Ubuntu x64 架構, 交叉編譯aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解碼轉RGBRk3588 FFmpeg 拉流 RTSP, 硬解碼轉RGBRK3588 , mpp硬編碼yuv, 保存MP4視頻文件.

Windows 下 Anaconda的安裝與配置 GPU 版

給之前的電腦安一下深度學習環境 判斷是否有NVIDIA GPU Ctrl Shift Esc 打開任務管理器 帶此字眼表示有 NVIDIA GPU 安裝Anaconda anaconda 打開郵箱會看到下載鏈接 這里建議修改為其他盤,要不然下載的包和創建的環境都在C盤,占用空間 三個都打鉤 取…

【openssl】 version `OPENSSL_3.0.3‘ not found 問題

【openssl】 version OPENSSL_3.0.3 not found 問題 使用openssl時候報錯: openssl lib/libcrypto.so.3: version OPENSSL_3.0.3 not found查閱CSDN發現有博主說把別的地方的libcrypto.so.3 復制過去就好了。 嘗試無效 警告!這個操作不對: 不…

flask flask-socketio創建一個網頁聊天應用

應用所需環境: python 3.11.11 其他 只需要通過這個命令即可 pip install flask3.1.0 Flask-SocketIO5.4.1 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 最好是用conda創建一個新的虛擬環境來驗證 完整的pip list如下 Package Version ----…

聯邦學習防止數據泄露

文章目錄 聯邦學習防止數據泄露的原理聯邦學習的優勢聯邦學習與集中式學習的成本分析聯邦學習的實際應用案例個人設想參考文獻 聯邦學習 (Federated Learning) 是一種分布式機器學習技術,旨在解決數據隱私保護問題。它允許在分散的數據源上進行模型訓練,…