linux內存類命令行,Linux 內存使用

如何使用Linux命令行查看Linux服務器內存使用情況

這方面的指令太多了,大體上整理一下12個吧。

創(chuàng)新互聯建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站建設、成都做網站、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的白沙黎族網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

1.

/proc/meminfo

查看ram使用情況最簡單的方法是通過

/proc/meminfo。這個動態(tài)更新的虛擬文件實際上是許多其他內存相關工具(如:free

/

ps

/

top)等的組合顯示。/proc/meminfo列出了所有你想了解的內存的使用情況。進程的內存使用信息也可以通過

/proc/

/statm

/proc/

/status

來查看。

2.

atop

atop命令是一個終端環(huán)境的監(jiān)控命令。它顯示的是各種系統(tǒng)資源(cpu,

memory,

network,

i/o,

kernel)的綜合,并且在高負載的情況下進行了彩色標注。

3、

free

free命令是一個快速查看內存使用情況的方法,它是對

/proc/meminfo

收集到的信息的一個概述。

4.

gnome

system

monitor

gnome

system

monitor

是一個顯示最近一段時間內的cpu、內存、交換區(qū)及網絡的使用情況的視圖工具。它還提供了一種查看cpu及內存使用情況的方法。

$

gnome-system-monitor

5.

htop

htop命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小、程序總內存大小、共享庫大小等的報告。列表可以水平及垂直滾動。

6.

kde

system

monitor

功能同

4

中介紹的genome版本。

$

ksysguard

7.

memstat

memstat是一個有效識別

executable(s),

process(es)

and

shared

libraries使用虛擬內存情況的命令。給定一個進程id,memstat可以列出這個進程相關的可執(zhí)行文件、數據和共享庫。

8.

nmon

nmon是一個基于ncurses的系統(tǒng)基準測試工具,它可以監(jiān)控cpu、內存、i/o、文件系統(tǒng)及網絡資源等的互動模式。對于內存的使用,它可以實時的顯示

總/剩余內存、交換空間等信息。

9.

ps

ps命令可以實時的顯示各個進程的內存使用情況。reported

memory

usage

information

includes

%mem

(percent

of

physical

memory

used),

vsz

(total

amount

of

virtual

memory

used),

and

rss

(total

amount

of

physical

memory

used)。你可以使用

“–sort”選項對進程進行排序,例如按rss進行排序:

$

ps

aux

--sort

-rss

10.

smem

smem命令允許你統(tǒng)計基于/proc信息的不同進程和用戶的內存使用情況。內存使用情況的分析可以導出圖表(如條形圖和餅圖)。

$

sudo

smem

--pie

name

-c

"pss"

11.

top

top命令提供了實時的運行中的程序的資源使用統(tǒng)計。你可以根據內存的使用和大小來進行排序。

$

top

12.

vmstat

vmstat命令顯示實時的和平均的統(tǒng)計,覆蓋cpu、內存、i/o等內容。例如內存情況,不僅顯示物理內存,也統(tǒng)計虛擬內存。

$

vmstat

-s

Linux命令行查看內存

用 'top -i' 看看有多少進程處于 Running 狀態(tài),可能系統(tǒng)存在內存或 I/O 瓶頸,用 free 看看系統(tǒng)內存使用情況,swap 是否被占用很多,用 iostat 看看 I/O 負載情況...

還有一種辦法是 ps -ef | sort -k7 ,將進程按運行時間排序,看哪個進程消耗的cpu時間最多。

top:

主要參數 :

free

1.作用

free命令用來顯示內存的使用情況,使用權限是所有用戶。

**2.格式 **

**3.主要參數 **

uptime

vmstat

**1 觀察磁盤活動情況 **

磁盤活動情況主要從以下幾個指標了解:

**2 觀察cpu活動情況 **

vmstat比top更能反映出cpu的使用情況:

iostat

用于統(tǒng)計CPU的使用情況及tty設備、硬盤和CD-ROM的I/0量

即使爬到最高的山上,一次也只能腳踏實地地邁一步。

Linux查看CPU和內存使用情況:

在做Linux系統(tǒng)優(yōu)化的時候,物理內存是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監(jiān)控寶貴的內存資源的使用情況。下面的清單詳細的列出了Linux系統(tǒng)下通過視圖工具或命令行來查看內存使用情況的各種方法。

