监测linux性能 之 top命令

来源:互联网 发布:红警点网络进不去 编辑:程序博客网 时间:2024/06/05 16:45

如果已经对top命令和服务器的硬件性能很熟悉的话,可以直接使用top命来来监测linux系统服务器的性能。

如果不清楚服务器配置或者是新人的话,我建议配合其他命令,查看服务器硬件配置,再综合top命令来一起监测,效果更佳,既能熟悉liunx系统的文件架构,又可以学习到top命令。


鉴于文章可以适合不同层次的阅众,就以空瓶子的角度来一起学习一下top命令吧。


首先top命令可以看到的最直观的是 各个进程对cpu,mem等的占用。然而服务器的cpu信息和mem信息大家到哪里找呢?


这个时候可以输入下面的命令:


cat /proc/cpuinfo | grep "physical id" | sort -ur | uniq | wc -l


这条命令其实有几个命令是多余的,不过可以一起来学习。

sort:对文件或输出结果排序。[u]对输出结果去重,[r]对输出结果倒序,[n]以数值排序,[o]输出到文件中(后面需要给出目标文件)。

uniq:对文件或输出的内容去重。[d]列出重复的行,[c]列出各行的出现频率,[]

wc(word count):统计输出结果。[l]按行统计;[c]按字节统计,[m]按字符统计。


其实linux将硬件配置信息的文件放在了 /proc这个目录下,如cpuinfo,meminfo;大家可以先在这个目录里面找到对应的信息,然后再去用top命令开始监测。


下面来详解一下top命令的各个项的意义。

输入top命令,按下回车,就会输出下面这堆东西:

top - 00:35:27 up  5:26,  1 user,  load average: 0.37, 0.21, 0.18
Tasks: 106 total,   1 running, 105 sleeping,   0 stopped,   0 zombie
Cpu(s):  6.4%us,  1.1%sy,  0.0%ni, 91.9%id,  0.2%wa,  0.0%hi,  0.2%si,  0.2%st
Mem:   1920656k total,   816884k used,  1103772k free,    77984k buffers
Swap:        0k total,        0k used,        0k free,   160664k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
17314 www       20   0  218m  31m 5588 S 21.8  1.7   0:10.37 php
17308 root      20   0  136m 2008 1000 S  6.0  0.1   0:02.13 crond
 1579 www       20   0 1016m  65m 5652 S  2.0  3.5   2:48.54 node /data/wwwr
18068 www       20   0 1639m  30m  16m S  2.0  1.6   0:00.42 phantomjs
    1 root      20   0 19232 1504 1220 S  0.0  0.1   0:01.86 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.10 migration/0


前5行是综合信息,下面的是一张系统具体运行的进程列表。


第一行:

00:35:27

当前时间

up  5:26

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

1 user

当前登录用户数

load average: 0.37, 0.21, 0.18

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



第二行:

Tasks: 106 total

进程总数

1 running

正在运行的进程数

105 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数



第三行:

Cpu(s): 6.4% us

用户空间占用CPU百分比

1.1% sy

内核空间占用CPU百分比

0.0% ni

用户进程空间内改变过优先级的进程占用CPU百分比

91.9% id

空闲CPU百分比

0.2% wa

等待输入输出的CPU时间百分比

0.0% hi

 

0.2% si


0.2%st


第四行:

Mem: 191272k total

物理内存总量

173656k used

使用的物理内存总量

17616k free

空闲内存总量

22052k buffers

用作内核缓存的内存量



第五行:

Swap: 192772k total

交换区总量

0k used

使用的交换区总量

192772k free

空闲交换区总量

123988k cached

缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。



第六行:空行

第七行:表栏目

PID

进程id

USER

进程所有者的用户名

PR

优先级

NI

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

VIRT

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

RES

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

SHR

共享内存大小,单位kb

S

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

%CPU

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

%MEM

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

TIME+

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

COMMAND

命令名/命令行



第八行:表内容




0 0
原创粉丝点击