linux系统运行情况分析
Linux 服务器性能监控
Linux 应用的日益广泛,有大量的服务器使用Linux 操作系统。为了全面衡量系统服务运行状况,实时跟踪服务器运行状况,跟踪分析压力来源,Linux 服务器监测技巧就还是很需要的,就需要对linux 系统的系统性能查看方法有所了解。
一、/proc文件系统特点
Linux 系统向管理员提供了非常好的方法,使他们可以在系统运行时更改内核,而不需要重新引导内核系统。这是通过 /proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数) 。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。不用重新启动而去看 CMOS ,就可以知道系统信息。
二、proc 文件系统主要实现的五大功能:
1. 进程信息:对于系统中的任何一个进程来说,在proc 的子目录里都有一个同名的进程ID 。你将可以找到以下的信息:cmdline, mem, root, stat, statm, 以及status 。某些信息只有超级用户可见,例如进程根目录。到每一个单独的含有现有进程信息的进程有一些可用的专门链接。对于系统里的任何一个进程来说,都有一个单独的自链接指向进程信息。它的用处就是从进程中获取命令行信息。
2. 系统信息:如果你需要了解整个系统信息,你也可以从/proc/stat中获得。它包括:包括CPU 占用、磁盘空间、内存页、内存对换、全部中断、接触开关以及上次系统自举时间。
3. CPU信息:利用/proc/cpuinfo文件,你可以获得中央处理器当前的准确信息。
查询命令:$cat /proc/cpuinfo
一般来讲,多核的CPU ,或者支持超线程的CPU ,或者物理上的多个CPU ,就会显示出对应的条数的信息。比如说双核的CPU 就会显示2条CPU 信息,双核超线程的CPU 就会显示出4条CPU 信息。虽然条数多了,但是基本信息都一样。
4. 负载信息: /proc/loadavg文件包含了系统负载信息。
5. 系统内存信息:meminfo文件包含了系统内存的详细信息。它显示了物理内存的数量,可用交换空间的数量,空闲内存的数量等等。
与查看CPU 信息对应的,查看内存信息的命令就是:
$cat /proc/meminfo
6. 查看硬盘信息。
可以使用下面的命令显示物理硬盘的个数以及对应的接口,还有硬盘的具体型号信息: $cat /proc/scsi/scsi
三、监测服务器全面统计状态
1. 每个磁盘驱动器的如下数据:
$ cat /proc/stat
单个磁盘块读;单个磁盘块写;单个磁盘I/O总数;单个磁盘I/O读;单个磁盘I/O 写。
2. 监测网络流量
命令:
$ cat /proc/net/dev
以上数字依次代表:接收到的字节;接收到的压缩字节;收到的误码数;收到的漏失误码;收到的FIFO 误码;收到的帧误码;收到的多播误码;收到的总包数;已传输的字节;已传输的压缩字节;传输误码总数;传输载波误码;传输冲突误码;传输漏失误码;传输FIFO 误码;传输的总包数。
3. 使用uptime 命令
使用uptime 命令可以查看系统负载,系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数目。如果一个进程满足以下条件则其就会位于运行队列中:没有在等待I/O操作的结果、它没有主动进入等待状态(也就是没有被调用、没有被停止。
$ uptime
9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94
上面命令显示示最近1 分钟内系统的平均负载是0.00,在最近5分钟内系统的平均负载是0.00,在最近的15 分钟内系统的平均负载是0.00。一共四个用户。通常来说只要每个CPU 的当前活动进程数不大于3那幺系统的性能就是良好的,如果每个CPU 的任务数大于5,那幺就表示这台机器的性能有严重问题。对于上面的例子来说,该服务器是没有任务负载的。
四、服务器主板工作状况监测:
服务器主板以及CPU 工作温度是否正常是服务器稳定的核心。迄今为止还没有一种CPU 散热系统能保证永不失效。失去了散热系统保护伞的“芯”,往往会在几秒钟内永远停止“跳动”。值得庆幸的是,工程师们早已开发出有效的处理器温度监控、保护技术。以特殊而敏锐的“嗅觉”随时监测CPU 的温度变化,并提供必要的保护措施,使CPU 免受高温下的灭顶之灾。
有个工具lm_sensors可以有效监控主板和CPU 的工作电压、风扇转速、温度等核心数据。
软件安装:
$mv lm_sensors-2.8.8.tar.gz /usr/local/src/
$cd /usr/local/src/
$tar zxvf lm_sensors-2.8.8.tar.gz
$cd /usr/local/src/lm_sensors-2.8.8
$tar xzf i2c-2.8.8.tar.gz
$make clean ;make dep ;make all ;make install
$/sbin/depmod -a
修改配置文件:“/etc/ld.so.conf”加入一行:/usr/local/lib
$ldconfig
$sensors-detect #扫描主板所有芯片,选择缺省选项即可(按会车)#
加载模块,注意主板不一定相同。
$modprobe i2c-isa
$modprobe lm78
$modprobe sis5595
开始检测
$sensors
高级应用:定时检测主板运行情况:
这里可以使用Linux 组合命令:
$watch --interval=450 “sensors ”
这样每隔450秒运行因此sensors 令,就可以得知主板运行情况。
五、综合性工具介绍
介绍一个工具nmon analyser v3.3alpha
Links:
NMON home page http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmon NMON_Analyser home page http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser User Forum
http://www.ibm.com/developerworks/forums/dw_forum.jsp?forum=749&cat=56 至官网下载文件:
将nmon 、nmon.sh 文件复制至主机,然后执行nmon.sh 即可生成koa1_110731_0900.nmon文件。
然后通过nmon analyser v33c.xls工具,导入koa1_110731_0900.nmon文件,点击生成xls 格式结果图。如下:基本已经包含所有信息。