服务器基准测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 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
• 测试报告 • 附件下载
技术指标对比
技术指标 机型 CPU 总线 DELL PE R720 2U PC Server DELL PE R710 2U PC Server
Xeon E5-2620(6核,12线程,Xeon E5620(4核,8线程, 2.0GHz, L3 15MB) * 2 2.4GHz,L3 12MB) * 2 QPI 6.4GT/s QPI 5.86GT/s Intel 5520
测试工具 - sysbench
• fileio mode
seqwr seqrewr seqrd rndrd rndwr
顺序写 顺序重写 顺序读 随机读 随机写
rndrw
随机读写
• OLTP mode
nontrx
无事务
simple
complex
简单请求
复杂请求,有事务
测试工具 - iozone
• 安装
• 注意事项
– 持续压力过大无法反应服务器真实最优表现 – 持续压力时间过短亦无法反应服务器真实最优表现
性能基准测试 – 关注点
• CPU
– 简单素数计算、复杂浮点计算 – thread分配 – mutex性能
• 关注信息
– 计算能力 – 多线程并发 – mutex管理
常地,随着计算机工艺的发展,大部分应用下,CPU几乎不再成 为瓶颈。。一般只关注不同品牌厂商、不同工艺、不同主频下的不 同表现,其他情况下,无需太多关注。
测试工具 - tpcc mysql
• 安装
– – – – 下载 bzr branch lp:~percona-dev/perconatools/tpcc-mysql 直接make即可 create_table.sql - 创建数据表 add_fkey_idx.sql – 创建索引及外键
• 初始化加载数据
• 基准 - 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
• 通用基准
– 最大请求数:5,000,000 – 并发线程数:8 ~ 512
• 基准 - cpu
– cpu-max-prime=500,000
• 基准 - threads
– thread-yields=5,000,000 – thread-locks=8~512
测试工具 - sysbench
硬盘 网卡 电源
性能基准测试 – 关注点
• 何为基准
– 通过设计科学的测试方法、测试工具和测试系统,实现对一类测 试对象的某项性能指标进行定量的和可对比的测试(百度百科)
• 重点关注
– – – – CPU:计算,尤其是浮点运算 内存:带宽、吞吐 磁盘:IOPS、响应时间 数据库:OLTP、OLAP、响应时间
主板芯片组 Intel C600
内存
阵列卡
32G(4G * 8,ECC DDR3)
PERC H710,512MB, BBU(FW:12.10.1-0001), RAID 1+0 15K RPM 300G SAS * 8 Intel 4端口 1GbE 495瓦,冗电
32G(4G * 8,DDR3)
PERC H700,512MB, BBU(FW:12.10.1-0001), RAID 1+0 15K RPM 300G SAS * 6 Broadcom 4端口 1GbE 500瓦,冗电
可靠性测试
• 长期极限高压
– 持续数小时、数天、数周运行高负载计算、IO任务 – 考验服务器在高压下的性能波动情况 – 考验硬件设备在高压下的稳定性表现
• 模拟恶劣环境
– 供电不稳 – 通风冷却不好 – 湿气大、灰尘多
附件
• 整合sysbench测试脚本 [下载] • 整合iozone测试脚本 [下载] • 整合tpcc-mysql测试脚本 [下载] • 整合tpch测试脚本 [下载] • 汇总下载 [下载]
测试工具 - sysbench
• 安装
– ./configure --with-mysql-includes=path --with-mysqllibs=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
服务器基准测试
叶金荣 @yejinrong http://imysql.com 2012-11-30
写在最前面
• 非专业人士整理,有任何不正确的地方请指正 • 测试结果表格模板中的数据不准确,可以无视
概要
服务器是业务的基础单元,提供线上业务服务,存储 着重要数据,如何保证服务器高性能、高可靠运行非常关键。 对于服务器硬件一般关注几点:
• 关注信息
– – – – – – 不同内核、文件系统下的IOPS 不同阵列级别、条带场景下的IOPS 和内存结合时的IOPS性能拐点 达到同样IOPS情景下,IO利用率差别 跑满IO以及IO压力较轻情景下,各自IO利用率差别 sar -d:tps、svctm、%util
通常,磁盘物理IO是这个计算机体系里最容易成为瓶颈的环节, 也是最难优化的,因此最需要关注。随着SSD、Fusion-IO出现,磁 盘IOPS获得了巨大提升,和内存相比,差距在不断缩小。
测试工具 - tpcc mysql
• 基准 - OLTP
– – – – warehouse = 1000 max connection = 8 ~ 512 warm up = 120(s) run time/duration = 3600(s)
测试工具 – tpch
• 安装
– cp makefile.suite makefile – 编辑 makefile 文件
测试工具 – 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
– 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
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
• 运行 – 执行23个测试脚本,记录运行时长
测试工具 – tpch
• 基准 - tpch
– warehouse = 100 – 单进程 – tpch侧重OLAP模型,而MySQL并不适合OLAP,因此 warehouse设定较小
测试报告
• cpu - sysbench
测试报告
• memory - sysbench
– – – – 和老一代产品对比,改变或优化的地方 和同档次其他厂商产品对比,优劣之处 服务器可靠性、性能表现 设计特点、功耗
方案。
了解上述几点后,针对服务器的测试也就有了相应的
大纲
• • • • 技术指标对比 测试工具 性能基准测试 可靠性测试
– 模拟意外事件 – 长期极限高压 – 模拟恶劣环境
性能基准测试 – 关注点
• OLTP/OLAP
– TPS、QPS、 – 响应延迟/分析、吞吐效率
ห้องสมุดไป่ตู้
• 关注信息
– – – – – – 不同内核、文件系统下的TPS 不同阵列级别、条带场景下的TPS 和内存结合时的TPS性能拐点 达到同样TPS情景下,IO负载差别 TPS满负荷、低负荷情景下,各自IO利用率差别 sar -d:tps、svctm、%util
• 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
测试报告
• fileio - sysbench
测试报告
• fileio - iozone
测试报告
• oltp - sysbench
测试报告
• oltp - tpcc
测试报告
• olap – tpch
可靠性测试
• 模拟意外事件
– – – – – – – – – – – 断电(硬件冷重启) RESET(硬件热重启) 阵列卡掉线 磁盘掉线 REBOOT(系统重启) 正常关闭服务(kill -TERM) 异常关闭服务(kill -9) 磁盘空间满 删除文件 破坏性修改已打开文件 …
• 其他
– 网络环境对over lan请求测试影响大 – 每完成一轮测试后要净化环境 – 每轮测试一般至少持续1小时
测试工具
• sysbench
– Primarily for MySQL OLTP benchmarking,By MySQL AB – cpu、threads、mutex、memory、fileio、oltp
测试工具 - sysbench
• 基准 - memory – mode=complex – engine=innodb – oltp-table-size=100,000,000 • 基准 – OLTP – mode=complex – engine=innodb – oltp-table-size=100,000,000
性能基准测试 – 关注点
• 内存
– 总带宽 – 读写效率 – CPU对内存的管理分配
• 关注信息
– 读写效率
通常,内存越大越好,可有效减少磁盘物理IO。一般只关注不 同品牌厂商、不同工艺、不同主频下的不同表现,其他情况下,无 需太多关注。
性能基准测试 – 关注点
• 磁盘IOPS
– 读写效率 – 随机写性能
通常,数据总量超过物理内存后,OLTP的TPS性能和磁盘IOPS 成正比关系。因此,只有不断提高内存,减少物理IO,并且不断提 升IOPS性能。
性能基准测试 – 关键因素
• 硬件
– CPU、内存、阵列卡(BBU、CACHE、条带、读写策略)、硬盘
• 系统
– 内核参数、文件系统、IO调度器
• 文件
– 块大小、访问模式
• 测试报告 • 附件下载
技术指标对比
技术指标 机型 CPU 总线 DELL PE R720 2U PC Server DELL PE R710 2U PC Server
Xeon E5-2620(6核,12线程,Xeon E5620(4核,8线程, 2.0GHz, L3 15MB) * 2 2.4GHz,L3 12MB) * 2 QPI 6.4GT/s QPI 5.86GT/s Intel 5520
测试工具 - sysbench
• fileio mode
seqwr seqrewr seqrd rndrd rndwr
顺序写 顺序重写 顺序读 随机读 随机写
rndrw
随机读写
• OLTP mode
nontrx
无事务
simple
complex
简单请求
复杂请求,有事务
测试工具 - iozone
• 安装
• 注意事项
– 持续压力过大无法反应服务器真实最优表现 – 持续压力时间过短亦无法反应服务器真实最优表现
性能基准测试 – 关注点
• CPU
– 简单素数计算、复杂浮点计算 – thread分配 – mutex性能
• 关注信息
– 计算能力 – 多线程并发 – mutex管理
常地,随着计算机工艺的发展,大部分应用下,CPU几乎不再成 为瓶颈。。一般只关注不同品牌厂商、不同工艺、不同主频下的不 同表现,其他情况下,无需太多关注。
测试工具 - tpcc mysql
• 安装
– – – – 下载 bzr branch lp:~percona-dev/perconatools/tpcc-mysql 直接make即可 create_table.sql - 创建数据表 add_fkey_idx.sql – 创建索引及外键
• 初始化加载数据
• 基准 - 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
• 通用基准
– 最大请求数:5,000,000 – 并发线程数:8 ~ 512
• 基准 - cpu
– cpu-max-prime=500,000
• 基准 - threads
– thread-yields=5,000,000 – thread-locks=8~512
测试工具 - sysbench
硬盘 网卡 电源
性能基准测试 – 关注点
• 何为基准
– 通过设计科学的测试方法、测试工具和测试系统,实现对一类测 试对象的某项性能指标进行定量的和可对比的测试(百度百科)
• 重点关注
– – – – CPU:计算,尤其是浮点运算 内存:带宽、吞吐 磁盘:IOPS、响应时间 数据库:OLTP、OLAP、响应时间
主板芯片组 Intel C600
内存
阵列卡
32G(4G * 8,ECC DDR3)
PERC H710,512MB, BBU(FW:12.10.1-0001), RAID 1+0 15K RPM 300G SAS * 8 Intel 4端口 1GbE 495瓦,冗电
32G(4G * 8,DDR3)
PERC H700,512MB, BBU(FW:12.10.1-0001), RAID 1+0 15K RPM 300G SAS * 6 Broadcom 4端口 1GbE 500瓦,冗电
可靠性测试
• 长期极限高压
– 持续数小时、数天、数周运行高负载计算、IO任务 – 考验服务器在高压下的性能波动情况 – 考验硬件设备在高压下的稳定性表现
• 模拟恶劣环境
– 供电不稳 – 通风冷却不好 – 湿气大、灰尘多
附件
• 整合sysbench测试脚本 [下载] • 整合iozone测试脚本 [下载] • 整合tpcc-mysql测试脚本 [下载] • 整合tpch测试脚本 [下载] • 汇总下载 [下载]
测试工具 - sysbench
• 安装
– ./configure --with-mysql-includes=path --with-mysqllibs=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
服务器基准测试
叶金荣 @yejinrong http://imysql.com 2012-11-30
写在最前面
• 非专业人士整理,有任何不正确的地方请指正 • 测试结果表格模板中的数据不准确,可以无视
概要
服务器是业务的基础单元,提供线上业务服务,存储 着重要数据,如何保证服务器高性能、高可靠运行非常关键。 对于服务器硬件一般关注几点:
• 关注信息
– – – – – – 不同内核、文件系统下的IOPS 不同阵列级别、条带场景下的IOPS 和内存结合时的IOPS性能拐点 达到同样IOPS情景下,IO利用率差别 跑满IO以及IO压力较轻情景下,各自IO利用率差别 sar -d:tps、svctm、%util
通常,磁盘物理IO是这个计算机体系里最容易成为瓶颈的环节, 也是最难优化的,因此最需要关注。随着SSD、Fusion-IO出现,磁 盘IOPS获得了巨大提升,和内存相比,差距在不断缩小。
测试工具 - tpcc mysql
• 基准 - OLTP
– – – – warehouse = 1000 max connection = 8 ~ 512 warm up = 120(s) run time/duration = 3600(s)
测试工具 – tpch
• 安装
– cp makefile.suite makefile – 编辑 makefile 文件
测试工具 – 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
– 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
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
• 运行 – 执行23个测试脚本,记录运行时长
测试工具 – tpch
• 基准 - tpch
– warehouse = 100 – 单进程 – tpch侧重OLAP模型,而MySQL并不适合OLAP,因此 warehouse设定较小
测试报告
• cpu - sysbench
测试报告
• memory - sysbench
– – – – 和老一代产品对比,改变或优化的地方 和同档次其他厂商产品对比,优劣之处 服务器可靠性、性能表现 设计特点、功耗
方案。
了解上述几点后,针对服务器的测试也就有了相应的
大纲
• • • • 技术指标对比 测试工具 性能基准测试 可靠性测试
– 模拟意外事件 – 长期极限高压 – 模拟恶劣环境
性能基准测试 – 关注点
• OLTP/OLAP
– TPS、QPS、 – 响应延迟/分析、吞吐效率
ห้องสมุดไป่ตู้
• 关注信息
– – – – – – 不同内核、文件系统下的TPS 不同阵列级别、条带场景下的TPS 和内存结合时的TPS性能拐点 达到同样TPS情景下,IO负载差别 TPS满负荷、低负荷情景下,各自IO利用率差别 sar -d:tps、svctm、%util
• 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
测试报告
• fileio - sysbench
测试报告
• fileio - iozone
测试报告
• oltp - sysbench
测试报告
• oltp - tpcc
测试报告
• olap – tpch
可靠性测试
• 模拟意外事件
– – – – – – – – – – – 断电(硬件冷重启) RESET(硬件热重启) 阵列卡掉线 磁盘掉线 REBOOT(系统重启) 正常关闭服务(kill -TERM) 异常关闭服务(kill -9) 磁盘空间满 删除文件 破坏性修改已打开文件 …
• 其他
– 网络环境对over lan请求测试影响大 – 每完成一轮测试后要净化环境 – 每轮测试一般至少持续1小时
测试工具
• sysbench
– Primarily for MySQL OLTP benchmarking,By MySQL AB – cpu、threads、mutex、memory、fileio、oltp
测试工具 - sysbench
• 基准 - memory – mode=complex – engine=innodb – oltp-table-size=100,000,000 • 基准 – OLTP – mode=complex – engine=innodb – oltp-table-size=100,000,000
性能基准测试 – 关注点
• 内存
– 总带宽 – 读写效率 – CPU对内存的管理分配
• 关注信息
– 读写效率
通常,内存越大越好,可有效减少磁盘物理IO。一般只关注不 同品牌厂商、不同工艺、不同主频下的不同表现,其他情况下,无 需太多关注。
性能基准测试 – 关注点
• 磁盘IOPS
– 读写效率 – 随机写性能
通常,数据总量超过物理内存后,OLTP的TPS性能和磁盘IOPS 成正比关系。因此,只有不断提高内存,减少物理IO,并且不断提 升IOPS性能。
性能基准测试 – 关键因素
• 硬件
– CPU、内存、阵列卡(BBU、CACHE、条带、读写策略)、硬盘
• 系统
– 内核参数、文件系统、IO调度器
• 文件
– 块大小、访问模式