Linux下产看CPU以及内存信息

本文是转贴以及总结,防止原文删除以作备份,参考文献:
http://www.iteye.com/topic/621389
http://blog.csdn.net/JsuFcz/archive/2009/12/20/5044932.aspx
查看CPU信息
1.ps命令

一些查看参数:
      1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
  2)ps -A 显示所有程序。
  3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
  4)ps -e 此参数的效果和指定"A"参数相同。
  5)ps e 列出程序时,显示每个程序所使用的环境变量。
  6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
  7)ps -H 显示树状结构,表示程序间的相互关系。
  8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
  9)ps s 采用程序信号的格式显示程序状况。
  10)ps S 列出程序时,包括已中断的子程序资料。
  11)ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
  12)ps u 以用户为主的格式来显示程序状况。
  13)ps x  显示所有程序,不以终端机来区分。

  最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
2.top命令
直接键入 top,返回一个类似windows下任务管理器的动态输出结果,此结果会长期占据控制台,而ps则相当于某时刻的一个剪影,所以到底用哪个是情况而定。
top输出结果详解:

前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

01:06:48         当前时间

up 1:22 系统运行时间,格式为时:分

1 user 当前登录用户数

load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15 分钟前到现在的平均值。

第二、三行为进程和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
最后两行为内存信息。内容如下:
Mem: 191272k total 物理内存总量
173656k used 使用的物理内存总量
17616k free 空闲内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
123988k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
 

序号

列名

含义

a

PID

进程id

b

PPID

父进程id

c

RUSER

Real user name

d

UID

进程所有者的用户id

e

USER

进程所有者的用户名

f

GROUP

进程所有者的组名

g

TTY

启动进程的终端名。不是从终端启动的进程则显示为 ?

h

PR

优先级

i

NI

nice值。负值表示高优先级,正值表示低优先级

j

P

最后使用的CPU,仅在多CPU环境下有意义

k

%CPU

上次更新到现在的CPU时间占用百分比

l

TIME

进程使用的CPU时间总计,单位秒

m

TIME+

进程使用的CPU时间总计,单位1/100

n

%MEM

进程使用的物理内存百分比

o

VIRT

进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES

p

SWAP

进程使用的虚拟内存中,被换出的大小,单位kb

q

RES

进程使用的、未被换出的物理内存大小,单位kbRES=CODE+DATA

r

CODE

可执行代码占用的物理内存大小,单位kb

s

DATA

可执行代码以外的部分(数据段+)占用的物理内存大小,单位kb

t

SHR

共享内存大小,单位kb

u

nFLT

页面错误次数

v

nDRT

最后一次写入到现在,被修改过的页面数。

w

S

进程状态。
D=
不可中断的睡眠状态
R=
运行
S=
睡眠
T=
跟踪/停止
Z=
僵尸进程

x

COMMAND

命令名/命令行

y

WCHAN

若该进程在睡眠,则显示睡眠中的系统函数名

z

Flags

任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
查看内存信息:
# free -m


                      total          used           free     shared    buffers     cached
Mem:       2074340    1340400     733940          0       216736     857836
-/+ buffers/cache:     265828    1808512
Swap:            0          0          0

查看/proc/kcore文件的大小:
PS:/kcore文件是虚拟内存映像,与内存的大小相等,属于虚拟文件系统,所以他不占磁盘空间的,可用

#du -h /proc/kcore

查看其实际大小

# ll -h /proc/kcore
or
#ls -l -h /proc/core
-r-------- 1 root root 897M Jan 30 19:39 /proc/kcore

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

linux 优先运用物理内存,当物理内存还有空闲时,linux是不会施放内存
的,即使占用内存的程序已经被关闭了(这部分内存就用来做缓存了)。也就
是说,即时你有2G的内存,用过一段时间后,也会被占满。这样做的裨益是,启
动那些刚开启过的程序、或是读取刚存取过得数据会比较快,对于服务器很有
裨益。
  
  用 used 减去 buffer 和 cache,才是运行中的程序所占用的空间

猜你喜欢

转载自lgsun592.iteye.com/blog/1052779