Linux服务器运行状况全面监测(上)

上一篇 / 下一篇  2008-07-30 07:01:30

随着Linux应用的日益广泛,有大量的网络服务器使用Linux操作系统。为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。SNMP协议的制订为互联网测量提供了有力支持。计算机系统是
_ T9{;w!n)bZZ0
J#boZI)S&y0IXwm0  由软件系统硬件系统组成的,检测硬件状态对于保障整个系统的稳定是非常重要的。不论操作系统是使用Linux、还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了。这里我们主要监测Linux服务器的CPU、硬盘、内存、网络接口、主板等硬件的工作状态。
UZ"o"KWZ$[Uc0
-xn]{+aP)Z1{Q l0一、/proc文件系统特点IXPUB技术博客[#DwRp"vo~
IXPUB技术博客"SIk!?)~o?@]R"Zu
  Linux 系统向管理员提供了非常好的方法,使他们可以在系统运行时更改内核,而不需要重新引导内核系统。这是通过 /proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。不用重新启动而去看 CMOS ,就可以知道系统信息。这就是 /proc 的妙处之一。/proc 目录里主要文件内容,见表-1IXPUB技术博客6F}gZ r%h4dO#A
   IXPUB技术博客2E%A9c}+v&T)C0a+D
  每个Linux系统根据软硬件不同/proc 虚拟文件系统的内容也有些差异。/proc 虚拟文件系统有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。net目录包括多个 ASCII 格式的网络伪文件, 描述了网络层的部分情况,可以用arp 、netstat、route等命令来查询这些文件。除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。Proc文件系统的名字就是由之而起。IXPUB技术博客,v+at9I&R['^?
IXPUB技术博客nSgV ?`3Au
二、proc文件系统主要实现的五大功能:
H]Gpnm:cOf0
3otdh)_\$u&B0  1. 进程信息:对于系统中的任何一个进程来说,在proc的子目录里都有一个同名的进程ID。你将可以找到以下的信息:cmdline, mem, root, stat, statm, 以及status。某些信息只有超级用户可见,例如进程根目录。到每一个单独的含有现有进程信息的进程有一些可用的专门链接。对于系统里的任何一个进程来说,都有一个单独的自链接指向进程信息。它的用处就是从进程中获取命令行信息。
.|:ud(r0m3Wp%V0IXPUB技术博客*{;`+~b1a
  2. 系统信息:如果你需要了解整个系统信息,你也可以从/proc/stat中获得。它包括:包括CPU占用、磁盘空间、内存页、内存对换、全部中断、接触开关以及上次系统自举时间。IXPUB技术博客 lB5g g0@2Z%z#c
IXPUB技术博客i2\ E!W\(DD
  3. CPU信息:利用/proc/cpuinfo文件,你可以获得中央处理器当前的准确信息。IXPUB技术博客 w2go"_ Oh+E+H
IXPUB技术博客$Mks%p5DE
  4. 负载信息: /proc/loadavg文件包含了系统负载信息。IXPUB技术博客7R ~"j7ree-d
IXPUB技术博客!U.C4}0Q ~_}&]
  5. 系统内存信息:meminfo文件包含了系统内存的详细信息。它显示了物理内存的数量,可用交换空间的数量,空闲内存的数量等等。
Qh1w#rl0IXPUB技术博客Ipe"nF0L#G
  1.  监测服务器全面统计状态IXPUB技术博客&y*FMA!A%`U_CL_

Gr*x&dDF9D;M0  要监测全面统计状态,使用命令,结果见图1:
g"v-x5Py,F0
[:D!f V[6NX8W:?/q V0  #cat/proc/stat
+@P&P+e)q9d0IXPUB技术博客S6h6vv6L3OG

IXPUB技术博客m4DgF)wQ0i wX3A
IXPUB技术博客-D/w5cs @Z6k{1_ ^
图1 系统全面统计状态

0o$p b'a Oti0
n6jK1mCOs0IXPUB技术博客/CUC5N L6`y
  以上数字依次代表:
;Q/jEz$lw Qc)I0
x2t,x)lH+q1s:B0  上下文切换数量;中断总量;进页面总数;出页面总数;进程总数;IXPUB技术博客!zu3a~n;l

%rp5JS3W/d.d|]0  换入总数;换出总数;合计CPU空闲时间;合计CPU nice时间;合计CPU系统时间;
+}3L!c4Iqm-R+S*hh0IXPUB技术博客0]5}\!}lC1\*a%~
  合计CPU用户时间。IXPUB技术博客"gM8toP3G!C

0n%}'l9G,lVi6]Z/h0  同时提供对每个CPU的:单个CPU空闲时间;单个CPU nice时间;单个CPU系统时间;单个CPU用户时间。IXPUB技术博客fHr A }(}+_5q.u
IXPUB技术博客*pp$S/o Ue&X
  以及对每个磁盘驱动器的如下数据:IXPUB技术博客:I s!p#h$o.H7g:Xq9c

