本文共 4224 字,大约阅读时间需要 14 分钟。
一.简单介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 1.安装软件 #yum install sysstat [root@node1 sa] # rpm -ql sysstat /etc/cron .d /sysstat /etc/rc .d /init .d /sysstat /etc/sysconfig/sysstat /etc/sysconfig/sysstat .ioconf /usr/bin/cifsiostat /usr/bin/iostat ... 2.安装sysstat包后,默认创建一个 /etc/cron .d /sysstat 文件,其默认内容为 [root@node1 sa] # cat /etc/cron.d/sysstat # Run system activity accounting tool every 10 minutes * /10 * * * * root /usr/lib64/sa/sa1 1 1 # 0 * * * * root /usr/lib64/sa/sa1 600 6 & # Generate a daily summary of process accounting at 23:53 53 23 * * * root /usr/lib64/sa/sa2 -A 在 cron 任务 /etc/cron .d /sysstat 中每隔10分钟执行一次 /usr/lib/sa/sa1 在 cron 任务 /etc/cron .d /sysstat 中每天 23:53执行一次 /usr/lib/sa/sa2 3.主要命令 在 /usr/lib64/sa 目录下有三个文件: sa1 sa2 sadc sa1:是调用sadc(二进制文件),将数据收集到二进制日志文件的一个Shell脚本。sa1命令还确保每天使用不同的文件。每隔十分钟运行一次该命令,最好不要改这个值,这是对一般系统折中的值。二进制日志文件存放在 /var/log/sa/ 目录下,命名为sa${DATE}。 sa2:是将当日二进制日志文件中所有的数据转储到文本文件(sar)的另一个Shell脚本,然后它将清除七天之前的所有日志文件。参数-A指定了从二进制文件中提取哪些数据转储到文本文件中。转储的文件存放在 /var/log/sa/ 目录下,命名为sar${DATE}。 文件 /var/log/sa/saDD 为二进制文件,不能使用 more 、 less 等文本工具查看,必须用 sar 或 sadf 命令查看 文件 /var/log/sa/sarDD 为文本文件,可以使用 more , cat 查看 |
二.查看cpu信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 1.进程队列长度和平均负载状态监控: #每5s采样一次,连续采样10次,监控进程队列长度和平均负载状态 [root@node1 sa] # sar -q 5 10 Linux 2.6.32-642.el6.x86_64 (node1) 07 /12/2017 _x86_64_ (4 CPU) 08:44:50 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 08:44:55 PM 0 182 0.00 0.01 0.04 08:45:00 PM 0 182 0.00 0.01 0.04 08:45:05 PM 0 182 0.00 0.01 0.04 08:45:10 PM 0 182 0.00 0.01 0.04 08:45:15 PM 0 182 0.00 0.01 0.04 08:45:20 PM 0 182 0.00 0.01 0.04 .... runq-sz: 运行队列的长度(等待运行的进程数) plist-sz:进程列表中进程(processes)和线程(threads)的数量 ldavg-1: 最近1分钟的系统平均负载(Systemload average) ldavg-5: 过去5分钟的系统平均负载 ldavg-15:过去15分钟的系统平均负载 2.CPU资源监控 [root@node1 sa] # sar -u 1 10 Linux 2.6.32-642.el6.x86_64 (node1) 07 /12/2017 _x86_64_ (4 CPU) 08:47:45 PM CPU %user % nice %system %iowait %steal %idle 08:47:46 PM all 0.00 0.00 0.99 0.00 0.00 99.01 08:47:47 PM all 0.00 0.00 1.25 0.00 0.00 98.75 08:47:48 PM all 0.00 0.00 1.74 0.00 0.00 98.26 08:47:49 PM all 0.25 0.00 1.49 0.00 0.00 98.26 08:47:50 PM all 0.00 0.00 1.25 0.00 0.00 98.75 08:47:51 PM all 0.00 0.00 1.50 0.00 0.00 98.50 ... 输出项说明: CPU:all #表示统计信息为所有 CPU 的平均值。 %user #显示在用户级别(application)运行使用 CPU 总时间的百分比。 % nice #显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。 %system #在核心级别(kernel)运行所使用 CPU 总时间的百分比。 %iowait #显示用于等待I/O操作占用 CPU 总时间的百分比。 %steal #管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 %idle #显示CPU空闲时间占用CPU总时间的百分比。 若 %iowait 的值过高,表示硬盘存在I /O 瓶颈 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是CPU。 |
三.查看磁盘I/O和传送速率的统计信息
1 2 3 4 5 6 7 8 | [root@node1 sa] # sar -b 输出项说明: tps #每秒钟物理设备的 I/O 传输总量 rtps #每秒钟从物理设备读入的数据总量 wtps #每秒钟向物理设备写入的数据总量 bread /s #每秒钟从物理设备读入的数据量,单位为 块/s bwrtn /s #每秒钟向物理设备写入的数据量,单位为 块/s |
四.查看内存信息
1 2 3 4 5 6 7 8 9 | sar -r kbmemfree #空余内存 kbmemused #使用内存 %memused #使用内存/总内存 kbbuffers buffer kbcached cache kbcommit #保证正常工作的内存,保证不会内存溢出 %commitkbcommit/(RAM+SWAP) |
五.利用gnuplot工具对sa文件进行画图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 1.安装软件gnuplot yum install gnuplot 2.对sa文件进行处理(取我们想得到的数据) LANG=C sar -f sa02 -q | grep - v "Average:" | awk 'NR>3 {print $0}' > /tmp/111 3.编辑脚本(重点) vim a.plt set xdata time #定义x轴数据格式 set timefmt '%H:%M:%S' #定义x轴单位格式 set xlabel 'Time' #定义显示标签 set format x '%H:%M:%S' set terminal png truecolor size 1600,900 set output "/var/www/html/1.png" set ylabel 'Load Avg' set yrange [0:] plot '/tmp/111' using 1:4 title '1min' with lines, '/tmp/111' using 1:5 title '5min' with lines, '/tmp/111' using 1:6 title '15min' with lines 4.执行脚本: gnuplot a.plt 5.查看结果: (1) ls /var/www/html/1 .png #在此目录下生成图片 (2)在浏览器中打开 #验证图片 |
六.使用 ksar 工具分析系统性能
1 2 3 4 5 6 7 8 9 | yum install java 下载包 wget export DISPLAY=192.168.193.1:0 sh run.sh |
Ttansfer/s: 每秒从物理磁盘 I/O 的次数 . 多个逻辑请求会被合并为一个 I/O 磁盘请求,一次传输的大小是不确定的 .
Read/s: 每秒的读请求数
Writer/s: 每秒的写请求数
Block bread/s: 每秒读磁盘的数据块数
Block wrtn/s: 每秒写磁盘的数据块数
https://www.ibm.com/developerworks/cn/linux/1303_caojh_ksar/
本文转自 a8757906 51CTO博客,原文链接:http://blog.51cto.com/nxyboy/1946877
转载地址:http://kkthl.baihongyu.com/