文章目录
  1. 1. 前言
  2. 2. 更新记录
  3. 3. CPU
    1. 3.1. 确认CPU型号
    2. 3.2. Super PI
  4. 4. Disk
    1. 4.1. 清空缓存
    2. 4.2. 测试读性能
    3. 4.3. 测试写入性能
    4. 4.4. 参考数据
  5. 5. nmon

前言

Linux性能测试、监控、优化是一个持续的过程,上图为LinuxCon上Brendan D. Gregg分享的Linux benchmarking tools示意图,涵盖面十分广泛。我们可以通过成熟的监控方案如BMC Patrol,Zabbix来捕获大部分信息,在实际工作中我们会经常关注I/O性能,一般可以使用dd/ORION/IOzone做简单的测试,如果需要获取更加全面详细的报告可以使用nmon,本文将主要介绍Super PI /dd/nmon三种简单而有效的监测方法。

CPU | Memory | I/O | Network 一个都不能少


更新记录

2015年03月06日 - 初稿

阅读原文 - https://wsgzao.github.io/post/linux-performance/

扩展阅读


CPU

确认CPU型号

1
2
3
cat /proc/cpuinfo |grep "model name"|uniq|cut -f2 -d:
Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz

Super PI

计算时间越短越好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
time echo "scale=500;4*a(1)"|bc -l -q
3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
22317253594081284811174502841027019385211055596446229489549303819644\
28810975665933446128475648233786783165271201909145648566923460348610\
45432664821339360726024914127372458700660631558817488152092096282925\
40917153643678925903600113305305488204665213841469519415116094330572\
70365759591953092186117381932611793105118548074462379962749567351885\
75272489122793818301194912
real 0m0.081s
user 0m0.076s
sys 0m0.000s

Disk

清空缓存

每次做读写测试前建议先清空缓存

sync; echo 3 > /proc/sys/vm/drop_caches

测试读性能

选择测试磁盘,建议做2-3组取平均值

hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads:  1074 MB in  3.00 seconds = 357.92 MB/sec

测试写入性能

根据业务选择不同的BlockSize大小按需多次测试取平均值

time dd if=/dev/zero of=/tmp/speed bs=1M count=2K conv=fsync;rm /tmp/speed

参考数据

以10,000 rpm 300 GB SAS硬盘为例,机型为IBM x3650 M4,Raid参数如下

1.Read Policy:Ahead (控制器缓存读策略:预读)
2.Write Policy:Write Back with BBU(控制器缓存写策略:有电池备份时回写)
3.IO Policy: Direct(IO策略:直接)
4.Drive Cache:disable (硬盘缓存:禁用)

Raid Read(MB) Write(MB)
Raid 1 170 130
Raid 5 350 250
Raid 10 300 215

nmon

建议根据实际需求配置间隔时间和次数,配合nmon Analyser可以显示直观的图表数据

#author: OX
#function: monitor system information
#time:2015/03/06
#crontab -e
#0 0 * * * sh /tmp/nmon/nmon.sh >/dev/null 2>&1
npath=/tmp/nmon/log
# monitoring per 120 senonds
#nmon -s 120 -c 720 -f -m $npath
# monitoring per 300 senonds
/tmp/nmon/nmon_x86_sles11 -s 300 -c 288 -f -m $npath
#delete file before 365 day
#find /tmp -name *.nmon  -mtime +365 -exec rm {} \;
文章目录
  1. 1. 前言
  2. 2. 更新记录
  3. 3. CPU
    1. 3.1. 确认CPU型号
    2. 3.2. Super PI
  4. 4. Disk
    1. 4.1. 清空缓存
    2. 4.2. 测试读性能
    3. 4.3. 测试写入性能
    4. 4.4. 参考数据
  5. 5. nmon