一、内存
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:程序数据段和用户态的栈的大小