1. /proc/meminfo

查看RAM使用情況最簡單的方法是通過 /proc/meminfo 。這個動態(tài)更新的虛擬文件實際上是許多其他內存相關工具(如:free / ps / top)等的組合顯示。 /proc/meminfo 列出了所有你想了解的內存的使用情況。進程的內存使用信息也可以通過/proc/pid/statm 和 /proc/pid/status 來查看。

atop命令是一個終端環(huán)境的監(jiān)控命令。它顯示的是各種系統(tǒng)資源(CPU, memory, network, I/O, kernel)的綜合,并且在高負載的情況下進行了彩色標注。

free命令是一個快速查看內存使用情況的方法,它是對 /proc/meminfo 收集到的信息的一個概述。

GNOME System Monitor 是一個顯示最近一段時間內的CPU、內存、交換區(qū)及網絡的使用情況的視圖工具。它還提供了一種查看CPU及內存使用情況的方法。

htop命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小、程序總內存大小、共享庫大小等的報告。列表可以水平及垂直滾動。

功能同 4 中介紹的GENOME版本。

memstat是一個有效識別executable(s), process(es) and shared libraries使用虛擬內存情況的命令。給定一個進程ID,memstat可以列出這個進程相關的可執(zhí)行文件、數據和共享庫。

nmon是一個基于ncurses的系統(tǒng)基準測試工具,它可以監(jiān)控CPU、內存、I/O、文件系統(tǒng)及網絡資源等的互動模式。對于內存的使用,它可以實時的顯示 總/剩余內存、交換空間等信息。

ps命令可以實時的顯示各個進程的內存使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”選項對進程進行排序,例如按RSS進行排序:

smem命令允許你統(tǒng)計基于/proc信息的不同進程和用戶的內存使用情況。內存使用情況的分析可以導出圖表(如條形圖和餅圖)。

top命令提供了實時的運行中的程序的資源使用統(tǒng)計。你可以根據內存的使用和大小來進行排序。

vmstat命令顯示實時的和平均的統(tǒng)計,覆蓋CPU、內存、I/O等內容。例如內存情況,不僅顯示物理內存,也統(tǒng)計虛擬內存。

linux常用命令有哪些

linux 常用命令有:

pwd 命令

使用 pwd 命令找出您所在的當前工作目錄(文件夾)的路徑。該命令將返回一個絕對(完整)路徑,該路徑基本上是所有以 / 開頭的目錄的路徑。絕對路徑的一個示例是 /home/username。

cd 命令

要瀏覽 Linux 文件和目錄,請使用 cd 命令。根據您所在的當前工作目錄,它需要目錄的完整路徑或名稱。假設您位于 /home/username / Documents 中,并且想要轉到 Documents 的子目錄 Photos。為此,只需鍵入以下命令:cd Photos。另一種情況是,如果您想切換到一個全新的目錄,例如 /home/username / Movies。在這種情況下,您必須輸入 cd,然后輸入目錄的絕對路徑:cd /home/username / Movies。有一些快捷方式可幫助您快速導航:cd ..(帶有兩個點)將一個目錄向上移動 cd 直接轉到主文件夾 cd-(帶連字符)移動到上一個目錄附帶說明一下,Linux 的 shell 是區(qū)分大小寫的。因此,您必須準確輸入名稱的目錄。

ls 命令

LS 命令用于查看目錄的內容。默認情況下,此命令將顯示當前工作目錄的內容。如果要查看其他目錄的內容,請鍵入 ls,然后鍵入目錄的路徑。例如,輸入 LS / 家 / 用戶名 / 文檔查看的內容的文件。您可以使用 ls 命令使用以下變體:ls -R 還將列出子目錄中的所有文件 ls -a 將顯示隱藏的文件 ls -al 將列出文件和目錄以及詳細信息,例如權限,大小,所有者等。

cat 命令

cat(連接的縮寫)是 Linux 中最常用的命令之一。它用于在標準輸出(sdout)上列出文件的內容。要運行此命令,請鍵入 cat,然后輸入文件名及其擴展名。例如:cat file.txt。以下是使用 cat 命令的其他方法:cat filename 創(chuàng)建一個新文件 cat filename1 filename2 filename3 連接兩個文件(1 和 2),并將它們的輸出存儲在新文件中(3)將文件轉換為大寫或小寫使用,cat filename | tr a-z A-Z output.txt

