最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux下如何查看內(nèi)存泄露的命令

 更新時(shí)間:2023年09月04日 08:43:58   作者:凌肖戰(zhàn)  
這篇文章主要介紹了Linux下如何查看內(nèi)存泄露的命令方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Linux下確定內(nèi)存泄露

在做嵌入式開發(fā)中,例如,在 Linux 下做 C/C++ 開發(fā),會(huì)因?yàn)檎{(diào)用 malloc/calloc() 函數(shù),忘記釋放堆內(nèi)存。程序運(yùn)行久了,會(huì)發(fā)生內(nèi)存泄露問題。

Linux 環(huán)境的 C/C++ 開發(fā)中,但是,當(dāng)每次只是發(fā)生幾個(gè)字節(jié)的內(nèi)存泄露時(shí),可以寫一段測(cè)試內(nèi)存泄露的代碼來確認(rèn)。

而當(dāng)代碼中發(fā)生可見的大量的內(nèi)存泄露問題時(shí),可以使用 shell 命令來確認(rèn)。

這里介紹 發(fā)生大量的內(nèi)存泄露時(shí),使用 shell 命令確認(rèn)是否存在內(nèi)存泄露的方法。

常用的命令包括如下 shell 命令:

  • ps 命令
  • top 命令
  • free 命令
  • cat /proc/meminfo 或 cat /proc/$pid/status 命令

1.ps 命令

ps 命令用來列出系統(tǒng)中當(dāng)前正在運(yùn)行的那些進(jìn)程,列出的是當(dāng)前那些進(jìn)程的快照,就是執(zhí)行 ps 命令的那個(gè)時(shí)刻的那些進(jìn)程。

確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多的資源等。

ps 命令為我們提供了進(jìn)程的一次性的查看,它所提供的查看結(jié)果并不動(dòng)態(tài)連續(xù)的;如果想對(duì)進(jìn)程實(shí)時(shí)監(jiān)控,應(yīng)該用 top 命令。

常用的命令如:

ps -ef | grep 進(jìn)程關(guān)鍵字????? //查看指定進(jìn)程的信息
ps -aux? ? ?? // 列出當(dāng)前內(nèi)存中的所有進(jìn)程
ps aux --sort=%mem(或者 ps aux --sort %mem) //按照內(nèi)存占用率的升序排序
ps aux --sort=-%mem? (或者 ps aux --sort -%mem) //按照內(nèi)存占用率降序排序
ps aux | grep -e test?????? //打印含義test關(guān)鍵字的進(jìn)程
ps -aux | grep -E "test|PID"????? //打印 包含test關(guān)鍵字的進(jìn)程信息

其中,ps -aux 是以 BSD 方式顯示。ps -ef 是以 System V 方式顯示,該種方式比 BSD 方式顯示的多。

如下所示,使用  ps -aux | grep -E "gome|PID"  命令,可以顯示包含 gome 關(guān)鍵字的進(jìn)程信息,其中包括 CPU 占用,內(nèi)存占用等。

2.top 命令

top 命令是 Linux 下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows 的任務(wù)管理器。

通常用來觀察 CPU 或 內(nèi)存的占用情況。

top 命令使用如下:

top -d -3???? //3s 顯示一次
top -p 1921 //顯示進(jìn)程號(hào)為 1921 的進(jìn)程的信息

如下操作,輸入 top -d 3 -p 1921 命令,表示 3 s 顯示一次進(jìn)程號(hào)為 1921的進(jìn)程的信息。

3.free 命令

free 命令可以顯示當(dāng)前系統(tǒng)內(nèi)存使用情況,主要用于確定設(shè)備是否存在內(nèi)存泄漏。

free 命令中的信息都來自于 /proc/meminfo 文件。

默認(rèn)情況下,即在沒有選項(xiàng)的情況下,free 命令顯示內(nèi)存的使用信息。默認(rèn)按照 k(b) 的計(jì)數(shù)單位統(tǒng)計(jì)。

free 命令使用如下:

  • free -s 3:表示每隔 3 秒打印一次內(nèi)存信息

如下操作,輸入  free -s 3 -h 命令,表示 3 s 顯示一次內(nèi)存使用情況:

我們可以通過在設(shè)備啟動(dòng)和運(yùn)行一段時(shí)間后,使用 free 命令查看 已使用內(nèi)存(used) 的大小并進(jìn)行對(duì)比,如果運(yùn)行一段時(shí)間后 used內(nèi)存 有很明顯的增大,那很有可能是存在內(nèi)存泄漏。

4.cat /proc/meminfo 或 cat /proc/$pid/status 命令

  • cat /proc/meminfo 命令用來查看 Linux 系統(tǒng)的內(nèi)存使用情況。
  • cat /proc/$pid/status 命令,用來查看某個(gè)進(jìn)程的內(nèi)存使用信息。

查看 RAM 使用情況最簡(jiǎn)單的方法是通過 /proc/meminfo。

這個(gè)動(dòng)態(tài)更新的虛擬文件實(shí)際上是許多其他內(nèi)存相關(guān)工具 (如 free / ps / top 命令) 等的組合顯示。

注意:這個(gè)文件顯示的單位是 kB 而不是 KB,1kB = 1000B,但是實(shí)際上應(yīng)該是KB,1KB=1024B。

這個(gè)顯示是不精確的,是一個(gè)已知的沒有被更正的歷史遺留問題。

因?yàn)楹芏喑绦蛞蕾囘@個(gè)文件查看內(nèi)存使用的是kB字符

