Linux shell編程學習筆記63:free命令 獲取內存使用信息

0?前言

在系統安全檢查中,內存使用情況也是一塊可以關注的內容。Linux提供了多個獲取內存信息的命令很多。今天我們先研究free命令。

1 free命令的功能、用法和選項說明

1.1?free命令的功能

free 命令可以顯示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩沖區內存。

[purpleendurer @ bash ~] free --helpUsage:free [options]Options:-b, --bytes         show output in bytes-k, --kilo          show output in kilobytes-m, --mega          show output in megabytes-g, --giga          show output in gigabytes--tera          show output in terabytes--peta          show output in petabytes-h, --human         show human-readable output--si            use powers of 1000 not 1024-l, --lohi          show detailed low and high memory statistics-t, --total         show total for RAM + swap-s N, --seconds N   repeat printing every N seconds-c N, --count N     repeat printing N times, then exit-w, --wide          wide output--help     display this help and exit-V, --version  output version information and exitFor more details see free(1).
[purpleendurer @ bash ~] 

1.2 free命令的用法

free [選項]

1.3 選項說明

?

選項說明

-b

--bytes

以字節為單位顯示輸出

-k

--kilo

以千字節為單位顯示輸出

-m

--mega

以兆字節為單位輸出

-g

--giga

以 GB 為單位輸出
--tera以 TB 為單位輸出
--peta以 PB 為單位輸出

-h

--human

顯示人類可讀的輸出
--si使用 1000 的冪而不是 1024

-l

--lohi

顯示詳細的低內存和高內存統計信息

-t

--total

顯示 RAM + 交換的總計

-s N

--seconds N

每 N 秒重復打印一次

-c N

--count N

重復打印 N 次,然后退出

-w

--wide

寬寬輸出
--help顯示此助信息并退出

-V

--version

輸出版本信息并退出

?2 free命令應用實例

2.1 free

[purpleendurer @ bash ~]freetotal        used        free      shared  buff/cache   available
Mem:        3855940      236804     2051384         360     1567752     3371200
Swap:             0           0           0
[purpleendurer @ bash ~]

?

?

命令返回的信息針對 Mem(內存)和Swap(交換空間)分別顯示了6列信息。

Mem(內存)比交內容理解。

swap space (交換空間)是磁盤上的一塊區域,當系統物理內存吃緊時,Linux 會將內存中不常訪問的數據保存到 swap 上,這樣系統就有更多的物理內存來使用,而當系統需要訪問 swap 上存儲的內容時,再將 swap 上的數據加載到內存中,這就是常說的換出和換入。

再來看6列信息的含義。

第1列?total? ? ? ? ? ? :系統總的可用物理內存和交換空間大小。
第2列?used? ? ? ? ? ?:已經被系統使用的物理內存和交換空間。
第3列?free? ? ? ? ? ???:還有多少物理內存和交換空間可用使用。
第4列?shared? ? ? ? :?顯示被共享使用的物理內存大小。
第5列?buff/cache??:被 buffer 和 cache 使用的物理內存大小。
第6列??available? ?: 可以被應用程序使用的物理內存大小。

buff?(?buffer cache),即 "緩沖區"。操作系統中文件系統的最小尋址單元是塊,每個塊包含一個或多個扇區。當一個塊被調入內存時,它要存儲在一個緩沖區中。每個緩沖區與一個塊對應。緩沖區只是把磁盤上的塊直接搬到內存中而不關心塊中究竟存放的是什么格式的文件。

cache?(page cache),即?"頁高速緩存"。頁高速緩存是內核實現的磁盤緩存。它通過把磁盤中的數據緩存到物理內存中,把對磁盤的訪問變為對物理內存的訪問,來減少對磁盤的 I/O 操作。頁高速緩存緩存的是內存頁面。緩存中的頁來自對普通文件、塊設備文件(即?buffer cache 呀)和內存映射文件的讀寫。