cp 命令

使用 cp 命令將文件從當前目錄復制到另一個目錄。例如,命令 cp scenery.jpg/home /username/ Pictures 將在您的 Pictures 目錄中創(chuàng)建一個 Scene.jpg 副本(來自當前目錄)。

mv 命令

mv 命令的主要用途是移動文件,盡管它也可以用于重命名文件。mv 中的參數類似于 cp 命令。您需要輸入 mv,文件名和目標目錄。例如:mv file.txt/home /username/ Documents。

mkdir 命令

使用 mkdir 命令創(chuàng)建一個新目錄 - 如果鍵入 mkdir Music,它將創(chuàng)建一個名為 Music 的目錄。還有一些額外的 mkdir 命令:要在另一個目錄中生成新目錄,請使用此 Linux 基本命令 mkdir Music / Newfile 使用 p(父級)選項在兩個現有目錄之間創(chuàng)建一個目錄。例如,mkdir -p Music / 2022 / Newfile 將創(chuàng)建新的 “2022” 文件。

rmdir 命令

如果需要刪除目錄,請使用 rmdir 命令。但是,rmdir 僅允許您刪除空目錄。

rm 命令

該 RM 命令用于刪除目錄以及其中的內容。如果只想刪除目錄(作為 rmdir 的替代方法),請使用 rm -r。注意:使用此命令時要格外小心,并仔細檢查您所在的目錄。這將刪除所有內容,并且沒有撤消操作。

touch 命令

該觸摸命令允許您創(chuàng)建通過 Linux 命令行新的空白文件。例如,輸入 touch /home/username/Documents/Web.html 在 Documents 目錄下創(chuàng)建一個名為 Web 的 HTML 文件。

locate 命令

您可以使用此命令來定位文件,就像 Windows 中的搜索命令一樣。此外,將 - i 參數與該命令一起使用將使其不區(qū)分大小寫,因此即使您不記得其確切名稱,也可以搜索文件。要搜索包含兩個或多個單詞的文件,請使用星號(*)。例如,locate -i school * note 命令將搜索包含單詞 “school” 和 “ note” 的任何文件,無論它是大寫還是小寫。

find 命令

在類似定位命令,使用 查找也搜索文件和目錄。區(qū)別在于,您可以使用 find 命令在給定目錄中查找文件。例如,find /home/-name notes.txt 命令將在主目錄及其子目錄中搜索名為 notes.txt 的文件。使用查找時的其他變化 是:要查找當前目錄中使用的文件,請使用 find . -name notes.txt 要查找目錄,請使用 /-type d -name notes. txt13. grep 命令無疑對日常使用很有幫助的另一個基本 Linux 命令是 grep。它使您可以搜索給定文件中的所有文本。為了說明這一點,grep blue notepad.txt 將在記事本文件中搜索單詞 blue。包含搜索到的單詞的行將被完整顯示。

sudo 命令

該命令是 “SuperUser Do” 的縮寫,使您能夠執(zhí)行需要管理或超級用戶權限的任務。但是,建議不要將此命令用于日常使用,因為如果您做錯了一些事情,很容易發(fā)生錯誤。

df 命令

使用 df 命令可獲取有關系統(tǒng)磁盤空間使用情況的報告,以百分比和 KB 表示。如果要以兆字節(jié)為單位查看報告,請輸入 df -m。

du 命令

如果要檢查文件或目錄占用了多少空間,答案是 du(磁盤使用情況)命令。但是,磁盤使用情況摘要將顯示磁盤塊號,而不是通常的大小格式。如果要以字節(jié),千字節(jié)和兆字節(jié)為單位查看它,請在命令行中添加 - h 參數。

head 命令

所述頭命令用于查看任何文本文件的第一行。默認情況下,它將顯示前十行,但是您可以根據自己的喜好更改此數字。例如,如果只想顯示前五行,則鍵入 head -n 5 filename.ext。

tail 命令

該命令與 head 命令具有相似的功能,但是 tail 命令將顯示文本文件的最后十行,而不是顯示第一行。例如,tail -n filename.ext。

diff 命令