如下所示:

如上所示,其中解釋一下重要字段。

如下:

  • MemTotal:應(yīng)用可以使用的內(nèi)存總數(shù)
  • MemFree:當(dāng)前空閑的內(nèi)存數(shù)目    
  • MemAvailable:可用內(nèi)存(MemFree + 可回收的內(nèi)存),系統(tǒng)中有些內(nèi)存雖然已被使用,但是可以回收,如cache、buffer、slab都有一部分可以回收。
  • Buffers:用來給文件做緩存大小     

其他的參數(shù)暫不做解釋。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解linux執(zhí)行文件提示No such file or directory的背后原因

    深入理解linux執(zhí)行文件提示No such file or directory的背后原因

    這篇文章主要介紹了深入理解linux執(zhí)行文件提示No such file or directory的背后原因,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Centos7如何開啟端口的方法示例

    Centos7如何開啟端口的方法示例

    這篇文章主要介紹了Centos7如何開啟端口的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 下載tomcat放到linux上步驟詳解

    下載tomcat放到linux上步驟詳解

    在本文里我們給大家整理了關(guān)于如何下載tomcat放到linux上的相關(guān)圖文步驟以及知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-05-05
  • Linux實(shí)現(xiàn)雙網(wǎng)卡綁定的代碼詳解

    Linux實(shí)現(xiàn)雙網(wǎng)卡綁定的代碼詳解

    linux 主機(jī)安裝雙網(wǎng)卡,共享一個(gè)IP地址,對(duì)外提供訪問,實(shí)際同樣連接兩條物理線路到交換機(jī)實(shí)現(xiàn)平時(shí)雙網(wǎng)卡同時(shí)工作,分流網(wǎng)絡(luò)壓力,同時(shí)提供冗余備份,監(jiān)控,防止物理線路的單點(diǎn)故障,本文介紹了Linux實(shí)現(xiàn)雙網(wǎng)卡綁定的代碼示例,需要的朋友可以參考下
    2024-07-07
  • ubuntu系統(tǒng)下matplotlib中文亂碼問題的解決方法

    ubuntu系統(tǒng)下matplotlib中文亂碼問題的解決方法

    本篇文章主要介紹了ubuntu系統(tǒng)下matplotlib中文亂碼問題的解決方法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-06-06
  • centos7修改網(wǎng)卡后無法上網(wǎng)問題解決過程

    centos7修改網(wǎng)卡后無法上網(wǎng)問題解決過程

    大家好,本篇文章主要講的是centos7修改網(wǎng)卡后無法上網(wǎng)問題解決過程,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • centos下samba文件夾共享服務(wù)器配置詳解

    centos下samba文件夾共享服務(wù)器配置詳解

    這篇文章主要介紹了centos下samba文件夾共享服務(wù)器配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • linux安裝Jenkins超詳細(xì)全過程

    linux安裝Jenkins超詳細(xì)全過程

    大家好,本篇文章主要講的是linux安裝Jenkins超詳細(xì)全過程,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Linux運(yùn)維工具Supervisor的安裝使用(進(jìn)程管理工具)

    Linux運(yùn)維工具Supervisor的安裝使用(進(jìn)程管理工具)

    這篇文章主要介紹了Linux運(yùn)維工具Supervisor的安裝使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • linux的網(wǎng)絡(luò)通信和進(jìn)程間通信解讀

    linux的網(wǎng)絡(luò)通信和進(jìn)程間通信解讀

    Linux中進(jìn)程間通信(IPC)用于同一主機(jī)的高效數(shù)據(jù)交換,網(wǎng)絡(luò)通信支持跨主機(jī)的靈活傳輸,IPC適用于本地高可靠場(chǎng)景,網(wǎng)絡(luò)通信適合分布式系統(tǒng),選擇依據(jù)為性能需求和通信范圍,混合架構(gòu)可結(jié)合Unix Domain Socket優(yōu)化效率
    2025-09-09

最新評(píng)論

淳化县| 平顺县| 通江县| 石棉县| 兰坪| 南投市| 金门县| 宁南县| 灵台县| 永宁县| 海南省| 梁平县| 旌德县| 南陵县| 德惠市| 商城县| 崇文区| 班玛县| 威海市| 北川| 长乐市| 墨脱县| 浦北县| 新晃| 张家港市| 大宁县| 海盐县| 克东县| 濉溪县| 新巴尔虎右旗| 沙坪坝区| 赤城县| 天峨县| 澜沧| 保靖县| 小金县| 清镇市| 临夏县| 贵州省| 上栗县| 抚宁县|