對于系統來說,buffer 和 cache 都屬于已經被使用的內存。當應用程序需要內存時,如果沒有足夠的 free 內存可以用,內核就會從 buffer 和 cache 中回收內存來滿足應用程序的請求。所以從應用程序的角度來說,available? = free + buffer + cache

2.2 free -h :顯示人類可讀的輸出

?

[purpleendurer @ bash ~]free -htotal        used        free      shared  buff/cache   available
Mem:           3.7G        259M        1.9G        360K        1.5G        3.2G
Swap:            0B          0B          0B
[purpleendurer @ bash ~]

?

?2.3?free -h -s 5:每隔5秒顯示一次信息

[purpleendurer @ bash ~]free -h -s 5total        used        free      shared  buff/cache   available
Mem:           3.7G        259M        1.9G        360K        1.5G        3.2G
Swap:            0B          0B          0Btotal        used        free      shared  buff/cache   available
Mem:           3.7G        258M        1.9G        360K        1.5G        3.2G
Swap:            0B          0B          0Btotal        used        free      shared  buff/cache   available
Mem:           3.7G        259M        1.9G        360K        1.5G        3.2G
Swap:            0B          0B          0Btotal        used        free      shared  buff/cache   available
Mem:           3.7G        259M        1.9G        360K        1.5G        3.2G
Swap:            0B          0B          0B

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

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

相關文章

Java多語言跨境電商外貿商城源碼 tiktok商城系統源碼 跨境電商源碼

Java多語言跨境電商外貿商城源碼 tiktok商城系統源碼 跨境電商源碼 技術棧 PC端使用:vueelementui 用戶端使用:uniapp 管理端使用:vueelementui 后臺服務使用:springbootmybatisplusmysql 功能描述: 對接PayPal…

【面試題】字節一面面試題

自我介紹,項目介紹MQ的使用場景,不同的MQ之前的區別,為什么使用公司的MQ數據庫怎么部署的(應該是問節點,庫表)事務隔離級別innodb為什么選可重復讀作為隔離級別數據庫三大日志,保存先后順序undo…

vue3+electron項目搭建,遇到的坑

我主要是寫后端,所以對前端的vue啊vue-cli只是知其然,不知其所以然 這樣也導致了我在開發前端時候遇到了很多的坑 第一個坑, vue2升級vue3始終升級不成功 第二個坑, vue add electron-builder一直卡進度,進度條走完就是不出提示succes 第一個坑的解決辦法: 按照網上說的升級v…

使用Java實現高性能的文件上傳下載服務

使用Java實現高性能的文件上傳下載服務 大家好,我是微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 1. 引言 在現代Web應用中,文件上傳和下載服務是非常常見的功能需求。如何實現高性能、可靠且安全…

Ubuntu 20.04下多版本CUDA的安裝與切換 超詳細教程

目錄 前言一、安裝 CUDA1.找到所需版本對應命令2.下載 .run 文件3.安裝 CUDA4.配置環境變量4.1 寫入環境變量4.2 軟連接 5.驗證安裝 二、安裝 cudnn1.下載 cudnn2.解壓文件3.替換文件4.驗證安裝 三、切換 CUDA 版本1.切換版本2.檢查版本 前言 當我們復現代碼時,總會…

深入分析SSL/TLS服務器的證書(C/C++代碼實現)

SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是網絡安全領域的重要協議,它們在保護網絡通信中發揮著至關重要的作用。這些協議通過加密和身份驗證機制,確保數據在傳輸過程中的機密性和完整性…

建投數據與中再數科簽署戰略合作協議

近日,建投數據科技股份有限公司(以下簡稱“建投數據”)與中再保數字科技有限責任公司(以下簡稱“中再數科”)簽署戰略合作協議。雙方通過資源整合共享,實現優勢互補,共同探索產品及服務的跨領域…

初見:AntDB智能運維“三劍客“之ACC

前情回顧 在前兩個章節中,我們介紹了 AntDB 智能運維"三劍客"的 ADC 和 MTK。 初見:AntDB智能運維"三劍客"之ADC 初見:AntDB智能運維"三劍客"之MTK 本文將繼續介紹 AntDB 數據庫智能運維平臺 ACC。 AntDB 介紹…