diff 命令是差異的縮寫,diff 命令逐行比較兩個文件的內容。分析文件后,它將輸出不匹配的行。程序員在需要進行程序更改時經常使用此命令,而不是重寫整個源代碼。此命令最簡單的形式是 diff file1.ext file2.ext

tar 命令

該 tar 命令是最常用的命令歸檔多個文件到一個壓縮包。類似于 zip 格式常見的 Linux 文件格式,壓縮是可選的。該命令具有很長的功能列表,非常復雜,例如將新文件添加到現有檔案中,列出檔案內容,從檔案中提取內容等等。查看一些實際示例,以了解有關其他功能的更多信息。

chmod 命令

chmod 是另一個 Linux 命令,用于更改文件和目錄的讀取,寫入和執(zhí)行權限。由于此命令相當復雜,因此您可以閱讀完整的教程以正確執(zhí)行它。

chown 命令

在 Linux 中,所有文件均歸特定用戶所有。該 CHOWN 命令使您可以更改或文件的所有權轉讓給指定的用戶名。例如,chown linuxuser2 file.ext 將使 linuxuser2 成為 file.ext 的所有者。

Jobs 命令

jobs 命令將顯示所有當前作業(yè)及其狀態(tài)。作業(yè)基本上是由 Shell 啟動的進程。

kill 命令

如果您的程序無響應,則可以使用 kill 命令手動終止它。它將向運行異常的應用發(fā)送特定信號,并指示該應用自行終止。您總共可以使用 64 個信號,但是人們通常只使用兩個信號:SIGTERM(15) — 請求程序停止運行,并給它一些時間來保存其所有進度。如果在輸入 kill 命令時未指定信號,則將使用此信號。SIGKILL(9) - 強制程序立即停止。未保存的進度將丟失。除了知道信號之外,您還需要知道要殺死的程序的進程標識號(PID)。如果您不知道 PID,只需運行命令 ps ux。在知道您要使用什么信號以及程序的 PID 之后,輸入以下語法:kill [signal option] PID.

ping 命令

使用 ping 命令檢查與服務器的連接狀態(tài)。例如,只需輸入 ping google.com,該命令將檢查您是否能夠連接到 Google 并測量響應時間。

wget 命令

Linux 命令行非常有用 - 您甚至可以在 wget 命令的幫助下從 Internet 下載文件。為此,只需鍵入 wget,然后輸入下載鏈接即可。

uname 命令

該 UNAME 命令,短期對于 Unix 名,將打印您的 Linux 系統(tǒng),如計算機名稱的詳細信息,操作系統(tǒng),內核,等等。

top 命令

作為與 Windows 中的任務管理器等效的終端,top 命令將顯示正在運行的進程的列表以及每個進程使用的 CPU 數量。監(jiān)視系統(tǒng)資源使用情況非常有用,尤其是知道哪個進程由于消耗太多資源而需要終止時。

history 命令

當您使用 Linux 一段時間后,您會很快注意到每天可以運行數百個命令。因此,如果您想查看之前輸入的命令,運行歷史記錄命令特別有用。

man 命令

對某些 Linux 命令的功能感到困惑嗎?不用擔心,您可以使用 man 命令從 Linux 的外殼程序中輕松地學習如何使用它們。例如,輸入 man tail 將顯示 tail 命令的手動指令。

echo 命令

此命令用于將一些數據移到文件中。例如,如果要將文本 “Hello,我的名字叫 John” 添加到名為 name.txt 的文件中,則可以鍵入 echo Hello, my name is John name.txt

zip,unzip 命令

使用 zip 命令將文件壓縮到 zip 歸檔文件中,然后使用 unzip 命令從 zip 歸檔文件中提取壓縮文件。

hostname 命令

如果您想知道主機 / 網絡的名稱,只需鍵入 hostname。在末尾添加 - I 將顯示您的網絡的 IP 地址。

useradd,userdel 命令

LINUX系統(tǒng)的內存管理知識詳解

