Linux服务器性能数据收集
Linux中的top,free等命令不能完全满足我们性能数据收集的要求,我们需要一个更加强大的工具来收集性能数据。
经过考察和对比,发现 Sysstat是一个非常强大的工具,因此下载了试了下,效果不错。Sysstat是一个工具集,
包括sar、pidstat、iostat、mpstat、sadf、sadc。 其中sar是其中最强大,也是最能符合我们测试要求的工具,
同时pidstat也是非常有用的东东,因此本文结合性能测试重点介绍这两个工具。
Sysstat的安装
从http://pagesperso-orange.fr/sebastien.godard/download.html下载最新版本,解压, 安装
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-9.1.7.tar.gz
tar zxvf sysstat - 8.1 . 2 .tar.gz
cd sysstat - 8.1 . 2
. / configure
make
su
<enter root password >
make install
监视某个进程
通过ps命令找到相应进程的PID:
ps - e
使用pidstat命令监视进程 pidstat 2 5 // 每隔2秒,显示5次,所有活动进程的CPU 使用情况
pidstat - p 3132 2 5 // 每隔2秒,显示5次,PID为1643的进程的CPU使用情况显示
pidstat - p 3132 2 5 - r // 每隔2秒,显示5次,PID为1643的进程的内存使用情况显示
pidstat命令没有保存性能数据的功能。
查看性能数据
sar是最强大的了,通过sar几乎可以监视所有的性能数据,同时,sar还支持将性能数据保存起来。
sar 2 5 // 每隔2秒,显示5次,CPU使用的情况
sar - r 2 5 // 每隔2秒,显示5次,内存使用的情况
sar - n DEV 2 5 // 每隔2秒,显示5次,网络吞吐量情况
sar 1 10 > data.txt // 每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。
sar 1 0 - e 15 : 00 : 00 > data.txt// 每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。
(-e 参数表示结束时间,注意时间格式: 必须为 hh:mm:ss格式)
sar 1 0 - r - e 15 : 00 : 00 > data.txt // 每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
sar 1 0 - n DEV - e 15 : 00 : 00 > data.txt // 每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。
保存为二进制文件
由于保存的二进制文件只有sar通过-f参数才能打开,不利于我们分 析和统计数据,因此不推荐使用这个方法。
保存二进制文件的参数是-o,如:
sar 1 5 - r - o data
// 每隔1秒,写入5次,将内存使用的数据写入二进制文件data中。
sar - f data
// 查看data文件
Sar能工作,/proc目录必须被mount上来
|
|
|
CPU |
-u -P |
|
内存 |
-r -R |
|
Block device情况 |
-d |
|
I/O |
-b |
|
页交换情况 |
-B |
|
进程 |
-c |
|
网络 |
-n |
|
机器负载 |
-q |
|
Swap |
-W |
|
|
|
|
全部的信息 |
-A |
|
CPU使用率 – 缺省 Report CPU utilization |
-u |
%user: Percentage of CPU utilization that occurred while exe cuting at the user level (application). %nice:at the user level with nice priority %system:at the system level (kernel). %iowait:Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request %idle: Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request |
CPU情况 |
-P cpu | ALL |
统计单个或多个cpu的情况 ALL:再加上整体统计情况 -u 和–I SUM 2个参数跟着-P有意义。 |
|
|
|
内存使用率 Report memory and swap space utilization statistics |
-r |
所有的数量单位: kbytes Kbmemfree、Kbmemused、%memused: 内存空闲、使用了,使用的% Kbbuffers:内核当作buffer使用的内存 Kbcached::内核当作cache data使用的内存 Kbswpfree、Kbswpused、%swpused Swap使用的3个值 Kbswpcad:缓存的swap空间。这个意思是:内存被swap out,又立即swap back in,但是还存在swap中,(如果memory需要,memory不需要再次swap out了,它在swap已经存在,节省了I/O)
|
内存使用统计 Report memory statistics |
-R |
frmpg/s:系统释放的内存页数量,如果是负数表示被系统分配的数量。内存页时4k或8k和系统架构有关。 bufpg/s:系统用作buffer的增量内存页 campg/s:系统用作cache的增量内存页 |
|
|
|
I/O和传输统计 I/O and tranfer statistics |
-b 只在Kernal2.5以前的版本中才有效 |
Tps:物理磁盘每秒总的传输量。多个逻辑的请求可能被合并成一个单独的磁盘请求。 Rtps:读的请求 Wtps:写的请求 Bread/s:每秒从磁盘读的块数 Wread/s:每秒写的块数 |
页的统计消息 Paging statistics |
-B |
Pgpgin/s: 每秒磁盘page in的数量(kbytes) Pgpgout/s:每秒磁盘page out的量(kbytes) Fault/s:系统每秒page faults(major+minor)的数量(2.5以上kernal) majflt/s:系统每秒产生的major faults数量(2.5以上kernel) |
进程 Process creation |
-c |
Proc/s:每秒产生的进程数量 |
Block device性能 |
-d |
2.4或以上版本有 Devm-n: m:device的major number n: device的 minor number(kernal 2.5) tps: 设备的每秒传输量 rd_sec/s:设备的读的扇区数量(512k/sector) wr_sec/s : 设备写的扇区数量(512k/sector) |
采用文件 |
-f : 从。。读 -o: 写入。。。 |
从文件中获取数据(由-o产生的文件) 缺省值是current daily data file(/var/log/sa/sadd) -f排斥-o参数 |
改变间隔时间 |
-i interval |
单位是秒 |
网络情况 |
-n -n DEV | EDEV | SOCK | FULL
|
DEV参数: Network devices 的统计信息被报告 IFACE:设备名字 rxpck/s:每秒收到的包(package) txpck/s:每秒传输的包 rxbyt/s:每秒收到的字节 txbyt/s:每秒传输的字节 rxcmp/s:每秒收到的压缩包(如cslip..) txcmp/s: rxmcst/s: 每秒收到的广播包 |
EDEV: 错误的统计信息 rxerr/s, txerr/s coll/s: 传输过程中遇到的冲突包 rxdrop/s, txdrop/s:由于缺少Linux缓存区,被丢弃的接收/传输包 txcarr/s: 传输包时候遇到的carrier-errors数量 rxfram/s:接收frame对列错误数量 rxfifo/s:接收FIFO overrun错误数量 txfifo/s:传输的FIFO overrun错误数量
|
||
SOCK: 使用中的socket统计 Totsck: 使用中的socket Tcpsck: tcp socket Udpsck: Rawsck: ip-frag: Number of IP fragments currently in use. |
||
机器负载 Report queue length and load averages |
-q |
runq-sz:运行的队列长度(number of processes waiting for run time) plist-sz: (Number of processes in the process list) ldavg-1、ldavg-5、ldavg-15: 1、5、15分钟平均负载 |
|
|
|
文件 Report status of inode, file and other kernel tables |
-v |
Dentunusd:Number of unused cache entries in the directory cache inode-sz:Number of used file handles super-sz、%super-sz: Number of super block handlers allocated by the kerne。(regard to the maximum number of super block handlers that Linux can allocate) dquot-sz、%dquot-sz:Number of allocated disk quota entries (regard to the maximum number of cached disk quota entries that can be allocated) rtsig-sz、%rtsig-sz:Number of queued RT signals.(regard to the maxi mum number of RT signals that can be queued) |
Report system switching activity |
-w |
cswch/s:Total number of context switches per second. |
Swap: Report swapping statistics |
-W |
pswpin/s: Total number of swap pages the system brought in per second pswpout/s:Total number of swap pages the system brought out per second |
|
|
|
Process相关 |
-x -X |
|
|
|
|
|
|
|
改变格式 |
-h -H |
|
设定时间
|
-e hh:mm:ss:结束时间 -s 开始时间 |
设置报告的截止时间。缺省的截止时间是18:00:00, 给出的时间必须24小时制。 这个参数只有当数据从文件中读写时候才有效(-f / -o 参数)。 如果同时使用-h参数,给出的时间是UTC时间 |
- 使用sar收集Linux服务器性能数据
- Linux服务器性能数据收集 - Sysstat介绍
- Linux服务器性能数据收集
- Linux服务器性能数据收集【sar、pidstat、iostat、mpstat、sadf、sadc】
- Linux服务器性能数据收集- Sysstat介绍
- Linux服务器性能数据收集—Sysstat介绍。
- Linux服务器性能数据收集 - Sysstat介绍
- 准备为公司门店设计webservice传送数据,想压缩提高性能,收集文章如下
- 初探SQL Server 2008的性能数据收集器
- SQL Server 2008性能数据收集(Data Collector)的一些扩展话题
- 性能计数器数据收集服务
- 利用TypePerf.exe命令行工具来收集性能数据(1)
- HP EVA存储性能数据收集
- 收集windows系统性能统计数据
- 使用statspack收集11g active dataguard性能数据
- 收集并存储性能监控器数据到SQL Server表
- 编写JAVA程序收集Tomcat性能数据
- 通过日志监控并收集 Java 应用程序性能数据
- <摘录>使用amplxe-cl 命令行进行性能数据收集和分析