一、內存
1.top
top - 14:21:27 up 265 days, 1:56, 3 users, load average: 0.09, 0.13, 0.14
Tasks: 623 total, 1 running, 622 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.8 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 98712728 total, 417204 free, 7843160 used, 90452368 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 89872880 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15577 sdbadmin 20 0 0.144t 0.080t 0.078t S 26.5 86.5 2661:03 sequoiadb
27964 root 20 0 146628 2628 1444 R 0.7 0.0 0:04.52 top
1272 root 20 0 19268 1136 788 S 0.3 0.0 113:33.22 irqbalance
3832 centos 20 0 518948 203688 2160 S 0.3 0.2 25:47.82 mission-control
9993 root 20 0 120652 1052 868 S 0.3 0.0 90:34.93 vmstat
15565 sdbadmin 20 0 2963596 144884 24216 S 0.3 0.1 512:01.04 sequoiadb
1 root 20 0 43872 5716 3136 S 0.0 0.0 19:32.00 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:21.67 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:08.92 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
8 root rt 0 0 0 0 S 0.0 0.0 0:35.04 migration/0
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0
(以下略)
TOP前五行統計信息 | |
1. 第一行是任務隊列信息 | |
同 uptime 命令的執行結果: | |
[root@localhost ~]# uptime | |
13:22:30 up 8 min, 4 users, load average: 0.14, 0.38, 0.25 | |
其內容如下: | |
12:38:33 | 當前時間 |
up 50days | 系統運行時間,格式爲時:分 |
1 user | 當前登錄用戶數 |
load average: 0.06, 0.60, 0.48 | 系統負載,即任務隊列的平均長度。 三個數值分別爲 1分鐘、5分鐘、15分鐘前到現在的平均值。 |
2. 第二、三行爲進程和CPU的信息 | |
當有多個CPU時,這些內容可能會超過兩行。內容如下: | |
Tasks: 29 total | 進程總數 |
1 running | 正在運行的進程數 |
28 sleeping | 睡眠的進程數 |
0 stopped | 停止的進程數 |
0 zombie | 殭屍進程數 |
Cpu(s): 0.3% us | 用戶空間佔用CPU百分比 |
1.0% sy | 內核空間佔用CPU百分比 |
0.0% ni | 用戶進程空間內改變過優先級的進程佔用CPU百分比 |
98.7% id | 空閒CPU百分比 |
0.0% wa | 等待輸入輸出的CPU時間百分比 |
0.0% hi | |
0.0% si | |
3. 第四五行爲內存信息。 | |
內容如下: | |
Mem: 191272k total | 物理內存總量 |
173656k used | 使用的物理內存總量 |
17616k free | 空閒內存總量 |
22052k buffers | 用作內核緩存的內存量 |
Swap: 192772k total | 交換區總量 |
0k used | 使用的交換區總量 |
192772k free | 空閒交換區總量 |
123988k cached | 緩衝的交換區總量。 內存中的內容被換出到交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋, 該數值即爲這些內容已存在於內存中的交換區的大小。相應的內存再次被換出時可不必再對交換區寫入。 |
列說明:
PID 進程id
PPID 父進程id
PID 父進程idRUSER Real user name
UID 進程所有者的用戶id
USER 進程所有者的用戶名
GROUP 進程所有者的組名
TTY 啓動進程的終端名。不是從終端啓動的進程則顯示爲 ?
PR 優先級
NI nice值。負值表示高優先級,正值表示低優先級
P 最後使用的CPU,僅在多CPU環境下有意義
%CPU 上次更新到現在的CPU時間佔用百分比
TIME 進程使用的CPU時間總計,單位秒
TIME+ 進程使用的CPU時間總計,單位1/100秒
%MEM 進程使用的物理內存百分比
VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。
RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
CODE 可執行代碼佔用的物理內存大小,單位kb
DATA 可執行代碼以外的部分(數據段+棧)佔用的物理內存大小,單位kb
SHR 共享內存大小,單位kb
nFLT 頁面錯誤次數
nDRT 最後一次寫入到現在,被修改過的頁面數。
S 進程狀態。
D=不可中斷的睡眠狀態
R=運行
S=睡眠
T=跟蹤/停止
Z=殭屍進程
COMMAND 命令名/命令行
WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名
Flags 任務標誌,參考 sched.h
2.free
[root@localhost ~]$ free
total used free shared buff/cache available
Mem: 8011120 861556 3578136 31524 3571428 6784356
Swap: 8257532 617528 7640004
3./proc/meminfo
[root@localhost ~]$ cat /proc/meminfo
MemTotal: 8011120 kB
MemFree: 3578540 kB
MemAvailable: 6784668 kB
Buffers: 72 kB
Cached: 3301560 kB
SwapCached: 77552 kB
Active: 2723112 kB
Inactive: 1253340 kB
Active(anon): 248772 kB
Inactive(anon): 460432 kB
Active(file): 2474340 kB
Inactive(file): 792908 kB
Unevictable: 4452 kB
Mlocked: 4452 kB
SwapTotal: 8257532 kB
SwapFree: 7640004 kB
Dirty: 92 kB
Writeback: 0 kB
AnonPages: 641336 kB
Mapped: 37848 kB
Shmem: 31524 kB
Slab: 269692 kB
SReclaimable: 192296 kB
SUnreclaim: 77396 kB
KernelStack: 8000 kB
PageTables: 31208 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 12263092 kB
Committed_AS: 3318176 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 158112 kB
VmallocChunk: 34359572480 kB
HardwareCorrupted: 0 kB
AnonHugePages: 452608 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 139200 kB
DirectMap2M: 4055040 kB
DirectMap1G: 6291456 kB
/proc/pid/maps
/proc/pid/statm
[root@localhost ~]# cat /proc/self/statm
單位都是頁 (常見的是4KB)
分別是
size:任務虛擬地址空間大小
Resident:正在使用的物理內存大小
Shared:共享頁數
Trs:程序所擁有的可執行虛擬內存大小
Lrs:被映像倒任務的虛擬內存空間的庫的大小
Drs:程序數據段和用戶態的棧的大小