Linux内存占用

记录一下几个常用的查看Linux内存和硬盘的命令,以备查看使用:

top

top命令是Linux下常用的性能分析工具,能够实时显示系统中进程的资源占用状况,类似于Windows的任务管理器可以直接使用top命令后,查看%MEM的内容。可以指定进程或者用户查看,如查看oracle用户的进程内存使用情况的话可以使用如下的命令:

$ top -u oracle

显示内容解释:

PID:进程的ID     
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

常用的命令:

P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行

pmap

可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:

$ pmap -d 14596

ps

ps 的参数众多, 在此仅列出几个常用的参数:

-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

du

du命令主要是用来查看硬盘使用情况的:

du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量
du -lh —max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。

free

free是最常用的查看内存占用的命令,有以下参数:

-b:以Byte为单位显示内存使用情况
-k:以KB为单位显示内存使用情况
-m:以MB为单位显示内存使用情况
-o:不显示缓冲区调节列
-s<间隔秒数>:持续观察内存使用状况
-t:显示内存总和列
-V:显示版本信息

举例说明:

free -m 
            total  used  free shared  buffers cached 
Mem:        2016   1973  42     0     163    1497 
-/+ buffers/cache: 312   1703 
Swap:       4094    0    4094     

输出的第一行:

total:内存总数
used:已经使用的内存数
free:空闲的内存数
shared:当前已经废弃不用
buffers Buffer:缓存内存数
cached Page:缓存内存数

第二行(-/+ buffers/cache):

(-buffers/cache) used内存数:第一行Mem行中的 used – buffers – cached
(+buffers/cache) free内存数: 第一行Mem行中的 free + buffers + cached

第三行是交换区的使用情况,那么什么时候会用到交换区的内存呢,即当可用内存少于额定值的时候,就会进行交换。可以通过cat /proc/meminfo来查看内存额定值:

hadoop@hadoop:~$ cat /proc/meminfo 
MemTotal:        1017576 kB
MemFree:          206012 kB
MemAvailable:     479832 kB
Buffers:           47344 kB
Cached:           333836 kB
SwapCached:            0 kB
Active:           455128 kB
Inactive:         271084 kB
Active(anon):     345856 kB
Inactive(anon):     4140 kB
Active(file):     109272 kB
Inactive(file):   266944 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:       1047548 kB
SwapFree:        1047548 kB
Dirty:               588 kB
Writeback:             0 kB
AnonPages:        345060 kB
Mapped:           174264 kB
Shmem:              4968 kB
Slab:              38328 kB
SReclaimable:      20452 kB
SUnreclaim:        17876 kB
KernelStack:        5312 kB
PageTables:        23708 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1556336 kB
Committed_AS:    2404256 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       23324 kB
VmallocChunk:   34359709832 kB
HardwareCorrupted:     0 kB
AnonHugePages:     65536 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB