linuxfree命令
① linux系統基本的內存管理知識講解
Linux系統基本的內存管理知識講解
內存是Linux內核所管理的最重要的資源之一。內存管理系統是操作系統中最為重要的部分,因為系統的物理內存總是少於系統所需要的內存數量。虛擬內存就是為了克服這個矛盾而採用的策略。系統的虛擬內存通過在各個進程之間共享內存而使系統看起來有多於實際內存的內存容量。Linux支持虛擬內存, 就是使用磁碟作為RAM的擴展,使可用內存相應地有效擴大。核心把當前不用的內存塊存到硬碟,騰出內存給其他目的。當原來的內容又要使用時,再讀回內存。
一、內存使用情況監測
(1)實時監控內存使用情況
在命令行使用「Free」命令可以監控內存使用情況
代碼如下:
#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兆交換空間的'系統情況。第三行輸出(Mem:)顯示物理內存。total列不顯示核心使用的物理內存(通常大約1MB)。used列顯示被使用的內存總額(第二行不計緩沖)。 free列顯示全部沒使用的內存。Shared列顯示多個進程共享的內存總額。Buffers列顯示磁碟緩存的當前大小。第五行(Swap:)對對換空間,顯示的信息類似上面。如果這行為全0,那麼沒使用對換空間。在預設的狀態下,free命令以千位元組(也就是1024位元組為單位)來顯示內存使用情況。可以使用—h參數以位元組為單位顯示內存使用情況,或者可以使用—m參數以兆位元組為單位顯示內存使用情況。還可以通過—s參數使用命令來不間斷地監視內存使用情況:
#free –b –s2
這個命令將會在終端窗口中連續不斷地報告內存的使用情況,每2秒鍾更新一次。
(2)組合watch與 free命令用來實時監控內存使用情況:
代碼如下:
#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命令會每兩秒執行 free一次,執行前會清除屏幕,在同樣位置顯示數據。因為 watch命令不會卷動屏幕,所以適合出長時間的監測內存使用率。可以使用 -n選項,控制執行的頻率;也可以利用 -d選項,讓命令將每次不同的地方顯示出來。Watch命令會一直執行,直到您按下 [Ctrl]-[C] 為止。
二、虛擬內存的概念
(1)Linux虛擬內存實現機制
Linux虛擬內存的實現需要六種機制的支持:地址映射機制、內存分配回收機制、緩存和刷新機制、請求頁機制、交換機制、內存共享機制。
首先內存管理程序通過映射機制把用戶程序的邏輯地址映射到物理地址,在用戶程序運行時如果發現程序中要用的虛地址沒有對應的物理內存時,就發出了請求頁要求;如果有空閑的內存可供分配,就請求分配內存(於是用到了內存的分配和回收),並把正在使用的物理頁記錄在緩存中(使用了緩存機制)。 如果沒有足夠的內存可供分配,那麼就調用交換機制,騰出一部分內存。另外在地址映射中要通過TLB(翻譯後援存儲器)來尋找物理頁;交換機制中也要用到交換緩存,並且把物理頁內容交換到交換文件中後也要修改頁表來映射文件地址。
(2)虛擬內存容量設定
也許有人告訴你,應該分配2倍於物理內存的虛擬內存,但這是個不固定的規律。如果你的物理保存比較小,可以這樣設定。如果你有1G物理內存或更多的話,可以縮小一下虛擬內存。Linux會把大量的內存用做Cache的,但在資源緊張時回收回.。你只要看到swap為0或者很小就可以放心了,因為內存放著不用才是最大的浪費。
三、使甩vmstat命令監視虛擬內存使用情況
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。通常使用vmstat 5 5(表示在5秒時間內進行5次采樣)命令測試。將得到一個數據匯總它可以反映真正的系統情況。
代碼如下:
#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命令輸出分成六個部分:
② 正確理解linux運行內存過高的問題以及free命令
周末閑來無事,查看了一下伺服器的運行狀態。發現通過監控頁面可以看到,伺服器的運行內存一直佔用在98%左右,難道伺服器出現什麼問題了???
後來通過了解到,linux系統和平時使用的windwos系統內存運行機制不同。
windows系統的內存是程序運行過程中需要使用才會用到,不用時空閑著。所以當內存使用率過高時,需要檢查是否超負載運行。解決方法是停止掉一些進程。
linux系統中,是進程優先使用內存,而不是磁碟。這樣會加快讀取速度。當有新的進程啟動時,再從內存中開辟出一定空間,為新的進程所用。即使進程退出,也不會立刻從內存中清理掉,這樣可以加快下次啟動進程的速度。所以內存一直是使用率很高的。這是linux系統的獨特之處,初使用linux系統的同學需要轉換一些思維。不用為linux的內存使用率高而擔心。
在圖1中,第三行反映出真實內存使用率為12.5%
再介紹一個linux查看內存的命令, free
free命令可以顯示當前系統為使用和以使用的內存情況,還可以顯示被內存使用的內存緩沖區。
free命令默認以K單位來顯示內存使用情況
Mem行顯示數據
total:總內存大小
used:已使用內存大小
free:當前空閑內存大小
shared:多個進程共享的內存總額
buffers/cached:緩存內存數據
-/+ buffers/cache行數據顯示
這一行的數據代表應用內存使用情況,可理解為真實內存使用情況。如圖1中第三行數據。
used:當前(真實)使用內存總數
free:當前(真實)空閑內存總數
-/+ buffers/cache: 1025604 7165460可理解為當前已經使用的內存為1/8,計算公式used/(used+free)。也就是12.6%左右。
Swap代表交換分區,不做過多詳解
free常用參數:
free -b #以Byte為單位顯示內存使用情況
free -k #以KB為單位顯示內存使用情況,也是默認參數
free -m #以MB為單位顯示內存使用情況
free -g #以GB為單位顯示內存使用情況
free -o #不顯示應用(真實)內存使用情況列,不推薦
free -s<數字> #間隔數字秒數刷新顯示內存使用情況
free -t #顯示內存總和列
free -V #顯示當前版本
③ Linux命令行查看內存
用 'top -i' 看看有多少進程處於 Running 狀態,可能系統存在內存或 I/O 瓶頸,用 free 看看系統內存使用情況,swap 是否被佔用很多,用 iostat 看看 I/O 負載情況...
還有一種辦法是 ps -ef | sort -k7 ,將進程按運行時間排序,看哪個進程消耗的cpu時間最多。
top:
主要參數 :
free
1.作用
free命令用來顯示內存的使用情況,使用許可權是所有用戶。
**2.格式 **
**3.主要參數 **
uptime
vmstat
**1 觀察磁碟活動情況 **
磁碟活動情況主要從以下幾個指標了解:
**2 觀察cpu活動情況 **
vmstat比top更能反映出cpu的使用情況:
iostat
用於統計CPU的使用情況及tty設備、硬碟和CD-ROM的I/0量
即使爬到最高的山上,一次也只能腳踏實地地邁一步。
Linux查看CPU和內存使用情況:
在做Linux系統優化的時候,物理內存是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監控寶貴的內存資源的使用情況。下面的清單詳細的列出了Linux系統下通過視圖工具或命令行來查看內存使用情況的各種方法。
1. /proc/meminfo
查看RAM使用情況最簡單的方法是通過 /proc/meminfo 。這個動態更新的虛擬文件實際上是許多其他內存相關工具(如:free / ps / top)等的組合顯示。 /proc/meminfo 列出了所有你想了解的內存的使用情況。進程的內存使用信息也可以通過/proc/<pid>/statm 和 /proc/<pid>/status 來查看。
atop命令是一個終端環境的監控命令。它顯示的是各種系統資源(CPU, memory, network, I/O, kernel)的綜合,並且在高負載的情況下進行了彩色標注。
free命令是一個快速查看內存使用情況的方法,它是對 /proc/meminfo 收集到的信息的一個概述。
GNOME System Monitor 是一個顯示最近一段時間內的CPU、內存、交換區及網路的使用情況的視圖工具。它還提供了一種查看CPU及內存使用情況的方法。
htop命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小、程序總內存大小、共享庫大小等的報告。列表可以水平及垂直滾動。
功能同 4 中介紹的GENOME版本。
memstat是一個有效識別executable(s), process(es) and shared libraries使用虛擬內存情況的命令。給定一個進程ID,memstat可以列出這個進程相關的可執行文件、數據和共享庫。
nmon是一個基於ncurses的系統基準測試工具,它可以監控CPU、內存、I/O、文件系統及網路資源等的互動模式。對於內存的使用,它可以實時的顯示 總/剩餘內存、交換空間等信息。
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命令允許你統計基於/proc信息的不同進程和用戶的內存使用情況。內存使用情況的分析可以導出圖表(如條形圖和餅圖)。
top命令提供了實時的運行中的程序的資源使用統計。你可以根據內存的使用和大小來進行排序。
vmstat命令顯示實時的和平均的統計,覆蓋CPU、內存、I/O等內容。例如內存情況,不僅顯示物理內存,也統計虛擬內存。
④ linux可以查看內存使用的命令
1. 使用free命令
free命令是Linux系統中最簡單和最常用的內存查看命令
其中, -m 選項是以MB為單位來展示內存使用信息; -h 選項則是以人類(human)可讀的單位來展示。
上面的示例中, Mem: 這一行:
total 表示總共有 7822MB 的物理內存(RAM),即7.6G。
used 表示物理內存的使用量,大約是 322M。
free 表示空閑內存;
shared 表示共享內存?;
buff/cache 表示緩存和緩沖內存量; Linux 系統會將很多東西緩存起來以提高性能,這部分內存可以在必要時進行釋放,給其他程序使用。
available 表示可用內存;
2 查看/proc/meminfo
另一種方法是讀取/proc/meminfo文件。 我們知道,/proc目錄下都是虛擬文件,包含內核以及操作系統相關的動態信息。《Linux就該這么學》 學習更多linux知識。
3. 使用vmstat命令
使用vmstat -s命令和選項, 可以對內存使用情況進行統計, 類似於/proc/meminfo。
⑤ Linux裡面top和free -h命令區別是什麼
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,常用於服務端性能分析。
free 命令能夠顯示系統中物理上的空閑和已用內存,還有交換內存,同時,也能顯示被內核使用的緩沖和緩存。這些信息是通過解析文件 /proc/meminfo 而收集到的。具體可以看《Linux就該這么學》
top有點類似windows裡面的任務管理器,所有信息都有。Free就只有內存的信息
⑥ linux常用命令有哪些
linux 常用命令有:
pwd 命令
cd 命令
ls 命令
cat 命令
cp 命令
mv 命令
mkdir 命令
rmdir 命令
rm 命令
touch 命令
locate 命令
find 命令
sudo 命令
df 命令
命令
head 命令
tail 命令
diff 命令
tar 命令
chmod 命令
chown 命令
Jobs 命令
kill 命令
ping 命令
wget 命令
uname 命令
top 命令
history 命令
man 命令
echo 命令
zip,unzip 命令
hostname 命令
useradd,userdel 命令
使用 pwd 命令找出您所在的當前工作目錄(文件夾)的路徑。該命令將返回一個絕對(完整)路徑,該路徑基本上是所有以 / 開頭的目錄的路徑。絕對路徑的一個示例是 /home/username。
要瀏覽 Linux 文件和目錄,請使用 cd 命令。根據您所在的當前工作目錄,它需要目錄的完整路徑或名稱。假設您位於 /home/username / Documents 中,並且想要轉到 Documents 的子目錄 Photos。為此,只需鍵入以下命令:cd Photos。另一種情況是,如果您想切換到一個全新的目錄,例如 /home/username / Movies。在這種情況下,您必須輸入 cd,然後輸入目錄的絕對路徑:cd /home/username / Movies。有一些快捷方式可幫助您快速導航:cd ..(帶有兩個點)將一個目錄向上移動 cd 直接轉到主文件夾 cd-(帶連字元)移動到上一個目錄附帶說明一下,Linux 的 shell 是區分大小寫的。因此,您必須准確輸入名稱的目錄。
LS 命令用於查看目錄的內容。默認情況下,此命令將顯示當前工作目錄的內容。如果要查看其他目錄的內容,請鍵入 ls,然後鍵入目錄的路徑。例如,輸入 LS / 家 / 用戶名 / 文檔查看的內容的文件。您可以使用 ls 命令使用以下變體:ls -R 還將列出子目錄中的所有文件 ls -a 將顯示隱藏的文件 ls -al 將列出文件和目錄以及詳細信息,例如許可權,大小,所有者等。
cat(連接的縮寫)是 Linux 中最常用的命令之一。它用於在標准輸出(sdout)上列出文件的內容。要運行此命令,請鍵入 cat,然後輸入文件名及其擴展名。例如:cat file.txt。以下是使用 cat 命令的其他方法:cat> filename 創建一個新文件 cat filename1 filename2> filename3 連接兩個文件(1 和 2),並將它們的輸出存儲在新文件中(3)將文件轉換為大寫或小寫使用,cat filename | tr a-z A-Z >output.txt
使用 cp 命令將文件從當前目錄復制到另一個目錄。例如,命令 cp scenery.jpg/home /username/ Pictures 將在您的 Pictures 目錄中創建一個 Scene.jpg 副本(來自當前目錄)。
mv 命令的主要用途是移動文件,盡管它也可以用於重命名文件。mv 中的參數類似於 cp 命令。您需要輸入 mv,文件名和目標目錄。例如:mv file.txt/home /username/ Documents。
使用 mkdir 命令創建一個新目錄 - 如果鍵入 mkdir Music,它將創建一個名為 Music 的目錄。還有一些額外的 mkdir 命令:要在另一個目錄中生成新目錄,請使用此 Linux 基本命令 mkdir Music / Newfile 使用 p(父級)選項在兩個現有目錄之間創建一個目錄。例如,mkdir -p Music / 2022 / Newfile 將創建新的 「2022」 文件。
如果需要刪除目錄,請使用 rmdir 命令。但是,rmdir 僅允許您刪除空目錄。
該 RM 命令用於刪除目錄以及其中的內容。如果只想刪除目錄(作為 rmdir 的替代方法),請使用 rm -r。注意:使用此命令時要格外小心,並仔細檢查您所在的目錄。這將刪除所有內容,並且沒有撤消操作。
該觸摸命令允許您創建通過 Linux 命令行新的空白文件。例如,輸入 touch /home/username/Documents/Web.html 在 Documents 目錄下創建一個名為 Web 的 HTML 文件。
您可以使用此命令來定位文件,就像 Windows 中的搜索命令一樣。此外,將 - i 參數與該命令一起使用將使其不區分大小寫,因此即使您不記得其確切名稱,也可以搜索文件。要搜索包含兩個或多個單詞的文件,請使用星號(*)。例如,locate -i school * note 命令將搜索包含單詞 「school」 和 「 note」 的任何文件,無論它是大寫還是小寫。
在類似定位命令,使用 查找也搜索文件和目錄。區別在於,您可以使用 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。包含搜索到的單詞的行將被完整顯示。
該命令是 「SuperUser Do」 的縮寫,使您能夠執行需要管理或超級用戶許可權的任務。但是,建議不要將此命令用於日常使用,因為如果您做錯了一些事情,很容易發生錯誤。
使用 df 命令可獲取有關系統磁碟空間使用情況的報告,以百分比和 KB 表示。如果要以兆位元組為單位查看報告,請輸入 df -m。
如果要檢查文件或目錄佔用了多少空間,答案是 (磁碟使用情況)命令。但是,磁碟使用情況摘要將顯示磁碟塊號,而不是通常的大小格式。如果要以位元組,千位元組和兆位元組為單位查看它,請在命令行中添加 - h 參數。
所述頭命令用於查看任何文本文件的第一行。默認情況下,它將顯示前十行,但是您可以根據自己的喜好更改此數字。例如,如果只想顯示前五行,則鍵入 head -n 5 filename.ext。
該命令與 head 命令具有相似的功能,但是 tail 命令將顯示文本文件的最後十行,而不是顯示第一行。例如,tail -n filename.ext。
diff 命令是差異的縮寫,diff 命令逐行比較兩個文件的內容。分析文件後,它將輸出不匹配的行。程序員在需要進行程序更改時經常使用此命令,而不是重寫整個源代碼。此命令最簡單的形式是 diff file1.ext file2.ext
該 tar 命令是最常用的命令歸檔多個文件到一個壓縮包。類似於 zip 格式常見的 Linux 文件格式,壓縮是可選的。該命令具有很長的功能列表,非常復雜,例如將新文件添加到現有檔案中,列出檔案內容,從檔案中提取內容等等。查看一些實際示例,以了解有關其他功能的更多信息。
chmod 是另一個 Linux 命令,用於更改文件和目錄的讀取,寫入和執行許可權。由於此命令相當復雜,因此您可以閱讀完整的教程以正確執行它。
在 Linux 中,所有文件均歸特定用戶所有。該 CHOWN 命令使您可以更改或文件的所有權轉讓給指定的用戶名。例如,chown linuxuser2 file.ext 將使 linuxuser2 成為 file.ext 的所有者。
jobs 命令將顯示所有當前作業及其狀態。作業基本上是由 Shell 啟動的進程。
如果您的程序無響應,則可以使用 kill 命令手動終止它。它將向運行異常的應用發送特定信號,並指示該應用自行終止。您總共可以使用 64 個信號,但是人們通常只使用兩個信號:SIGTERM(15) — 請求程序停止運行,並給它一些時間來保存其所有進度。如果在輸入 kill 命令時未指定信號,則將使用此信號。SIGKILL(9) - 強製程序立即停止。未保存的進度將丟失。除了知道信號之外,您還需要知道要殺死的程序的進程標識號(PID)。如果您不知道 PID,只需運行命令 ps ux。在知道您要使用什麼信號以及程序的 PID 之後,輸入以下語法:kill [signal option] PID.
使用 ping 命令檢查與伺服器的連接狀態。例如,只需輸入 ping google.com,該命令將檢查您是否能夠連接到 Google 並測量響應時間。
Linux 命令行非常有用 - 您甚至可以在 wget 命令的幫助下從 Internet 下載文件。為此,只需鍵入 wget,然後輸入下載鏈接即可。
該 UNAME 命令,短期對於 Unix 名,將列印您的 Linux 系統,如計算機名稱的詳細信息,操作系統,內核,等等。
作為與 Windows 中的任務管理器等效的終端,top 命令將顯示正在運行的進程的列表以及每個進程使用的 CPU 數量。監視系統資源使用情況非常有用,尤其是知道哪個進程由於消耗太多資源而需要終止時。
當您使用 Linux 一段時間後,您會很快注意到每天可以運行數百個命令。因此,如果您想查看之前輸入的命令,運行歷史記錄命令特別有用。
對某些 Linux 命令的功能感到困惑嗎?不用擔心,您可以使用 man 命令從 Linux 的外殼程序中輕松地學習如何使用它們。例如,輸入 man tail 將顯示 tail 命令的手動指令。
此命令用於將一些數據移到文件中。例如,如果要將文本 「Hello,我的名字叫 John」 添加到名為 name.txt 的文件中,則可以鍵入 echo Hello, my name is John >> name.txt
使用 zip 命令將文件壓縮到 zip 歸檔文件中,然後使用 unzip 命令從 zip 歸檔文件中提取壓縮文件。
如果您想知道主機 / 網路的名稱,只需鍵入 hostname。在末尾添加 - I 將顯示您的網路的 IP 地址。
⑦ linux查看內存使用情況
linux查看內存使用情況的方法是,1,proc。meminfo,查看 RAM 使用情況最簡單的方法是通過 ,procmeminfo。這個動態更新的虛擬文件實際上是許多其他內存相關工具 free ,ps ,top的組合顯示。
2,atop。atop 命令是一個終端環境的監控命令。它顯示的是各種系統資源,CPU, memory, network, IOkernel的綜合,並且在高負載的情況下進行了彩色標注。
3,free。free 命令是一個快速查看內存使用情況的方法,它是對 ,proc,meminfo 收集到的信息的一個概述。
4,GNOME System Monitor。GNOME System Monitor 是一個顯示最近一段時間內的 CPU內存交換區及網路的使用情況的視圖工具。它還提供了一種查看 CPU 及內存使用情況的方法。
5,htop。htop 命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小,程序總內存大小,共享庫大小等的報告,列表可以水平及垂直滾動。6,KDE System Monitor功能同 4 中介紹的 GENOME 版本。
⑧ linux查看系統內存大小
在Linux下查看內存我們一般用free命令:
[root@scs-2 tmp]# free
total used free shared buffers cached
Mem: 3266180 3250004 16176 0 110652 2668236
-/+ buffers/cache: 471116 2795064
Swap: 2048276 80160 1968116
下面是對這些數值的解釋:
total:總計物理內存的大小。
used:已使用多大。
free:可用有多少。
Shared:多個進程共享的內存總額。
Buffers/cached:磁碟緩存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解釋了。
區別:第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別。 這兩個的區別在於使用的角度來看,第一行是從OS的角度來看,因為對於OS,buffers/cached 都是屬於被使用,所以他的可用內存是16176KB,已用內存是3250004KB,其中包括,內核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是從應用程序角度來看,對於應用程序來說,buffers/cached 是等於可用的,因為buffer/cached是為了提高文件讀取的性能,當應用程序需在用到內存的時候,buffer/cached會很快地被回收。
所以從應用程序的角度來說,可用內存=系統free memory+buffers+cached。
如上例:
2795064=16176+110652+2668236
接下來解釋什麼時候內存會被交換,以及按什麼方交換。 當可用內存少於額定值的時候,就會開會進行交換。
如何看額定值:
cat /proc/meminfo