最新消息:

服务器基准测试

未分类 admin 3815浏览 0评论

PDF下载    服务器基准测试.pdf

附件
• 整合sysbench测试脚本[下载]sysbench-20121218
• 整合iozone测试脚本[下载]iozone-20121218
• 整合tpcc-mysql测试脚本[下载]tpcc-mysql-20121218
• 整合tpch测试脚本[下载]tpch-20121218
• 汇总下载[下载]benchmark_testing-20121218
• 测试结果表格模板[下载]测试报告文档模板-20121214

PC服务器阵列卡管理简易手册-叶金荣@CYOU-20121223

服务器基准测试
叶金荣
@yejinrong
http://imysql.com
2012-11-30
写在最前面
• 非专业人士整理,有任何不正确的地方请指正
• 测试结果表格模板中的数据不准确,可以无视
概要
服务器是业务的基础单元,提供线上业务服务,存储
着重要数据,如何保证服务器高性能、高可靠运行非常关键。

对于服务器硬件一般关注几点:
– 和老一代产品对比,改变或优化的地方
– 和同档次其他厂商产品对比,优劣之处
– 服务器可靠性、性能表现
– 设计特点、功耗

了解上述几点后,针对服务器的测试也就有了相应的
方案。
大纲
• 技术指标对比
• 测试工具
• 性能基准测试
• 可靠性测试
–模拟意外事件
–长期极限高压
–模拟恶劣环境
• 测试报告
• 附件下载
技术指标对比
技术指标 DELL PE R720 DELL PE R710
机型 2U PC Server 2U PC Server
CPU Xeon E5-2620(6核,12线程,
2.0GHz, L3 15MB) * 2
Xeon E5620(4核,8线程,
2.4GHz,L3 12MB) * 2
总线 QPI 6.4GT/s QPI 5.86GT/s
主板芯片组 Intel C600 Intel 5520
内存 32G(4G * 8,ECC DDR3) 32G(4G * 8,DDR3)
阵列卡 PERC H710,512MB,
BBU(FW:12.10.1-0001),
RAID 1+0
PERC H700,512MB,
BBU(FW:12.10.1-0001),
RAID 1+0
硬盘 15K RPM 300G SAS * 8 15K RPM 300G SAS * 6
网卡 Intel 4端口 1GbE Broadcom 4端口 1GbE
电源 495瓦,冗电 500瓦,冗电
性能基准测试 – 关注点
• 何为基准
– 通过设计科学的测试方法、测试工具和测试系统,实现对一类测
试对象的某项性能指标进行定量的和可对比的测试(百度百科)
• 重点关注
– CPU:计算,尤其是浮点运算
– 内存:带宽、吞吐
– 磁盘:IOPS、响应时间
– 数据库:OLTP、OLAP、响应时间
• 注意事项
– 持续压力过大无法反应服务器真实最优表现
– 持续压力时间过短亦无法反应服务器真实最优表现
性能基准测试 – 关注点
• CPU
– 简单素数计算、复杂浮点计算
– thread分配
– mutex性能

• 关注信息
– 计算能力
– 多线程并发
– mutex管理

常地,随着计算机工艺的发展,大部分应用下,CPU几乎不再成
为瓶颈。。一般只关注不同品牌厂商、不同工艺、不同主频下的不
同表现,其他情况下,无需太多关注。
性能基准测试 – 关注点
• 内存
– 总带宽
– 读写效率
– CPU对内存的管理分配

• 关注信息
– 读写效率

通常,内存越大越好,可有效减少磁盘物理IO。一般只关注不
同品牌厂商、不同工艺、不同主频下的不同表现,其他情况下,无
需太多关注。
性能基准测试 – 关注点
• 磁盘IOPS
– 读写效率
– 随机写性能

• 关注信息
– 不同内核、文件系统下的IOPS
– 不同阵列级别、条带场景下的IOPS
– 和内存结合时的IOPS性能拐点
– 达到同样IOPS情景下,IO利用率差别
– 跑满IO以及IO压力较轻情景下,各自IO利用率差别
– sar -d:tps、svctm、%util

通常,磁盘物理IO是这个计算机体系里最容易成为瓶颈的环节,
也是最难优化的,因此最需要关注。随着SSD、Fusion-IO出现,磁
盘IOPS获得了巨大提升,和内存相比,差距在不断缩小。
性能基准测试 – 关注点
• OLTP/OLAP
– TPS、QPS、
– 响应延迟/分析、吞吐效率

• 关注信息
– 不同内核、文件系统下的TPS
– 不同阵列级别、条带场景下的TPS
– 和内存结合时的TPS性能拐点
– 达到同样TPS情景下,IO负载差别
– TPS满负荷、低负荷情景下,各自IO利用率差别
– sar -d:tps、svctm、%util

通常,数据总量超过物理内存后,OLTP的TPS性能和磁盘IOPS
成正比关系。因此,只有不断提高内存,减少物理IO,并且不断提
升IOPS性能。
性能基准测试 – 关键因素
• 硬件
– CPU、内存、阵列卡(BBU、CACHE、条带、读写策略)、硬盘
• 系统
– 内核参数、文件系统、IO调度器
• 文件
– 块大小、访问模式
• 其他
– 网络环境对over lan请求测试影响大
– 每完成一轮测试后要净化环境
– 每轮测试一般至少持续1小时
测试工具
• sysbench
– Primarily for MySQL OLTP benchmarking,By MySQL AB
– cpu、threads、mutex、memory、fileio、oltp
• iozone
– filesystem benchmark tool
• tpcc-mysql
– Primarily for MySQL OLTP benchmarking,By Percona
• tpch
– Primarily for OLAP benchmarking
• 其他
– OLTP:mysqlslap、sql-bench
– IOPS:bonnie、orion、 iometer
– 综合:stress
测试工具 – sysbench
• 安装
– ./configure –with-mysql-includes=path –with-mysql-libs=path && make && make install