(X.G3s/o5^G0  单个磁盘块读;单个磁盘块写;单个磁盘I/O总数;单个磁盘I/O读;单个磁盘I/O写。IXPUB技术博客.H7d5m UZ;F`
IXPUB技术博客D}0sc;Bw Rz8@jr
  2.监测网络流量
.X-z7z9Z3meg1qx&j6t0
~} ]+nc-hHe0  如果要了解网络流量,可以使用命令:结果见图1。IXPUB技术博客b Fq ^4{0~)t
IXPUB技术博客BZ%i-?:`[8h!P k9{9da t
  #cat /proc/net/dev
F$\"k'm@UrAq KP$z!w b0
N0t.xq A6}'A9D"A*Z0

IXPUB技术博客@9YG|u!F,i.vT]
        IXPUB技术博客+JZZ%M4M
图2网络接口数据包流量

cR0HLKB(Y0IXPUB技术博客O:GH1w7R
IXPUB技术博客z^q7F,_p!F
  以上数字依次代表:接收到的字节;接收到的压缩字节;收到的误码数;收到的漏失误码;收到的FIFO误码;收到的帧误码;收到的多播误码;收到的总包数;已传输的字节;已传输的压缩字节;传输误码总数;传输载波误码;传输冲突误码;传输漏失误码;传输FIFO误码;传输的总包数。
j9TH7|)BkKvY0IXPUB技术博客 f?#m|t5WX7y^+~$n
  3.使用uptime命令IXPUB技术博客4c5E.fkMo

A'T;Z tJ)D:e0  使用uptime命令可以查看系统负载,系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数目。如果一个进程满足以下条件则其就会位于运行队列中:没有在等待I/O操作的结果、它没有主动进入等待状态(也就是没有被调用、没有被停止。
,rFY,Y#YNbqb(\0
_ al3D L]0  # uptime
?'l ZV @I:[9Ci0
t;t[;W'Ux.B#c0  9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94IXPUB技术博客\%DY9A:I"ob
IXPUB技术博客5ou s4@j5m4K/uAF
  上面命令显示示最近1 分钟内系统的平均负载是6.02,在最近5分钟内系统的平均负载是5.90,在最近的15 分钟内系统的平均负载是3.94。一共四个用户。通常来说只要每个CPU的当前活动进程数不大于3那幺系统的性能就是良好的,如果每个CPU的任务数大于5,那幺就表示这台机器的性能有严重问题。对于上面的例子来说,由于笔者系统使用是双CPU,那幺其每个CPU的当前任务数为:6.02/2=3.01。这表示该服务器的性能是可以接受的。IXPUB技术博客 Ow g9`["nLnV v J

%B!rG;R il0 IXPUB技术博客5chhq v \ ?
IXPUB技术博客aD e%PT5?_U
[本帖最后由 孤云野鹤 于 2005-12-28 16:02 编辑]
`:^:X X/]2C$].kl/y0
I/q F:KtA}7[04.使用xload图形显示系统负载IXPUB技术博客-FF8G&dc3?8D3_O.Y

9HH#He"n?0
  如果安装了KDE环境,可以使用xload 显示系统平均负载的柱状图 ,它会定期地更新。xload是Linux一个系统命令,使用方法:
H1o;| w#}:A Z A_0
$|k!z9U6Z!l0  # xload [-options ...]
+M1s-] ZZj0
-~q|,X!_3Q!iH"@0  xload 主要选项和说明:参见表-2IXPUB技术博客$HR'r_)B_0cN
IXPUB技术博客t8O;t#B-K.O5j o
  #xload –scale 1 –update 1 –fg blue –h300 tan
(kh3S K7sSs0IXPUB技术博客a6e"U-eI"W
  上面命令表示使用xload查看系统的负载。每秒更新一次,其尺寸大小为300,前景颜色为白色,背景颜色为蓝。见图-3。IXPUB技术博客6r]2Wi M-zk

P$xb%Xy&O9~0


X|cn7V$O*N0图-3IXPUB技术博客zk&m9twX


