系统性能监测是 Unix 和 Linux 系统管理员一个重要工作。如果服务器系统性能突然低于平均应有的情况,问题可能来自在执行的进程、内存的使用率、磁盘的性能、网络流量和 CPU 的压力。在 IT 预算有限的今天,理解如何优化系统性能比以往任何时候都重要。一味地硬件投资并不是能够让人们接受的办法,并且有时候也不一定生效。通常系统管理员使用一些基础的工具(top、vmstat、mpstat、ps、free)来辨别和处理一些性能问题。ksar 是 sar 的 Java 图形化版本,可以把系统信息如:cpu、内存、网络、I/O 等使用图形化方式体现。而且支持可以监控远程的 Unix 类操作系统(Linux、AIX、Solaris、HPUX)。
ksar 简介
通常系统管理员使用一组命令完成如下任务:uptime 显示系统负载情况,mpstat 显示 CPU 性能,free 显示内存使用情况,vmstat 显示虚拟内存使用情况,iostat 显示系统 I/O 活动,netstat 显示网络的活动,df 和 du 显示磁盘使用情况。还可以使用 sar 工具完成以上任务,sar 是 System Activity Reporter(系统活动情况报告)的缩写。这个工具对于可以收集系统性能数据,比如 CPU 使用率、硬盘和网络吞吐数据,通过这些数据的收集和分析,系统管理员可以判断系统是否正常运行,是提高系统运行效率的得力助手。
安装配置 ksar
使用 ksar 之前要安装配置好 sar,这个工具也包含于大部分 Linux 发行版本中,在 Redhat Linux 中是 sysstat 软件包。另外您还要配置好 Java JDK 。JDK 版本要求不高,版本高于 1.50 即可。配置完成后,可以运行如下命令检查版本号:
#java -version
如果版本号超过 1.50 ,就可以使用 ksar
# wget http://jaist.dl.sourceforge.net/project/ksar/ksar/5.0.6/ksar-5.0.6.zip
# unzip ksar-5.0.6.zip
# cd ksar-5.0.6/
# sh run.sh
图 1. 第一次运行 ksar 要设置一下目标主机
使用 ksar 分析磁盘 I/O
目前计算机整体的处理器速度、内存大小以及 I/O 执行速度在不断提高,但 I/O 操作的吞吐率和延迟性能仍然要比等价的内存访问操作低多个数量级。另外由于许多工作负荷都拥有重要的 I/O 组件,I/O 处理很容易成为整体吞吐率和应用整体响应时间的重要瓶颈。针对 I/O 操作密集的应用,性能分析人员必须通过工具来获取关于 I/O 子系统操作的信息。系统管理员如果要了解磁盘 I/O信息,可以打开 data 菜单的 Run local command 栏目,然后输入命令:sar -b 3 12,这个命令表示每隔 3 秒报告磁盘使用情况,总共运行 12 秒结果如图 2。图 2 在数据采集结束后给出了统计平均数据。
图 2. 使用 ksar 分析磁盘 I/O
参数说明:
Ttansfer/s: 每秒从物理磁盘 I/O 的次数 . 多个逻辑请求会被合并为一个 I/O 磁盘请求,一次传输的大小是不确定的 .
Read/s: 每秒的读请求数
Writer/s: 每秒的写请求数
Block bread/s: 每秒读磁盘的数据块数
Block wrtn/s: 每秒写磁盘的数据块数
使用 ksar 分析网络信息
ksar 命令使用 -n 选项可以汇报网络相关信息,可用的参数包括:DEV、EDEV、SOCK 和 FULL。系统管理员如果要了解网络信息,可以打开 data 菜单的 Run local command 栏目然后输入命令:sar -n DEV 1 2 结果如图 3 。
图 3. 使用 ksar 分析网络信息
参数说明:
rxpck/s:每秒钟接收到的包数目
txpck/s:每秒钟发送出去的包数目
rxbyt/s:每秒钟接收到的字节数
txbyt/s:每秒钟发送出去的字节数
rxcmp/s:每秒钟接收到的压缩包数目
txcmp/s:每秒钟发送出去的压缩包数目
txmcst/s:每秒钟接收到的多播包的包数目
系统性能监测对于系统管理员来说,无疑是一个非常重要的工作,通常系统管理员使用一些基础的工具(top、vmstat、mpstat、ps、free)来辨别和处理一些性能问题,提高系统运行效率。本文介绍的ksar工具可以收集系统性能数据,帮助系统管理员们更好的解决问题。
使用 ksar 分析 CPU 信息
系统管理员如果要了解中央处理器的工作信息,可以打开 data 菜单的 Run local command 栏目然后输入命令:sar -P ALL 结果如图 4 。
图 4. 使用 ksar 分析 CPU 信息
参数说明:
%user 在用户模式中运行进程所花的时间
%nice 运行正常进程所花的时间
%system 在内核模式(系统)中运行进程所花的时间
%iowait 没有进程在该 CPU 上执行时,处理器等待 I/O 完成的时间
%idle 没有进程在该 CPU 上执行的时间
使用 ksar 分析内存信息
工作负荷有可能会耗尽所有可用的内存。因此有必要利用一些工具来监视内存的使用情况,例如每个进程或线程的内核内存占用量,以及内核数据结构的内存使用机制及其数量和大小。与 CPU 利用情况一样,理解操作系统和各个进程的行为对于跟踪内存短缺所引起的任何性能问题至关重要。系统管理员如果要了解内存信息,可以打开 data 菜单的 Run local command 栏目然后输入命令:sar -r 1 结果如图 5 。
图 5. 使用 ksar 分析内存信息
参数说明:
memfree: 这个值是空闲内存。
memused: 这个值是使用的内存。
%memused: 这个值是使用的内存和内存总量 ( 不包括 swap) 的一个百分比。
使用 ksar 分析 NFS 信息
网络文件系统 (Network File System,NFS) 可以将远程机器的文件系统与本地文件系统融合起来,即 NFS 使用与本地相同的读写接口来远程访问数据。系统管理员如果要了解 NFS 信息,可以打开 data 菜单在 Run local command 栏目然后输入命令 :sar -n NFS 1 结果如图 6 。
图 6. 使用 ksar 分析 NFS 信息
参数说明:
call/s: 每秒成功的 RPC 调用都会使 call/s 的值增长,比如对 NFS 的一次读 / 写 。
retrans/s: 每秒重传的 RPC 次数,比如因为服务器的问题,产生 timeout, 这时客户端需要重新传输 。
read/s: 每秒从 NFS 服务端读取的次数。
write/s: 每秒写入到 NFS 服务端的次数。
access/s: 每秒访问 NFS 的次数,比如从 NFS 服务端 COPY 文件。
getatt/s: 每秒获取 NFS 服务端文件属性的次数,比如 ls -l /NFSSERVER/, 如果 NFSSERVER 有 300 个文件,将产生 300 次这样的请求。
用 ksar 了解系统中断
系统管理员如果要了解系统中断的使用情况,可以打开 data 菜单的 Run local command 栏目然后输入命令 : :sar -I ALL 1 结果如图 7。
图 7. 用 ksar 了解系统中断
参数说明:
intr/s 表示每秒的中断次数。
使用 ksar 了解系统内存分页
分页是操作系统中的内存管理机制。通过这种方式计算机可以为主存存取其他存储介质上的数据。系统管理员如果要了解系统内存分页信息,可以打开 data 菜单的 Run local command 栏目,然后输入命令:sar -B 1 结果如图 8 。
图 8. 了解系统内存分页情况
参数说明:
pgpgin/s: 表示每秒从磁盘或 SWAP 置换到内存的字节数 (KB) 。
pgpgout/s: 表示每秒从内存置换到磁盘或 SWAP 的字节数 (KB) 。
fault/s: 每秒钟系统产生的缺页数,即主缺页与次缺页之和 (major + minor) 。
majflt/s: 每秒钟产生的主缺页数。
使用 ksar 了解系统整体所有信息
ksar 提供了一个选项,即 -A,它代表 all,而且还是大写的,这个 -A 就相当于所有选项了,打开 data 菜单的 Run local command 输入命令:sar – A 结果如图 9。
图 9. 使用 ksar 了解系统所有信息
从图 8 可以看到系统使用情况包括:系统进程、上下文、CPU、中断、I/O 系统、内存使用、连接、系统负载、交换分区、NFS 服务器和客户端性能包括所有重要信息。另外您可以把 ksar 的结果导出为一个文件(文件类型包括 pdf、PNG、JPG、TXT、CVS)。也可以把一个以前得到的监控的结果导入 ksar 进行图形化分析。
设置 ksar 的工作时间段
ksar 也可以查看非实时的数据,它是通过 cron 周期的运行 sysstat 脚本,将数据产生到指定的目录下,例如我们可以通过“Select time range”菜单选择起始时间段如图 10。
图 10. 选择起始时间段
远程使用 ksar
ksar 支持 SSH 连接,您可以使用它远程监控其他 Linux 或其他 Unix 类型的主机。首先要设置本地主机和远程主机之间可以通过自动 SSH 自动登录,然后打开 data 菜单的 Lanuch ssh command 输入命令 :ssh goodcjh1@192.168.110.1如图 11 。
图 11.ksar 支持 SSH 连接
总结
本文介绍了 ksar 这个工具,它基于 sar 的图形化工具。它可以从 10 几个方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。这个命令非常复杂,只有通过熟练使用才能掌握。
本文出自:http://os.51cto.com/art/201303/383262_6.htm