Linux 查看CPU和内存使用情况详细说明

系统服务   Linux内存  
top 命令
  • top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况
  • top 内容解释
    PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称
  • top 内部命令提示栏
    s - 改变画面更新频率 (如下所示从1秒变为2秒)
  l - 关闭或开启第一行 top 信息的表示
  t - 关闭或开启第二行 Tasks 和第三行 Cpus 信息的表示
  m - 关闭或开启第四行 Mem 和 第五行 Swap 信息的表示
  N - 以 PID 的大小的顺序排列表示进程列表
  P - 以 CPU 占用率大小的顺序排列进程列表 
  M - 以内存占用率大小的顺序排列进程列表
  h - 显示帮助
  n - 设置在进程列表所显示进程的数量
  q - 退出 top
pmap 命令
  • pmap 可以根据进程查看进程相关信息占用的内存情况 (进程id先通过ps查看)
    pmap -d 1234
00007fff61777000     132 rwx-- 0000000000000000 000:00000   [ stack ]  
00007fff617ff000       4 r-x-- 0000000000000000 000:00000   [ anon ]  
ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]  
mapped: 833824K    writeable/private: 241800K    shared: 212K

看到最后一行
mapped             表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz  
writeable/private  表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小  
shared             表示进程和其他进程共享的内存大小  
free 命令
  • free 用于查看Linux内存的使用情况
[root@ops /]# free
             total       used       free     shared    buffers     cached
Mem:       3924380    3772468     151912        148     157832    2911252  
-/+ buffers/cache:     703384    3220996
Swap:      1999996          0    1999996

(Mem) 
total                                 总计物理内存的大小  
used                                  已使用多大  
free                                  可用有多少  
Shared                                多个进程共享的内存总额。  
Buffers/cached                        磁盘缓存的大小

(-/+ buffers/cached)
used                                 已使用多大。  
free                                 可用有多少。

(Swap)
total                                 总计物理内存的大小  
used                                  已使用多大  
free                                  可用有多少  
  • (mem)的used/free与(-/+ buffers/cache) used/free的区别
    • 使用的角度来看
      (mem) 是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是151912KB,已用内存是3772468KB,其中包括,内核(OS)使用+Application(X, etc)使用的+buffers+cached.
      (-/+ buffers/cache) 是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
    • 应用程序的角度
      可用内存 = free memory + buffers + cached