內存是Linux內核所管理的最重要的資源之一。內存管理系統(tǒng)是操作系統(tǒng)中最為重要的部分,因為系統(tǒng)的物理內存總是少于系統(tǒng)所需要的內存數量。虛擬內存就是為了克服這個矛盾而采用的策略。系統(tǒng)的虛擬內存通過在各個進程之間共享內存而使系統(tǒng)看起來有多于實際內存的內存容量。Linux支持虛擬內存, 就是使用磁盤作為RAM的擴展,使可用內存相應地有效擴大。核心把當前不用的內存塊存到硬盤,騰出內存給其他目的。當原來的內容又要使用時,再讀回內存。以下就是我為大家整理到的詳細LINUX系統(tǒng)內存管理的知識,歡迎大家閱讀!!!

LINUX系統(tǒng)教程:內存管理的知識詳解

一、內存使用情況監(jiān)測

(1)實時監(jiān)控內存使用情況

在命令行使用“Free”命令可以監(jiān)控內存使用情況

代碼如下:

#free

total used free shared buffers cached

Mem: 256024 192284 63740 0 10676 101004

-/+ buffers/cache: 80604 175420

Swap: 522072 0 522072

上面給出了一個256兆的RAM和512兆交換空間的系統(tǒng)情況。第三行輸出(Mem:)顯示物理內存。total列不顯示核心使用的物理內存(通常大約1MB)。used列顯示被使用的內存總額(第二行不計緩沖)。 free列顯示全部沒使用的內存。Shared列顯示多個進程共享的內存總額。Buffers列顯示磁盤緩存的當前大小。第五行(Swap:)對對換空間,顯示的信息類似上面。如果這行為全0,那么沒使用對換空間。在缺省的狀態(tài)下,free命令以千字節(jié)(也就是1024字節(jié)為單位)來顯示內存使用情況。可以使用—h參數以字節(jié)為單位顯示內存使用情況,或者可以使用—m參數以兆字節(jié)為單位顯示內存使用情況。還可以通過—s參數使用命令來不間斷地監(jiān)視內存使用情況:

#free –b –s2

這個命令將會在終端窗口中連續(xù)不斷地報告內存的使用情況,每2秒鐘更新一次。

(2)組合watch與 free命令用來實時監(jiān)控內存使用情況:

代碼如下:

#watch -n 2 -d free

Every 2.0s: free Fri Jul 6 06:06:12 2007

total used free shared buffers cached

Mem: 233356 218616 14740 0 5560 64784

-/+ buffers/cache: 148272 85084

Swap: 622584 6656 615928

watch命令會每兩秒執(zhí)行 free一次,執(zhí)行前會清除屏幕,在同樣位置顯示數據。因為 watch命令不會卷動屏幕,所以適合出長時間的監(jiān)測內存使用率。可以使用 -n選項,控制執(zhí)行的頻率;也可以利用 -d選項,讓命令將每次不同的地方顯示出來。Watch命令會一直執(zhí)行,直到您按下 [Ctrl]-[C] 為止。

二、虛擬內存的概念

(1)Linux虛擬內存實現機制

Linux虛擬內存的實現需要六種機制的支持:地址映射機制、內存分配回收機制、緩存和刷新機制、請求頁機制、交換機制、內存共享機制。

首先內存管理程序通過映射機制把用戶程序的邏輯地址映射到物理地址,在用戶程序運行時如果發(fā)現程序中要用的虛地址沒有對應的物理內存時,就發(fā)出了請求頁要求;如果有空閑的內存可供分配,就請求分配內存(于是用到了內存的分配和回收),并把正在使用的物理頁記錄在緩存中(使用了緩存機制)。 如果沒有足夠的內存可供分配,那么就調用交換機制,騰出一部分內存。另外在地址映射中要通過TLB(翻譯后援存儲器)來尋找物理頁;交換機制中也要用到交換緩存,并且把物理頁內容交換到交換文件中后也要修改頁表來映射文件地址。

(2)虛擬內存容量設定

也許有人告訴你,應該分配2倍于物理內存的虛擬內存,但這是個不固定的規(guī)律。如果你的物理保存比較小,可以這樣設定。如果你有1G物理內存或更多的話,可以縮小一下虛擬內存。Linux會把大量的內存用做Cache的,但在資源緊張時回收回.。你只要看到swap為0或者很小就可以放心了,因為內存放著不用才是最大的浪費。

三、使甩vmstat命令監(jiān)視虛擬內存使用情況

