工作中~
分类: LINUX
2009-03-19 12:32:13
来自:LinuxSir.Org
目录 |
1、关于 Sysstat;
Sysstat 是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如CPU使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手;
Sysstat 软件包集成如下工具:
* iostat 工具提供CPU使用率及硬盘吞吐效率的数据; |
2、安装 Sysstat和运行;
对于大多数系统,都有这个软件包,软件名以sysstat开头。我们可以通过网络安装它;
2.1 对于Debian或deb软件包为基础的系统;
[root@localhost ~]# apt-get install
sysstat |
2.2 Fedora 系统或以RPM包管理的系统;
[root@localhost ~]# yum install sysstat |
如果是RPM包,请用下面的命令来安装;
[root@localhost ~]# rpm -ivh sysstat*.rpm |
如果您想了解yum 和rpm 软件包管理工具,请参考:
2.3 Slackware 系统,对于Slackware系统;
[root@localhost ~]# installpkg sysstat*.pkg |
2.4 通过源码包编译安装;
如果您是通过源码包安装,请到官方下源源码包 ,目前最新版本是 sysstat-6.1.2;
如果您想了想一下什么是源码包,请参考:
[root@localhost ~]# tar zxvf
sysstat-6.1.2.tar.gz |
2.5 关于 Sysstat 计划任务;
如果您想得到Sysstat工具集所收集的系统信息自动存为某个文件中,你必须通过cron 为 sa1 和sa2 做计划任务。我们可以通过修改用户的crontab。在默认的情况下,Sysstat历史信息将被存放在/var/log/sa文件中。如果想定义自己的计划任务,请参考:
在root用户,通过crontab -e 来添加下面的一段;
# 8am-7pm activity reports every 10 minutes during
weekdays |
创建Sysstat的启动脚本;
[root@localhost ~]# touch /etc/rc.d/init.d/sysstat
|
#!/bin/sh |
[root@localhost ~]# chmod 755
/etc/rc.d/init.d/sysstat |
有了Sysstat的守护进程,这样我们开机后,Sysstat的守护进程,就时时刻刻的为我们服务了。sa 、sa1或sa2自动把信息存在 /var/log/sa目录的二进制文件中,我们可以通过sar工具来提取这些系统信息的历史;
当然我们也可以通过手动的方法来打开Sysstat的守护程序,也就是我们前面所制作的sysstat;
[root@localhost ~]# /etc/rc.d/init.d/sysstat start
下面的方法也行;
[root@localhost ~]# /usr/lib/sa/sa1
[root@localhost
~]# /usr/lib/sa/sa2
3.Sysstat 工具集介绍;
3.1 sadc 工具,
sadc 位于 /usr/lib/sa目录中,如果你没有设置可执行路径,要用绝对路径来运行比较方便 ,/usr/lib/sa/sadc;sadc 是把数据写在一个二进制的文件中,如果想查看数据内容,需要用sadf工具来显示;
sadc 的用法;
/usr/lib/sa/sadc [ -d ] [ -F ] [ -I ] [ -L ] [ -V ] [
interval [ count ] ] [ outfile ] |
参数说明:
-d 报告硬盘设置的相关统计; |
注意:此工具中的参数都是可选的,如果没有指定任何参数,比如 /usr/lib/sa/sadc - ,则会输出数据到 /var/log/sa/ 目录下的一个文件中。我们要通过sadf 或sar工具来查看;
[root@localhost beinan]# /usr/lib/sa/sadc -
|
举例:我们想把sadc收集到的数据写到一个指定的文件中;
[root@localhost ~]# /usr/lib/sa/sadc 1 10 sa000 |
注解:我们用sadc 收集系统动态数据,让它收集1秒之内的10次动态信息; 然后通过sar 工具来查看系统的状态。也可以用 sadf 来查看所收集的数据,但不是太直观。您自己尝试一下看看。查看sa000文件,用 sadf sa000 ;
3.2 sar 工具;
sar 工具比较强大,既能收集系统CPU、硬盘、动态数据,也能显示动态显示,更能查看二进制数据文件;sar 的应用比较多,而且也比较复杂,数据更为精确。我们只了解一下常用的内容就行,大多数内容我们了解就行;
用法:
sar [参数选项] |
参数说明:
-A 显示所有历史数据,通过读取/var/log/sar
目录下的所有文件,并把它们分门别类的显示出来; |
sar 应用举例;
实例一: 如果只用sar 命令,sar就是读取 /var/log/sa目录下最近系统状态文件。
[root@localhost ~]# sar |
如果我们想知道CPU的利用率;动态更新;下面的例子是每秒更新一次数据,总共更新五次;
[root@localhost ~]# sar -u 1 5 |
注解:
CPU:表示机器内所有的CPU;
%user 表示CPU的利用率;
%nice
表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait
表示请求硬盘I/0数据流出时,所占用CPU的百分比;
%idle 表示空闲CPU百分比,值越大系统负载越低;
您可以CPU利用率的动态信息输出到一个文本文件中,然后通过more 来查看。
[root@localhost ~]# sar -u 1 5 > sar000.txt
|
也可以输出到一个二进制的文件中,然后通过sar来查看;
[root@localhost ~]# sar -u 1 5 -o sar002
|
注:如果您把数据通过-o filename 输出到一个二进制的文件中,是不能用文件内容查看工具more 、less或cat来查看的,应该用sar工具来查看,要加-f参数;
实例二:查看网络设备的吞吐情况;
比如我们让数据每2秒更新一次,总共更新5次;
[root@localhost ~]# sar -n DEV 2 5 |
第一字段:时间; |
如果我们从事提取eth0设备(也就是网卡eth0)的信息;我们应该用grep 来过滤。然后再显示出来;
[root@localhost ~]# sar -n DEV 2 5 |grep
eth0
11时52分37秒 eth0 1.00 1.00 97.51 97.51 0.00 0.00
0.00 |
如果想知道网络设备错误报告,也就就是用来查看设备故障的。应该用EDEV;比如下面的例子;
[root@localhost ~]# sar -n EDEV 2 5 |
3.3 iostat
iostat 是用来显示 系统即时系统,比如CPU使用率,硬盘设备的吞吐率;
[root@localhost ~]# iostat |
3.4 mpstat
mpstat 提供多处理器系统中的CPU的利用率的统计;mpstat 也可以加参数,用-P来指定哪个 CPU,处理器的ID是从0开始的。下面的例子是查看两个处理器,每二秒数据更新一次,总共要显示10次数据;
[root@localhost ~]# mpstat -P 0 2 10
注:查看第一个CPU
|
3.5 sdaf
sdaf 能从二进制文件中提取sar所收集的数据;这个大家知道就行了。显示的并不是友好的格式;
[root@localhost ~]# sar -u 2 5 -o
sar003 |
相对来说,用sar来读取输出文件的内容更好;比如下面的;
[root@localhost ~]# sar -f sar003 |
4、 与Sysstat相似工具;
4.1 进程管理工具;
进程管理工具,包括ps 、pgrep、top、kill 、killall、pkill 等,请参考
4.2 内存使用率查看工具;
内存使用量 free
free 工具既能查看物理内存,也能查看虚拟内存的用量;
[root@localhost ~]# free |
如果显示以单位M,则加-m参数;
[root@localhost ~]# free -m |
vmstat 即时显示内存工具;
vmstat 是一个即时显示内存使用情况的工具;
vmstat 使用方法:
vmstat [-V] [-n] [delay [count]] |