y7G(Uz ^ ex/CX0
-|n.d.I u'a0三、使用phpsysinfoIXPUB技术博客.k-x$J4|B mWA E
IXPUB技术博客5w4@\0i _x/R4U
  由于/proc文件系统非常大,而且系统是动态变化的,所以使用Linux命令比较麻烦,这里我们使用一个工具:phpsysinfo,它是一个支持PHP网页服务器用于侦测主机一些资料的PHP 脚本工具软件,可以提取/proc文件系统中的信息,以图形方式显示出来。另外phpsysinfo支持包括中文在内的20多种语言和许多风格的模板。IXPUB技术博客-[7at[2Z;E
IXPUB技术博客}q4vfGl-a A
  1.系统要求:IXPUB技术博客?,]3y9p8p*N

!aTVg2R0  除了要搭建一个基于LAMP(Linux+PHP+APACHE+MYSQL)的网络构架,其它系统要求:软件:它要求内核(Kenerl)至少在2.2以上。KDE 2.0,桌面颜色至少16位增强色。硬件:中央处理器:奔腾II 450 以上 ,内存 64 兆 ,硬盘空间 60兆。安装前的准备工作: phpsysinfo 是用PHP语言写成的,并且使用到gdk、gtk及glib。
K'Mm)V6n n7],j W2t0IXPUB技术博客;[eA3lii7G,@{:E
  2.软件下载:
!Y;yuJn5_ sS0
.VOo Q^A m} X0  #wget http://jaist.dl.sourceforge.net/ ... psysinfo-2.3.tar.gzIXPUB技术博客'BH7W:cnxC,|

9UHz7a%I ]0  #wget http://secure.netroedge.com/~lm78/archive/i2c-2.8.8.tar.gz  IXPUB技术博客_;m&r$Qt(e5g
IXPUB技术博客5i y:K;R$X1XI}?
  #wget http://secure.netroedge.com/~lm78/archive/lm_sensors-2.8.8.tar.gz  
$r%M3z#c/v7A0IXPUB技术博客e*| qd#Qn)b
  3. 软件安装:IXPUB技术博客#M8`3q5p`WCM

'f&^!W2Ps+d4q3Q F0  将下载的软件拷贝到/var/www/html/目录下,执行:
RsH3E4e&G7d0IXPUB技术博客'R*YU(Yi
  #mv phpsysinfo-2.3.tar.gz /var/www/html/sysinfoIXPUB技术博客}B&sb5Xe,vR d7QR
IXPUB技术博客E.U)o:l+k@
  #tar -zxvf phpsysinfo-2.3.tar.gzIXPUB技术博客"h8D V NkYu
IXPUB技术博客4Gs2Zn#JG]J,\w
  #cd sysinfo
2`},[!n Ga0
7Y3o-VCO!S,u0  #cp config.php.new config.php
5J"_ PbCgmy0IXPUB技术博客a#~8x"g/?I{hg
  4.运行软件:
+YcG0[ t jC0IXPUB技术博客?/dmWo g
  启动apache服务
yWG1K&e t8xc0
Q9LC:sy,_0  #/usr/local/apache2/bin/apachectl start
D S0S7E S0IXPUB技术博客'}mm+H_
  测试http://localhost/sysinfo (见图4)
fS o0~6vI0IXPUB技术博客 m3zU6K0y,~ B

              
H,\5Z I4c?.n,xY0图4 phpsysinfo工作界面

Ec:Ug2n#xwR/Pn0IXPUB技术博客(F.Y~+o:_'mYu%T;@
IXPUB技术博客s#{,Xja;Q
  phpsysinfo检测分成五个部分:IXPUB技术博客]\(O @*x$WVm;?

/n%N%gU'hz0  (1)主机系统资源:主机名称、IP地址、内核版本、已开机时间、登入人数、系统负载。IXPUB技术博客9[9D2}Wp/Bxt8T

NDL s!D-S1\*N0  (2)硬件信息:CPU型号、工作频率、快取大小、逻辑操作数、PCI接口、IDE接口、SCSI接口。
3G*\AWOF0IXPUB技术博客3B KzMw*PI
  (3)网络负载:网络数据包接收、传送、错误/遗失。
M9m]+c ~w/NT:Wg0
:z(fXcY#nR H0a0  (4)内存资源情况,包括物理内存、虚拟内存等。IXPUB技术博客{]-tIVT|3r:S

-YN$K`U7n5G0  (5)已挂载分区:硬盘分区名称,使用比例。IXPUB技术博客 ^| Qv^2h*LU
        IXPUB技术博客p f)CX_| o _.^
  你也可以用它来测试你所租用的虚拟主机的设备及网络状况的品质。另外phpsysinfo还可以在FreeBSD 、OpenBSD、NetBSD 、Darwin/OSX 、Unix等系统下工作。IXPUB技术博客uXkd3_}

$J_,b8kk |p0[本帖最后由 孤云野鹤 于 2005-12-28 16:02 编辑]
R8t.V0F,e"b?`0IXPUB技术博客DHZ*pi

TAG: linux 服务器 运行 状况 Linux 监测

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-06  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 65207
  • 日志数: 1208
  • 文件数: 1
  • 建立时间: 2007-08-10
  • 更新时间: 2009-01-06

RSS订阅

Open Toolbar