vmstat是Virtual Meomory Statistics(虛擬內存統(tǒng)計)的縮寫,可對操作系統(tǒng)的虛擬內存、進程、CPU活動進行監(jiān)視。它是對系統(tǒng)的整體情況進行統(tǒng)計,不足之處是無法對某個進程進行深入分析。通常使用vmstat 5 5(表示在5秒時間內進行5次采樣)命令測試。將得到一個數據匯總它可以反映真正的系統(tǒng)情況。

代碼如下:

#vmstat 5 5

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

1 0 62792 3460 9116 88092 6 30 189 89 1061 569 17 28 54 2

0 0 62792 3400 9124 88092 0 0 0 14 884 434 4 14 81 0

0 0 62792 3400 9132 88092 0 0 0 14 877 424 4 15 81 0

1 0 62792 3400 9140 88092 0 0 0 14 868 418 6 20 74 0

1 0 62792 3400 9148 88092 0 0 0 15 847 400 9 25 67 0

vmstat命令輸出分成六個部分:

(1)進程procs:

r:在運行隊列中等待的進程數 。

b:在等待io的進程數 。

(2)內存memoy:

swpd:現時可用的交換內存(單位KB)。

free:空閑的內存(單位KB)。

buff: 緩沖去中的內存數(單位:KB)。

cache:被用來做為高速緩存的內存數(單位:KB)。

(3) swap交換頁面

si: 從磁盤交換到內存的交換頁數量,單位:KB/秒。

so: 從內存交換到磁盤的交換頁數量,單位:KB/秒。

(4) io塊設備:

bi: 發(fā)送到塊設備的塊數,單位:塊/秒。

bo: 從塊設備接收到的塊數,單位:塊/秒。

(5)system系統(tǒng):

in: 每秒的中斷數,包括時鐘中斷。

cs: 每秒的環(huán)境(上下文)切換次數。

(6)cpu中央處理器:

cs:用戶進程使用的時間 。以百分比表示。

sy:系統(tǒng)進程使用的時間。 以百分比表示。

id:中央處理器的空閑時間 。以百分比表示。

如果 r經常大于 4 ,且id經常小于40,表示中央處理器的負荷很重。 如果bi,bo 長期不等于0,表示物理內存容量太小。

四、Linux 服務器的內存泄露和回收內存的方法

1、內存泄漏的定義:

一般我們常說的內存泄漏是指堆內存的泄漏。堆內存是指程序從堆中分配的,大小任意的(內存塊的大小可以在程序運行期決定),使用完后必須顯示釋放的內存。應用程序一般使用malloc,realloc,new等函數從堆中分配到一塊內存,使用完后,程序必須負責相應的調用free或釋放該內存塊,否則,這塊內存就不能被再次使用,我們就說這塊內存泄漏了。

2、內存泄露的危害