如何設置PHP wkhtmltopdf

首先參考:Composer三步曲:安裝、使用、發布 在 php 路徑下,應能打開命令行輸入php -v能夠看到php版本信息。 然后執行以下三條: php -r "copy(https://install.phpcomposer.com/installer, composer-setup.php);"php…

minist數據集分類模型的訓練

minist數據集訓練 訓練方法:利用pytorch來實現minist數據集的分類模型訓練 訓練模型如下圖所示 模型代碼: import torch from torch import nn from torch.nn import Flattenclass Net(nn.Module):def __init__(self):super().__init__()self.module …

ChatGPT對話:Scratch編程中一個單詞,如balloon,每個字母行為一致,如何優化編程

【編者按】balloon 7個字母具有相同的行為,根據ChatGPT提供的方法,優化了代碼,方便代碼維護與復用。初學者可以使用7個字母精靈,復制代碼到不同精靈,也能完成這個功能,但不是優化方法,也沒有提高…

__builtin_constant_p 常量檢查函數

__builtin_constant_p 詳細介紹 功能:__builtin_constant_p 是 GCC (GNU Compiler Collection) 提供的一個內置函數,用于在編譯時檢測一個表達式是否是常量。它返回一個整型值: 如果表達式 exp 是編譯時常量,則返回 1。否則&…

【sklearn模型訓練全指南】深入理解機器學習模型的構建過程

標題:【sklearn模型訓練全指南】深入理解機器學習模型的構建過程 在機器學習中,模型訓練是一個核心過程,它涉及到從數據中學習并獲得預測能力。scikit-learn(簡稱sklearn)作為Python中一個廣泛使用的機器學習庫&#…

FairJob:促進在線廣告系統公平性研究

在人工智能(AI)與人類動態的交匯處,既存在機遇也存在挑戰,特別是在人工智能領域。盡管取得了進步,但根植于歷史不平等中的持續偏見仍然滲透在我們的數據驅動系統中,這些偏見不僅延續了不公平現象&#xff0…

Centos新手問題——yum無法下載軟件

起因:最近在學習centos7,在VM上成功安裝后,用Secure進行遠程登陸。然后準備下載一個C編譯器,看網絡上的教程,都是用yum來下載,于是我也輸入了命令: yum -y install gcc* 本以為會自動下載&…

使用Python繪制雷達圖

使用Python繪制雷達圖 雷達圖效果代碼 雷達圖 雷達圖,也稱為蛛網圖或星型圖,是一種二維圖表,用于顯示多變量數據。每個變量在一個從中心點向外輻射的軸上表示,軸的數量與變量的數量相同。雷達圖通常用于比較多個樣本的多維數據&a…

docker部署redis/mongodb/

一、redis 創建/root/redis/conf/redis.conf 全部執行命令如下 docker run -it -d --name redis -p 6379:6379 --net mynet --ip 172.18.0.9 -m 400m -v /root/redis/conf:/usr/local/etc/redis -e TXAsia/Shangehai redis redis-server /usr/local/etc/redis/redis.conf 部署…

C#——密封類詳情

密封類 密封類是密封方法的擴展,用于確保某個類不會被繼承。在C#中,你可以使用sealed關鍵字來聲明一個密封類。 public sealed class SealedClass {// 類成員定義 } 如果使用密封類繼承的話,程序會報錯!!&#xff0…

01:spring

文章目錄 一:常見面試題1:什么是Spring框架?1.1:spring官網中文1.2:spring官網英文 2:談談自己對于Spring IOC和AOP的理解2.1:IOCSpring Bean 的生命周期主要包括以下步驟: 2.2&…

Centos7開放端口

在CentOS 7中,開放端口的命令主要通過firewall-cmd工具來執行。以下是詳細的步驟和命令說明: 一、使用firewall-cmd開放端口 查看當前的防火墻區域(zone) 執行命令: firewall-cmd --get-active-zones此命令將顯示當前…