这里我们主要监测Linux服务器的CPU、硬盘、内存、
网络接口、主板等硬件的工作
状态。
IXPUB技术博客Phn;x7m hw?$_[ _4?+u!kN|0一、/proc文件系统特点IXPUB技术博客;_(s4T+?QiIXPUB技术博客 LDMZ/M\5U3u Linux 系统向
管理员提供了非常好的
方法,使他们可以在系统运行时更改内核,而不需要重新引导内核系统。这是通过 /proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。不用重新启动而去看 CMOS ,就可以知道系统信息。这就是 /proc 的妙处之一。/proc 目录里主要文件内容,见
表-1:
)c0E$cB h0 IXPUB技术博客8i9sMv/RU)q&u 每个Linux系统根据软硬件不同/proc 虚拟文件系统的内容也有些差异。/proc 虚拟文件系统有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。net目录包括多个 ASCII 格式的网络伪文件, 描述了网络层的部分情况,可以用arp 、netstat、route等命令来查询这些文件。除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。Proc文件系统的名字就是由之而起。
IXPUB技术博客.A?D!V#\ hv.rD'[t[l0二、proc文件系统主要实现的五大功能:%RaM^$k$L*kz)P0|6h0IXPUB技术博客^S*S5vm;U$^ 1. 进程信息:对于系统中的任何一个进程来说,在proc的子目录里都有一个同名的进程ID。你将可以找到以下的信息:cmdline, mem, root, stat, statm, 以及status。某些信息只有超级用户可见,例如进程根目录。到每一个单独的含有现有进程信息的进程有一些可用的专门链接。对于系统里的任何一个进程来说,都有一个单独的自链接指向进程信息。它的用处就是从进程中获取命令行信息。
;f$y!d3^4Xb \aZ0GvJ S5v k0 2. 系统信息:如果你需要了解整个系统信息,你也可以从/proc/stat中获得。它包括:包括CPU占用、磁盘空间、内存页、内存对换、全部中断、接触开关以及上次系统自举时间。
IXPUB技术博客`:R-T `*k]IXPUB技术博客 y%T9b o {G?x 3. CPU信息:利用/proc/cpuinfo文件,你可以获得中央处理器当前的准确信息。
|+]/V s JL@09e^p x9ZE8J6}%i,L/b0 4.
负载信息: /proc/loadavg文件包含了系统负载信息。
\8k:q:K&d0IXPUB技术博客)?8{{#L ` [Q(?0n4e 5. 系统内存信息:meminfo文件包含了系统内存的详细信息。它显示了物理内存的数量,可用
交换空间的数量,空闲内存的数量等等。
IXPUB技术博客o|ls$Wp.l.L|:XIXPUB技术博客9o d)P~&JS$o9y"Bi 1. 监测服务器全面统计状态IXPUB技术博客 F\&EJ noo TIXPUB技术博客M.K7gQXY c 要
监测全面统计状态,
使用命令,结果见图1:
.zn+U{-]0IXPUB技术博客dl7o/z/`K #cat/proc/stat
IXPUB技术博客;R4KD/a k|F3DIXPUB技术博客 Q,C+oN;j}$Q/Bz@
"R^X(zU?4G X0IXPUB技术博客rzKPk"a6R*{,T*A
图1 系统全面统计状态IXPUB技术博客9u r7^pa h gEY)^D
sz1Ki~ nc0+l |*s3^.S0 以上数字依次代表:
IXPUB技术博客A6w#N b/R6~,f8@Q;]e-o`1c5]_0 上下文切换数量;中断总量;进页面总数;出页面总数;进程总数;
V-ux3j5{y)FQ0$m^6x|,M5p0 换入总数;换出总数;合计CPU空闲时间;合计CPU nice时间;合计CPU系统时间;
|/F A*I2|0IXPUB技术博客NE/?J,Y^e@|^H 合计CPU用户时间。
IXPUB技术博客nNC W2O+|(]IXPUB技术博客:NIx'G4h|s 同时提供对每个CPU的:单个CPU空闲时间;单个CPU nice时间;单个CPU系统时间;单个CPU用户时间。
1C\0L9P ^,F;_B9g0IXPUB技术博客s GNR.y 以及对每个磁盘驱动器的如下数据:
M"L't/D(E#~&Vs$]Z P0ju po(d9p` k j0 单个磁盘块读;单个磁盘块写;单个磁盘I/O总数;单个磁盘I/O读;单个磁盘I/O写。
IXPUB技术博客` K+TJ2dC1]4y4j+ABOokF0 2.监测网络流量(MQ7@"F@ZjUB0IXPUB技术博客2r4ysF)G zM6Ztb 如果要了解网络流量,可以使用命令:结果见图1。
IXPUB技术博客P3hhf%v5W#fxIXPUB技术博客O]\ ZvzB #cat /proc/net/dev
{*A(fD^ Ws\ R u0IXPUB技术博客a6LZ@-RZ'Q[
IXPUB技术博客!K R}{g!w
"q8M bA*?$z(Le0图2网络接口数据包流量IXPUB技术博客Q\f_Qw(?G
IXPUB技术博客 Z_%J1B9e%q}IXPUB技术博客'Z;Yr(H$o 以上数字依次代表:接收到的字节;接收到的压缩字节;收到的误码数;收到的漏失误码;收到的FIFO误码;收到的帧误码;收到的多播误码;收到的总包数;已传输的字节;已传输的压缩字节;传输误码总数;传输载波误码;传输冲突误码;传输漏失误码;传输FIFO误码;传输的总包数。
)ry}.W$e+]0r._`/H d0 3.使用uptime命令IXPUB技术博客0rx{)m'K YV*K/iIXPUB技术博客e2b6? x3aWb 使用uptime命令可以查看系统负载,系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数目。如果一个进程满足以下条件则其就会位于运行队列中:没有在等待I/O操作的结果、它没有主动进入等待状态(也就是没有被调用、没有被停止。
IXPUB技术博客8?"p5\0^JIXPUB技术博客6i3w0guDmi # uptime
a'gc~8Q4l J0$E o m(j/[%a;Q0 9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94
mH*k[8_Q0S9W2a2~0IXPUB技术博客6\je,k:vZ3e/OYP 上面命令显示示最近1 分钟内系统的平均负载是6.02,在最近5分钟内系统的平均负载是5.90,在最近的15 分钟内系统的平均负载是3.94。一共四个用户。通常来说只要每个CPU的当前活动进程数不大于3那幺系统的性能就是良好的,如果每个CPU的任务数大于5,那幺就表示这台机器的性能有严重
问题。对于上面的例子来说,由于笔者系统使用是双CPU,那幺其每个CPU的当前任务数为:6.02/2=3.01。这表示该服务器的性能是可以接受的。
+`2M(eRe%P/\(tY;h0gt9]D3ETH0 x+ctC D7Q0IXPUB技术博客 S-|4o/kD[
本帖最后由 孤云野鹤 于 2005-12-28 16:02 编辑]
IXPUB技术博客3~fbXdt!WU3Lg-kIXPUB技术博客&?3K#sJWw_ ZH7z
4.使用xload图形显示系统负载IXPUB技术博客e;H `6dc ]
IXPUB技术博客)I K0M:kq`n'B T
如果安装了KDE环境,可以使用xload 显示系统平均负载的柱状图 ,它会定期地更新。xload是Linux一个系统命令,使用方法:
/p0Cu%E#T%YL4?0nrL"M#yv#z+A$q0 # xload [-options ...]
IXPUB技术博客+bm`i,? @-UqD5vud!~l0 xload 主要选项和说明:参见
表-27_.|:?(d%M.E9R;J sh X0IXPUB技术博客r Yg%K@\ #xload –scale 1 –update 1 –fg blue –h300 tan
IXPUB技术博客-\rr/fhMq_y[4GPOHMj0 上面命令表示使用xload查看系统的负载。每秒更新一次,其尺寸大小为300,前景颜色为白色,背景颜色为蓝。见图-3。
:v@'M?H@5[[0W0$Nz!}pk;sG*`+H3~N0
,iFYod;j {0图-3
X rPQ)A(h02w!dh'E#}o"oJP/v0IXPUB技术博客t)MLmn-e三、使用phpsysinfoeb:fN2oS(j,Y0fB E,^(w0@G0 由于/proc文件系统非常大,而且系统是动态变化的,所以使用Linux命令比较麻烦,这里我们使用一个工具:phpsysinfo,它是一个支持PHP网页服务器用于侦测主机一些资料的PHP 脚本工具
软件,可以提取/proc文件系统中的信息,以图形方式显示出来。另外phpsysinfo支持包括中文在内的20多种语言和许多风格的模板。
IXPUB技术博客$F$T\ c9y!U~IXPUB技术博客 z-abO_1^d 1.系统要求:W;V4mk%]?%ZbI,y0IXPUB技术博客"z,p$?"nP GN#@ 除了要
搭建一个基于LAMP(Linux+PHP+APACHE+MYSQL)的网络构架,其它系统要求:软件:它要求内核(Kenerl)至少在2.2以上。KDE 2.0,桌面颜色至少16位增强色。硬件:中央处理器:奔腾II 450 以上 ,内存 64 兆 ,硬盘空间 60兆。安装前的准备工作: phpsysinfo 是用PHP语言写成的,并且使用到gdk、gtk及glib。
IXPUB技术博客KG$RNt5k&K9H?!C.W"C!|Pw8ofOX0 2.软件下载:IXPUB技术博客&Om#Q S-oIXPUB技术博客1oju]b Kb #wget http://jaist.dl.sourceforge.net/ ... psysinfo-2.3.tar.gz
IXPUB技术博客k.N;F,Y i!F{IIXPUB技术博客gR0t-o] [\1B #wget http://secure.netroedge.com/~lm78/archive/i2c-2.8.8.tar.gz
IXPUB技术博客)rd M Kc/wZ.}'c]za8L;f0 #wget http://secure.netroedge.com/~lm78/archive/lm_sensors-2.8.8.tar.gz
IXPUB技术博客Yx;a Sk+h5U"D~.d"g@ t!]1WT0 3. 软件安装:IXPUB技术博客9_!\"?0\E#}6c5W"f+]IXPUB技术博客mk'Bo'X$D 将下载的软件拷贝到/var/www/html/目录下,执行:
IXPUB技术博客5Nr4]o8u3THuIXPUB技术博客$?TY y rJ #mv phpsysinfo-2.3.tar.gz /var/www/html/sysinfo
t8to8TVLmu%A0IXPUB技术博客,miA&^2?K #tar -zxvf phpsysinfo-2.3.tar.gz
d8a)QU@4d*e0IXPUB技术博客Iw;KCF3Q ~4rpn#a-o #cd sysinfo
IXPUB技术博客%k1g:FY/X*q,|\#AOw%?$a/t*` As0 #cp config.php.new config.php
IXPUB技术博客/zjJl"J0Y8PVIXPUB技术博客~0Zf/yPm 4.运行软件:IXPUB技术博客 Ru-{ m*A7fq'_k k ?7wGk bX C0 启动apache服务
IXPUB技术博客Q']bl.q|2|IXPUB技术博客1efT4]/K`T1Y #/usr/local/apache2/bin/apachectl start
IXPUB技术博客Lbm;Qt6Y TBi"Zs+M"R1i#Lw0v0 测试http://localhost/sysinfo (见图4)
G-oeK w/ry0IXPUB技术博客:O bF$B ?m3{D
wGn;Dz+v@8`0图4 phpsysinfo工作界面IXPUB技术博客f_,\H:Qv(D}4H
IXPUB技术博客 Sj4\*B/tR7TIXPUB技术博客PKzxWl phpsysinfo检测分成五个部分:
da m%OZ0IXPUB技术博客B1{;`:Zy ? (1)主机系统资源:主机名称、IP地址、内核版本、已开机时间、登入人数、系统负载。
*bfs@n0IXPUB技术博客F,[%k%P0cc (2)硬件信息:CPU型号、工作频率、快取大小、逻辑操作数、PCI接口、IDE接口、SCSI接口。
IXPUB技术博客#?3Z G&G0XZ~oXIXPUB技术博客+ST_4P/J+L%C5rO (3)网络负载:网络数据包接收、传送、错误/遗失。
j G3ZtpO0a` |)v"U(g0 (4)内存资源情况,包括物理内存、虚拟内存等。
!c0v5dh v%cp%c0[ WD(R(V8cs6W0 (5)已挂载分区:硬盘分区名称,使用比例。
!Dj#fDL&]0 %q~DQ er)gM H+?0 你也可以用它来测试你所租用的虚拟主机的设备及网络状况的品质。另外phpsysinfo还可以在FreeBSD 、OpenBSD、NetBSD 、Darwin/OSX 、Unix等系统下工作。
IXPUB技术博客!p#y o:GIR6u0|7GV Btix(N U PF/ei0[
本帖最后由 孤云野鹤 于 2005-12-28 16:02 编辑]
IXPUB技术博客Mw*[ j myIXPUB技术博客 DMX:tus%Z$}-N+n