• 支持其他数据库
– with-pgsql
– with-oracle

• 运行
– sysbench –test=[mode] [other_options] prepare
– sysbench –test=[mode] [other_options] run
– sysbench –test=[mode] [other_options] cleanup
测试工具 – sysbench
• 通用基准
– 最大请求数:5,000,000
– 并发线程数:8 ~ 512

• 基准 – cpu
– cpu-max-prime=500,000

• 基准 – threads
– thread-yields=5,000,000
– thread-locks=8~512
测试工具 – sysbench
• 基准 – mutex
– mutex-num=5,000,000
– mutex-loops=100,000
– mutex-locks=100,000

• 基准 – fileio
– file-num=100
– file-total-size=物理内存 ~ 物理内存的8倍
– mode=seqwr/seqrewr/seqrd/rndrd/rndwr/rndrw

测试工具 – sysbench
• 基准 – memory
– mode=complex
– engine=innodb
– oltp-table-size=100,000,000

• 基准 – OLTP
– mode=complex
– engine=innodb
– oltp-table-size=100,000,000
测试工具 – sysbench
• fileio mode

• OLTP mode

seqwr 顺序写
seqrewr 顺序重写
seqrd 顺序读
rndrd 随机读
rndwr 随机写
rndrw 随机读写
nontrx 无事务
simple 简单请求
complex 复杂请求,有事务
测试工具 – iozone
• 安装
– make linux-AMD64

• 运行
– iozone -R -E -s 3200M -l 10 -r 4k
测试工具 – iozone
• 基准 – fileio
– file-block-size=4k 8k 16k 32k 64k
– file-num=1 2 4 8 16
– file-size=1G 2G 4G 8G 16G
– mode=seqwr/seqrewr/seqrd/rndrd/rndwr/rndrw
测试工具 – tpcc mysql
• 安装
– 下载 bzr branch lp:~percona-dev/perconatools/tpcc-mysql
– 直接make即可
– create_table.sql – 创建数据表
– add_fkey_idx.sql – 创建索引及外键

• 初始化加载数据
– tpcc_load db_host db_name db_user db_passwd
db_warehouse_num
– 例如:tpcc_load localhost tpcc1000 user passwd 1000

• 运行OLTP测试
– ./tpcc_start -h localhost -d tpcc1000 -u root -p ‘ xx’ -w 1000
-c 32 -r 120 -l 3600 -f ./tpcc_mysql_20120314
测试工具 – tpcc mysql
• 基准 – OLTP
– warehouse = 1000
– max connection = 8 ~ 512
– warm up = 120(s)
– run time/duration = 3600(s)
测试工具 – tpch
• 安装
– cp makefile.suite makefile
– 编辑 makefile 文件
CC = gcc
DATABASE = MYSQL
MACHINE = LINUX
WORKLOAD = TPCH
– 编辑tpcd.h,增加宏定义
#ifdef MYSQL
#define GEN_QUERY_PLAN “”
#define START_TRAN “START TRANSACTION”
#define END_TRAN “COMMIT”
#define SET_OUTPUT “”
#define SET_ROWCOUNT “limit %d;n”
#define SET_DBASE “use %s;n”
#endif
测试工具 – tpch
• 初始化
– 初始化测试表数据: ./dbgen -s 100
– 生成测试数据:mysql -f tpch < dss.ddl
– 默认的初始化模式无主键、无索引
– LOAD DATA INFILE导入数据
– 注意max_binlog_cache_size限制,需要切分文件导入
– 执行修改主键/外键/额外索引脚本
– 数据表名全部改成小写,适应TPC-H测试SQL脚本
– 运行qgen生成测试SQL
– 修改部分SQL语句
– 拆分完成测试SQL脚本成23个测试SQL

• 运行
– 执行23个测试脚本,记录运行时长
测试工具 – tpch
• 基准 – tpch
– warehouse = 100
– 单进程
– tpch侧重OLAP模型,而MySQL并不适合OLAP,因此
warehouse设定较小
测试报告
• cpu – sysbench
测试报告
• memory – sysbench
测试报告
• fileio – sysbench
测试报告
• fileio – iozone
测试报告
• oltp – sysbench
测试报告
• oltp – tpcc
测试报告
• olap – tpch
可靠性测试
• 模拟意外事件
– 断电(硬件冷重启)
– RESET(硬件热重启)
– 阵列卡掉线
– 磁盘掉线
– REBOOT(系统重启)
– 正常关闭服务(kill -TERM)
– 异常关闭服务(kill -9)
– 磁盘空间满
– 删除文件
– 破坏性修改已打开文件
– …

可靠性测试
• 长期极限高压
– 持续数小时、数天、数周运行高负载计算、IO任务
– 考验服务器在高压下的性能波动情况
– 考验硬件设备在高压下的稳定性表现

• 模拟恶劣环境
– 供电不稳
– 通风冷却不好
– 湿气大、灰尘多
附件
• 整合sysbench测试脚本[下载]
• 整合iozone测试脚本[下载]
• 整合tpcc-mysql测试脚本[下载]
• 整合tpch测试脚本[下载]
• 汇总下载[下载]
• 测试结果表格模板[下载]

转载请注明:爱开源 » 服务器基准测试

您必须 登录 才能发表评论!