linux 主机监控

1. sar

sar可以用来监控系统的cpu, io, network, interupt, memeroy,以及进程cpu的信息。常用选项:
sar –u(cpu) –r(memeroy) –W(swap) –n(network) –I(interupt) –b(io) -d(device) 1(interval) 20(count)

sar -n DEV -u 2 5

sar -d 2 4

2. netstat 

http://blog.csdn.net/dyllove98/article/details/9200589
[gpadmin@sdw1 ~]$ netstat -pt
(No info could be read for "-p": geteuid()=500 but you should be root.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 188.100.253.234:ssh         129.100.248.247:51081       ESTABLISHED -                   
tcp        0      0 sdw1-2:ssh                  mdw-2:63415                 ESTABLISHED -                   
tcp        0      0 sdw1-2:ssh                  mdw-2:63305                 ESTABLISHED -                   
tcp        0      0 188.100.253.234:ssh         129.100.253.126:55329       ESTABLISHED -                   
tcp        0      0 sdw1-2:ssh                  mdw-2:62796                 ESTABLISHED -                   
tcp        0      0 sdw1:ssh                    mdw:19024                   ESTABLISHED -                   
tcp        0      0 sdw1-2:ssh                  mdw-2:63205                 ESTABLISHED -                   
tcp        0      0 sdw1:ssh                    mdw:19481                   ESTABLISHED -                   
tcp        0      0 sdw1:ssh                    mdw:26304                   ESTABLISHED -                   

[gpadmin@sdw1 ~]$ 


2. top

实时的系统性能监控工具
可以动态查看系统的cpu, memeroy,以及各个进程的资源信息 

我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT)、物理内存(RES)、共享内存(SHR)。


mpstat的语句如下:

$mpstat –查看所有cpu的汇总信息

$mpstat –P ALL分开显示不同cpu的汇总信息

$mpstat –P 1   只显示cpu 1的汇总信息

# uptime:显示系统运行时间

可以具体参考下top命令
shift+m可以按内存排序
shift+p  CPU排序


3. iostat

iostat –x 1
iostat -d -x -m 3 3

# iostat -x 2 2
Linux 2.6.18-194.el5 (pc197)    11/19/2013

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.96    0.01    0.39    4.65    0.00   89.99

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               5.44   132.99 34.44 18.28  2409.64  1210.47    68.67     0.16    6.82   3.33  17.56
sda1              0.00     0.00  0.00  0.00     0.00     0.00     4.70     0.00   20.11  20.11   0.00
sda2              5.44   132.99 34.44 18.28  2409.64  1210.47    68.67     0.16    6.82   3.33  17.56
dm-0              0.00     0.00 39.72 151.15  2408.31  1209.23    18.95     0.17    0.91   0.92  17.55
dm-1              0.00     0.00  0.17  0.15     1.32     1.24     8.00     0.01   22.09   1.39   0.04

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          24.75    0.00    0.50    0.25    0.00   74.50

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00   124.50  0.50  6.00     4.00  1044.00   161.23     0.01    1.85   1.85   1.20
sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00   124.50  0.50  6.00     4.00  1044.00   161.23     0.01    1.85   1.85   1.20
dm-0              0.00     0.00  0.50 130.50     4.00  1044.00     8.00     0.18    1.41   0.09   1.20
dm-1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

cpu列中iowait是指cpu空闲而io队列非空的处理器时间比例
device中的util是指io队列非空的处理器时间比例。%util >= %iowait 
device列中各行的具体含义:
rrqm/s wrqm/s 是每秒钟进行merge的读写次数,就是逻辑上的read和write次数

r/s w/s是merge后对物理设备的读写次数,是真正执行的read和write次数

rsec/s wsec/s是读写设备的扇区数,注意write操作可能也会需要读设备扇区,是真实的物理操作

rkB/s wkB/s是读写设备的K字节数。rkB/s = rsec/s / 2, wkB/s = wsec/s / 2

avgrq-sz是 平均每次merge后的IO操作的数据扇区大小
       avgrq-sz = (rsec/s + wsec/s) / (r/s + w/s)

avgqu-sz是平均IO队列长度。可以反映系统IO负载,不能反映瞬间的IO洪水。

await是平均每次IO操作的耗时,包括在队列中的等待时间和真正的操作时间。

svctm是平均每次IO操作的真正操作耗时,svctm一般和磁盘的性能相关,cpu/内存等也会有间接影响;await主要由svctm和请求队列长度决定。svctm <= await

通过await和svctm的差值(即队列中等待时间)可以一定程度的反映IO洪水。因为IO洪水,导致IO请求等待时间很长,await和svctm的差值较大,这个时间点IO队列也长,而平均到统计周期中IO队列可能很短。
        await = delta(ruse + wuse) / delta(io) //await 单位ms
       delta(io) = r/s + w/s

       每秒钟的平均队列长度 = 总等待时间ms / 1000
=>  delta(ruse + wuse) = await * (r/s + w/s)
=>  avgqu-sz = await * (r/s + w/s) / 1000

 

平均单次IO大小(IO Chunk Size) avgrq-sz
平均IO响应时间(IO Response Time) await
IOPS(IO per Second) r/s + w/s
吞吐率(Throughtput) rkB/s + wkB/s

4. vmstat

vmstat -w 3
vm类似于sar 但是不能监控网络信息,可以监控cpu,memeroy,中断,上下文切换等系统信息。可以看到有效内存和无效内存的信息,slab信息。不过可读性不好。

5、进程

ps aux --查看所有的详细进程

[root@sdw2 ~]# ps auxw --sort=rss,vsz|head -10

ps -aux | sort -k4,4n

ps auxw --sort=rss

ps auxw --sort=%cpu

%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小
RSS 进程使用的驻留集大小或者是实际内存的大小
TTY 与进程关联的终端(tty)
STAT 检查的状态:进程状态使用字符表示的,如R(running正在运行或准备运行)、S(sleeping睡眠)、I(idle空闲)、Z (僵死)、D(不可中断的睡眠,通常是I/O)、P(等待交换页)、W(换出,表示当前页面不在内存)、N(低优先级任务)T(terminate终止)、W has no resident pages

START (进程启动时间和日期)
TIME ;(进程使用的总cpu时间)
COMMAND (正在执行的命令行命令)
NI (nice)优先级
PRI 进程优先级编号
PPID 父进程的进程ID(parent process id)
SID 会话ID(session id)
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识

6、内存

# free:查看内存

free -g


综上所述:

观察cpu,memeroy信息使用: top
io使用: iostat,
网络信息使用: sar –n DEV。

中断等其他信息使用sar。vmstat只在分析虚拟内存细节时使用。监控时不仅仅使用一种方案,可以多种方案互相参考,比如io可以使用iostat –x 和sar –d 一起使用

watch -d -n 1 sar -n DEV  1 4
watch -d -n 2 vmstat -w 3 3


你可能感兴趣的:(linux 主机监控)