從用戶使用程序的角度來看,內存泄漏本身不會產生什么危害,作為一般的用戶,根本感覺不到內存泄漏的存在。真正有危害的`是內存泄漏的堆積,這會最終消耗盡系統(tǒng)所有的內存。從這個角度來說,一次性內存泄漏并沒有什么危害,因為它不會堆積,而隱式內存泄漏危害性則非常大,因為較之于常發(fā)性和偶發(fā)性內存泄漏它更難被檢測到。存在內存泄漏問題的程序除了會占用更多的內存外,還會使程序的性能急劇下降。對于服務器而言,如果出現這種情況,即使系統(tǒng)不崩潰,也會嚴重影響使用。

3、內存泄露的檢測和回收

對于內存溢出之類的麻煩可能大家在編寫指針比較多的復雜的程序的時候就會遇到。在 Linux 或者 unix 下,C、C++語言是最使用工具。但是我們的 C++ 程序缺乏相應的手段來檢測內存信息,而只能使用 top 指令觀察進程的動態(tài)內存總額。而且程序退出時,我們無法獲知任何內存泄漏信息。

使用kill命令

使用Linux命令回收內存,我們可以使用Ps、Kill兩個命令檢測內存使用情況和進行回收。在使用超級用戶權限時使用命令“Ps”,它會列出所有正在運行的程序名稱,和對應的進程號(PID)。Kill命令的工作原理是:向Linux操作系統(tǒng)的內核送出一個系統(tǒng)操作信號和程序的進程號(PID)。

應用例子:

為了高效率回收內存可以使用命令ps 參數v:

代碼如下:

[root@www ~]# ps v

PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND

2542 tty1 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty1

2543 tty2 Ss+ 0:00 0 8 1631 428 0.1 /sbin/mingetty tty2

2547 tty3 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty3

2548 tty4 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty4

2574 tty5 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty5

2587 tty6 Ss+ 0:00 0 8 1627 424 0.1 /sbin/mingetty tty6

2657 tty7 Ss+ 1:18 12 1710 29981 7040 3.0 /usr/bin/Xorg :0 -br -a

2670 pts/2 Ss 0:01 2 682 6213 1496 0.6 -bash

3008 pts/4 Ss 0:00 2 682 6221 1472 0.6 /bin/bash

3029 pts/4 S+ 0:00 2 32 1783 548 0.2 ping 192.168.1.12

3030 pts/2 R+ 0:00 2 73 5134 768 0.3 ps v

然后如果想回收Ping命令的內存的話,使用命令:

代碼如下:

# Kill -9 3029

使用工具軟件

Memprof是一個非常具有吸引力且非常易于使用的軟件,它由Red Hat的Owen Talyor創(chuàng)立。這個工具是用于GNOME前端的Boehm-Demers-Weiser垃圾回收器。這個工具直接就可以執(zhí)行,并且其工作起來無需對源代碼進行任何修改。在程序執(zhí)行時,這個工具會以圖形化的方式顯示內存的使用情況。

相關介紹:Linux

嚴格來講,Linux這個詞本身只表示Linux內核,但人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和數據庫的操作系統(tǒng)。

Linux擁有以下特性:類似于Unix的基本思想,支持完全免費與自由傳播,完全兼容POSIX1.0標準,支持多用戶、多任務、有著良好的界面、支持多種平臺。Linux 能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩(wěn)定的多用戶網絡操作系統(tǒng)。

Linux有著許多不同的版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻游戲控制臺、臺式計算機、大型機和超級計算機。

linux內存查看命令

linux 查看 cpu 和內存的命令 - top

1.查看內存,cpu ,當前進程task數目, 每個進程的cpu, 內存使用率, 用top 命令:

在這個頁面,按 P,下面的進程排序,以cpu使用率降序排列。

按M,按內存使用率降序排列;

按N, 按進程id大小降序排列;

2.看內存,一般用 free 命令:

解釋一下:

第二行: 是從操作系統(tǒng)的角度來看的, buffers , cached 都屬于被使用。used = 898212=內核(OS)使用+Application(X, Oracle,etc)使用的+buffers+cached;

第三行: 是從應用程序的角度來看的,對于應用程序來說,buffer和cache都是可用的。應為buffer和cache是為了提高程序的讀寫性能,當應用程序需要用到內存的時候,buffer和cache會很快被收回。 所以對于應用程序來講, 可用內存 = free memory +buffers + cached.

linux查看內存使用情況

linux查看內存使用情況的方法是,1,proc。meminfo,查看 RAM 使用情況最簡單的方法是通過 ,procmeminfo。這個動態(tài)更新的虛擬文件實際上是許多其他內存相關工具 free ,ps ,top的組合顯示。

2,atop。atop 命令是一個終端環(huán)境的監(jiān)控命令。它顯示的是各種系統(tǒng)資源,CPU, memory, network, IOkernel的綜合,并且在高負載的情況下進行了彩色標注。

3,free。free 命令是一個快速查看內存使用情況的方法,它是對 ,proc,meminfo 收集到的信息的一個概述。

4,GNOME System Monitor。GNOME System Monitor 是一個顯示最近一段時間內的 CPU內存交換區(qū)及網絡的使用情況的視圖工具。它還提供了一種查看 CPU 及內存使用情況的方法。

5,htop。htop 命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小,程序總內存大小,共享庫大小等的報告,列表可以水平及垂直滾動。6,KDE System Monitor功能同 4 中介紹的 GENOME 版本。

文章名稱:linux內存類命令行,Linux 內存使用
鏈接地址:http://muchs.cn/article24/hcjjje.html

成都網站建設公司_創(chuàng)新互聯,為您提供響應式網站、用戶體驗、網站營銷、營銷型網站建設、ChatGPT、App開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都定制網站建設