掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
一、Linux如何查看內(nèi)存使用情況1. free命令free命令可以顯示系統(tǒng)的內(nèi)存使用情況,free表示未被占用的物理內(nèi)存大??;shared表示多個(gè)進(jìn)程共享的部分物理內(nèi)存大??;
1. free命令

free命令可以顯示系統(tǒng)的內(nèi)存使用情況,包括物理內(nèi)存和交換空間。
語(yǔ)法:free [選項(xiàng)]
常用選項(xiàng):
- -b:以字節(jié)為單位顯示
- -k:以KB為單位顯示
- -m:以MB為單位顯示
- -g:以GB為單位顯示
示例:
```
$ free -h
total used free shared buff/cache available
Mem: 7.8G 2.3G 4.5G 16M 1.0G 5.2G
Swap: 2.0G 0B 2.0G
```
解釋?zhuān)?/p>
total表示總共的物理內(nèi)存大??;used表示已經(jīng)被占用的物理內(nèi)存大??;free表示未被占用的物理內(nèi)存大??;shared表示多個(gè)進(jìn)程共享的部分物理內(nèi)存大??;buff/cache表示緩沖區(qū)和高速緩存所占用的部分物理內(nèi)存大?。籥vailable表示還可以被應(yīng)用程序使用的可用物理內(nèi)存大小。Swap是交換空間,如果沒(méi)有開(kāi)啟交換分區(qū),則只會(huì)輸出total和used兩列。
2.top命令
top命令可以實(shí)時(shí)監(jiān)控系統(tǒng)資源使用情況,包括CPU、內(nèi)存等。
語(yǔ)法:top [選項(xiàng)]
常見(jiàn)選項(xiàng):
- M或者Shift+m按照進(jìn)程占據(jù)虛擬地址排序;
- P或者Shift+p按照進(jìn)程占據(jù)CPU使用率排序;
- T或者Shift+t按照進(jìn)程占據(jù)的時(shí)間累計(jì)值排序。
示例:
```
$ top
top - 10:50:01 up 1 day, 22:23, 2 users, load average: 0.00, 0.00, 0.00
Tasks: ... total, ... running, ... sleeping, ... stopped,
Cpu(s): ... us, ... sy,... ni,... id,... wa,... hi,... si,...
Mem: .... total,… used,… free,… buff/cache,...
Swap: ....total,… used,… free,…
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
...
```
解釋?zhuān)?/p>
VIRT表示虛擬內(nèi)存大小,RES表示實(shí)際物理內(nèi)存大小,SHR表示共享內(nèi)存大小。%MEM是該進(jìn)程所占用的物理內(nèi)存百分比。
3.ps命令
ps命令可以查看系統(tǒng)中正在運(yùn)行的進(jìn)程信息,包括每個(gè)進(jìn)程所占用的資源情況。
語(yǔ)法:ps [選項(xiàng)]
常見(jiàn)選項(xiàng):
- aux:顯示所有用戶(hù)的所有進(jìn)程。
- u:以用戶(hù)為主要關(guān)鍵字來(lái)顯示各個(gè)進(jìn)程狀態(tài)。
- x:顯示沒(méi)有控制終端的進(jìn)程。
示例:
```
$ ps aux | grep java
root xxxx xx.x xxxxx xxxxxxxx /usr/bin/java -jar /opt/xxx.jar --spring.profiles.active=prod --server.port=8088
user xxxx xx.x xxxxx xxxxxxxx /usr/bin/java -jar /opt/xxx.jar --spring.profiles.active=prod --server.port=8088
```
解釋?zhuān)?/p>
第一列是進(jìn)程的所有者,第二列是進(jìn)程ID,第三列是CPU占用率,第四列是內(nèi)存占用率。
4. vmstat命令
vmstat命令可以顯示系統(tǒng)的虛擬內(nèi)存使用情況和CPU使用情況。
語(yǔ)法:vmstat [選項(xiàng)] [時(shí)間間隔] [次數(shù)]
常見(jiàn)選項(xiàng):
- -a:顯示活動(dòng)和非活動(dòng)內(nèi)存區(qū)域。
- -f:顯示fork操作數(shù)量。
- -s:按照大小排序并且以KB為單位輸出結(jié)果。
示例:
```
$ vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 ... ... ... 0 0 x y z w v u t s
...
```
解釋?zhuān)?/p>
swpd表示交換空間已經(jīng)被使用的大?。籪ree、buff、cache分別表示未被占用的物理內(nèi)存、緩沖區(qū)和高速緩存所占用的部分物理內(nèi)存大??;si和so表示每秒鐘從磁盤(pán)讀取到交換空間或者寫(xiě)入到磁盤(pán)中去了多少數(shù)據(jù)。us、sy、id等字段與top命令類(lèi)似。
1. sar命令
sar命令可以記錄系統(tǒng)的CPU、內(nèi)存等資源使用情況,并且可以生成報(bào)告。
語(yǔ)法:sar [選項(xiàng)] [時(shí)間間隔] [次數(shù)]
常見(jiàn)選項(xiàng):
- -r:顯示內(nèi)存使用情況。
- -u:顯示CPU使用情況。
示例:
```
$ sar -r 1 5
Linux ... 4.15.0-101-generic (xxxx) xx/xx/xx _x86_64_ (8 CPU)
12:00:01 AM kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit
12:00:02 AM xxxxxx xxxxxx xxxx x.xx xxxxxx xxxxxx xxxx x.xx
...
Average: ... ... ... ...
```
解釋?zhuān)?/p>
kbmemfree表示未被占用的物理內(nèi)存大小;kbavail表示還可以被應(yīng)用程序使用的可用物理內(nèi)存大??;kbbuffers和kbcached分別表示緩沖區(qū)和高速緩存所占用的部分物理內(nèi)存大小。%commit是已經(jīng)提交到磁盤(pán)中但是尚未寫(xiě)入交換空間中去的數(shù)據(jù)量百分比。
2. top命令
top命令也可以記錄系統(tǒng)資源使用情況,包括CPU、內(nèi)存等,并且支持將結(jié)果輸出到文件中。
語(yǔ)法:top [選項(xiàng)] > 文件名
示例:
```
$ top -b -n 1 > top.log
```
解釋?zhuān)?/p>
-b參數(shù)表示以批處理模式運(yùn)行,不需要交互;-n參數(shù)表示運(yùn)行的次數(shù)。
3. pidstat命令
pidstat命令可以記錄每個(gè)進(jìn)程的資源使用情況,包括CPU、內(nèi)存等,并且支持將結(jié)果輸出到文件中。
語(yǔ)法:pidstat [選項(xiàng)] [時(shí)間間隔] [次數(shù)]
常見(jiàn)選項(xiàng):
- -r:顯示內(nèi)存使用情況。
- -u:顯示CPU使用情況。
示例:
```
$ pidstat -r 1 5 > pid.log
```
解釋?zhuān)?/p>
-r參數(shù)表示只記錄內(nèi)存使用情況。
以上就是關(guān)于linux如何查看內(nèi)存使用情況的相關(guān)知識(shí),如果對(duì)你產(chǎn)生了幫助就關(guān)注網(wǎng)址吧。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流