1.[root@localhost ~]# w // 从左边依次为时间,系统运行时间,登录用户数,平均负载。第二行告诉我们当前登录的都有哪些用户,以及他们从哪里登录等等。我们应该最关心的时候load average后面三个参数,第一个表示1分钟内系统的平均负载值;第二个表示5分钟系统的平均负载值;第3个为15分钟的平均负载值,如果这个值越大说明你的服务器压力越大。一般这个值不超过你cpu的数量就没关系,cpu的数量可以用grep -c 'processor' /proc/cpuinfo

 08:32:19 up 3 min,  2 users,  load average: 0.42, 0.74, 0.34
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                08:30    1:17   0.09s  0.09s -bash
root     pts/0    192.168.40.41    08:32    0.00s  0.06s  0.01s w


2.[root@localhost ~]# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 127192  20884 168676    0    0    83    12   60   48  1  2 97  1  0


procs 显示进程相关信息

r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;

b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要你关注一下了;

2)memory 内存相关信息

swpd :表示切换到交换分区中的内存数量 ;

free :当前空闲的内存数量;

buff :缓冲大小,(即将写入磁盘的);

cache :缓存大小,(从磁盘中读取的);

3)swap 内存交换情况

si :由内存进入交换区的数量;

so :由交换区进入内存的数量;

4)io 磁盘使用情况

bi :从块设备读取数据的量(读磁盘);

bo: 从块设备写入数据的量(写磁盘);

5)system 显示采集间隔内发生的中断次数

in :表示在某一时间间隔中观测到的每秒设备中断数;

cs :表示每秒产生的上下文切换次数;

6)CPU 显示cpu的使用状态

us :显示了用户下所花费 cpu 时间的百分比;

sy :显示系统花费cpu时间百分比;

id :表示cpu处于空闲状态的时间百分比;

wa :表示I/O等待所占用cpu时间百分比;

st :表示被偷走的cpu所占百分比(一般都为0,不用关注);

以上所介绍的各个参数中,笔者经常会关注r列,b列,和wa列,三列代表的含义在上边说得已经很清楚。IO部分的bi以及bo也是我要经常参考的对象。如果磁盘io压力很大时,这两列的数值会比较高。另外当si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。

 

3.[root@localhost ~]# free -m //查看内存剩余看第二行参数。
             total       used       free     shared    buffers     cached
Mem:           454        329        124          0         20        164
-/+ buffers/cache:        144        309
Swap:         2047          0       2047


4.[root@localhost ~]# ps aux //查看进程
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  10368   684 ?        Ss   08:28   0:01 init [3]     
root         2  0.0  0.0      0     0 ?        S<   08:28   0:00 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   08:28   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   08:28   0:00 [watchdog/0]
root         5  0.0  0.0      0     0 ?        S<   08:28   0:00 [events/0]
root         6  0.0  0.0      0     0 ?        S<   08:28   0:00 [khelper]
root         7  0.0  0.0      0     0 ?        S<   08:28   0:00 [kthread]
root         9  0.0  0.0      0     0 ?        S<   08:28   0:00 [xenwatch]
root        10  0.0  0.0      0     0 ?        S<   08:28   0:00 [xenbus]


PID :进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 ‘kill 进程的pid’,有时并不能杀掉,则需要加一个-9选项了’kill -9 进程pid’

STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解)

D  不能中断的进程(通常为IO)

R  正在运行中的进程

S  已经中断的进程,通常情况下,系统中大部分进程都是这个状态

T  已经停止或者暂停的进程,如果我们正在运行一个命令,比如说sleep 10,如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态

W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配

X  已经死掉的进程(这个好像从来不会出现)

Z  僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。

<  高优先级进程

N  低优先级进程

L   在内存中被锁了内存分页

s   主进程

l   多线程进程

+  代表在前台运行的进程

这个ps命令是笔者在工作中用的非常多的命令之一,所以请记住它吧。关于ps命令的使用,笔者经常会连同管道符一起使用,用来查看某个进程或者它的数量。