ecs 实例上自建oracle性能评测

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 1、ecs的配置 CPU:4核 内存:16G 磁盘:SSD 50GB 网络:经典网络,10Mbps 2、sysbench安装 版本:0.5 测试方法:OLTP、LUA root用户安装 export ORACLE_HOME=/u01/app/oracle/product/11.
1 前言 每种测试工具都有其优点和缺点,本次测试将采用两种工具进行测试数据库部分,借助软件本身提供的方法进行测试,没有对特殊的业务进行逻辑测试。本次测试并不太关注业务表现的等待和性能问题,重点在于数据库运行在云主机所能承受的压力,以及cpu、内存、磁盘在压力期间的性能数据,业务测试返回的TPS、IOPS、RT等数据,以求对oracle运行在云主机提供参考。 2 测试工具 1、Sysbench,是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。Sysbench对于绑定变量的支持存在bug,但它的脚本都是lua语言写的,完全可以自行设计和定制业务逻辑进行测试。 安装方法见《附录9.1》 2、swingbench,是Oracle UK的一个员工在一个被抛弃的项目的基础上开发的。Swingbench可 以执行4种不同的标准测试(benchmark),拥有三种前端展示方式。Swingbench的开发目的主要是用来展示RAC的负载和测试,但也可用于单实例环境。 安装方法见《附录9.2》 两种方法均在测试机上作为客户端对数据库进行压力测试。 3 测试环境 测试阿里ECS+SSD+ORACLE的运行情况。 服务器端配置 2e10dc0edd19fc0e79627208c02bb7bea886ddb8

4 测试方法 Oracle redolog 建议和数据盘分开,本次测试将测试redolog和数据分开存放为主,并测试redolog和数据在同一磁盘的一组数据作为对比。因为表的数量少并发数越大,造成竞争和冲突率就大幅度上升,测试有随机性,因此数据并不能准确反映应用的具体情况,具体应用上线前建议根据业务逻辑设计LUA脚本或者Swingbench测试程序。 1、Sysbench Sysbench数据量初始化10张表,每张表100万条数据,每次测试最大访问条目是1000万,随机进行OLTP的读写更新和删除,并发数据为50、100、200、300、400、500并发值。 2、Swingbench Swingbench也是通过脚本建立测试数据库,相比Sysbench比较全面,从表空间、schema soe是一套订单业务逻辑,同时可以设置并发连接的登陆属性—长连接还是短连接。同样,也进行50、100、200、300、400、500并发值测试。 5 Sysbench进行OS基准测试 1、 Cpu,通过计算最大素数的方式查看cpu的计算速度 /home/oracle/sysbench-0.5/sysbench/sysbench_ora --test=cpu --cpu-max-prime=20000 run total time: 36.4537s 2、 内存,测试内存的吞吐率 /home/oracle/sysbench-0.5/sysbench/sysbench --test=memory --num-threads=16 --memory-block-size=8192 --memory-total-size=1G run ---------------------------------------------- 1024.00 MB transferred (2762.18 MB/sec) 3、 磁盘io,测试iops和吞吐率。 /u01 数据盘 /home/oracle/sysbench-0.5/sysbench/sysbench --test=fileio --num-threads=16 --init-rng=on --file-total-size=5G --file-test-mode=rndrw run --------------------------------------------------------------------- 5368709120 bytes written in 63.74 seconds (80.33 MB/sec). Read 93.734Mb Written 62.516Mb Total transferred 156.25Mb (31.643Mb/sec) /u02 redolog /home/oracle/sysbench-0.5/sysbench/sysbench --test=fileio --num-threads=16 --init-rng=on --file-total-size=5G --file-test-mode=rndrw run ------------------------------------------------------------------- 5368709120 bytes written in 96.23 seconds (53.20 MB/sec). Read 93.812Mb Written 62.438Mb Total transferred 156.25Mb (24.582Mb/sec) 1573.25 Requests/sec executed 6 测试一:Sysbench 对Oracle进行压测 6.1 准备数据 ./sysbench_ora --test=/home/oracle/sysbench/tests/db/lua/oltp.lua \ --db-driver=oracle \ --oltp-table-name=sysbench \ --oltp-table-size=1000000 \ <<<每张表规格100万行 --oltp-tables-count=10 \ <<<共10张表 --oracle-db=oradb \ <<<这是TNS的配置,SLB负载的TNS是oradbslb --oracle-user=sysbench \ --oracle-password=XXXX \ --max-time=900 \ <<<测试时长 --max-requests=10000000 \<<<最大访问1000万行 --num-threads=40 \ --report-interval=10 \ prepare 6.2 压测 --压测语法 ./sysbench_ora --test=/home/oracle/sysbench/tests/db/lua/oltp.lua \ --db-driver=oracle \ --oltp-table-name=sysbench \ --oltp-table-size=1000000 \ --oltp-tables-count=10 \ --oracle-db=oradb \ --oracle-user=sysbench \ --oracle-password=XXXX \ --max-time=900 \ --max-requests=10000000 \ --num-threads=40 \ --report-interval=10 \ run --/50并发 transactions: 204610 (227.32 per sec.) read/write requests: 3682980 (4091.84 per sec.) response time: min: 24.70ms avg: 175.88ms max: 1070.85ms approx. 95 percentile: 256.37ms --/100并发 transactions: 800926 (222.47 per sec.) read/write requests: 14416668 (4004.41 per sec.) response time: min: 20.03ms avg: 359.54ms max: 1766.33ms approx. 95 percentile: 543.96ms --/200并发 transactions: 115286 (192.01 per sec.) read/write requests: 2075148 (3456.25 per sec.) response time: min: 84.64ms avg: 831.56ms max: 2552.42ms approx. 95 percentile: 1261.25ms --/300并发 transactions: 121441 (202.12 per sec.) read/write requests: 2185938 (3638.24 per sec.) response time: min: 19.48ms avg: 1573.34ms max: 5466.92ms approx. 95 percentile: 2504.40ms --/400并发 transactions: 121441 (207.12 per sec.) read/write requests: 2185938 (3638.24 per sec.) response time: min: 19.48ms avg: 1573.34ms max: 5466.92ms approx. 95 percentile: 2810.40ms --/500并发 由于oltp.lua脚本表少并发太多对象争用太明显,测试执行失败,但我们看到iops、tps数值稳定,rt跟线程多少有关。 7 测试二:Swingbench对Oracle进行压力测试 Swingbench 通过建立soe用户,模拟产品、订单业务,可以自定义数据量大小,本次测试生成10G左右的数据文件。 --/并发50 cdd35a77311ae0bb330ab263315265ca95b4a79b
fb8964c70d11f4e5a09796276b37bba607eb7348
6f695ad96fecd2b834430fd42ec6076918784db6
--/并发100 897cc5a54fb2fb8ba98100fcb04807e92d8c5142
29d31f5265727b88eac1f218863e6c23e2bb650c
be379a2daf69ccddf87f2552e115696043e22248 此时产生了大量的log file sync和log file switch (checkpoint incomplete),redolog现在是6组256m,由于commit频繁,调整为512M,9组。 --/并发200 30b4f151627d5303592fb865bfe69244797ae666
96b015b900e047a42a0429920f78fdc09b52d9c9
c00b3c9d1adf2ec2a6dcb1f7f16bc61f3942c0cf 此时测试一组redolog和数据在同一磁盘的情形 e9bee5ebcb6b2048fac72ea2ed51decf0787bd4c
6fd8c491f13cdb4cf27786804cb6a0f5e779bf1e 可以看到cpu的io wait 比redo分开存放时明显上升。 现在修改一下swingbench的读写权重,提高读的比例,并发依然是200 f12973b02eb922c10ede80a69916f5a579581b83
d913107b02f01a463bcd650f810ef7e4534677a3
dfeadc2f20a9041e9bacc21e4c95d17b698cb139
磁盘io达到27M/s,TPS达到1839 --/并发300 f12973b02eb922c10ede80a69916f5a579581b83
6c6750b5e739fc2b5869452f4f000b6ee5fd0c9e --/并发400 50cdf8ceb01f04f6ee1ef6688c2bcf384c20382e --/并发500 f6f3e2bc4981874545bd990d94dfb970ab235d098 评测结果 8.1 Sysbench的测试总结 Sysbench:iops ce6e56994b7e9fa8a770ee0e0adfd5aa8239f3b3 Swingbench的测试效果要比Sysbench的好,Sysbench适合自定义业务逻辑和编辑lua脚本。但Sysbench的测试结果也有一些参考: 1、 Redolog和和数据分开存放,从磁盘io的截图可以看到reodlog所在的磁盘(dev252-16/dev/vdb1)TPS非常高,放在数据盘势必互相影响。 2、 对于批量小io的oltp业务,业务的频繁访问特性必须从业务逻辑设计上保证其性能,其次才是主机性能、数据库性能方面的优化配合。 8.2 Swingbench的测试总结 Swingbench: 7b2f642f85545c943919c963c442e528923f6091 同时收集了awr报告的数据 并发 逻辑读/秒 2f50da50746cc188bbdc8c27f3554bb2bb2e6303 1、 iops在25000左右对于读写混合模式是一个理想值,只读时能达到50000以上。 2、 cpu成为oltp环境的瓶颈,在400并发时性能严重不足,这时应考虑添加cpu计算能力 3、 高并发环境redo和数据文件的IO都比较大,redolog同步和切换又影响数据的访问和变化,因此redolog和数据文件分开存放,而且redolod更需要快速读写的磁盘。通过swingbench的数据可以看到,磁盘IO压力全集中在一个磁盘,而且IOPS明显上升,TPS下降,响应时间增加,cpu等待也增高。 8.3 评测总结 结合以上的数据库性能表现以及云上Oracle压测数据来看,云主机的性能根据业务场景进行选择,中配可以支持300以内的并发,如图:指标折线图,随着并发的增长,iops、cpu、tps会达到一个峰值,此时就是提升性能的时候。 redolog和数据库盘建议分开,同时配置HA方案,可选ADG(Active Dataguard 实时同步并可以支持查询)通过业务指定部分查询到Dataguard的只读节点,分散压力。 建议进行实际业务模拟测试,以观察业务在云上的表现,对ECS的选型和oracle架构进行评估。 参考《附录 9.3 ECS官方性能指标》 指标折线图 b82f4c6261c687a1d4146527c225699f802bc1389 附录 9.1 Sysbench的安装 版本:0.5 测试方法:OLTP、LUA root用户安 $export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 $./autogen.sh $./configure --with-oracle --without-mysql --without-drizzle $make ORA_LIBS="-L$ORACLE_HOME/lib -lclntsh" ORA_CFLAGS="-I$ORACLE_HOME/rdbms/demo -I$ORACLE_HOME/rdbms/public" $make install 9.2 Swingbench的安装 其安装介质下载地址: http://www.dominicgiles.com/swingbench.html 安装方式: 1. 确保服务器上安装配置了JDK1.6以上 2. 下载swingbench,解压即可 9.3 ECS官方性能指标 Cpu系列 I 高配是16核64G,系列II 可以达到32核 128G。 SSD云盘4KB I/O块大小时随机读写IOPS高达12000、512KB I/O块大小时顺序读写吞吐量高达300MB。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
存储 编解码 缓存
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
在阿里云服务器的购买过程中,云服务器实例规格是很多用户最难选择的一个选项,因为阿里云有着多达几十种不同的实例规格,为此,阿里云官方在云服务器购买页面新推出了一个场景化选型推荐,用户可通过自己的上云场景结合场景化选型里面的业务场景和细分场景来选择适合自己的阿里云服务器实例规格,在很大程度上解决了新手用户在选择阿里云服务器实例规格上的困局。
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
|
2天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
6天前
|
存储 编解码 网络协议
阿里云服务器通用型g8y实例与通用型g7收费标准与性能区别参考
阿里云服务器通用型g7、通用型g8y实例都是阿里云目前活动中可选的通用型实例规格,它们同属于通用型实例,但是他们之间是有一些区别的。通用型g7属于第七代云服务器,而通用型g8y属于倚天云服务器,是最新一代的云服务器实例。本文为大家介绍一下它们在收费标准及性能方面的一些区别,以供参考。
阿里云服务器通用型g8y实例与通用型g7收费标准与性能区别参考
|
6天前
|
存储 机器学习/深度学习 安全
阿里云服务器计算型c8i和通用型g8i实例性能、收费标准和适用场景参考
阿里云不断推出高性能云服务器实例以满足不同用户的需求。其中,计算型c8i与通用型g8i实例凭借卓越的性能和灵活的配置,成为企业级用户的热门选择。计算型c8i和通用型g8i实例采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固,单台实例最高支持100万IOPS,CPU采用Intel®Xeon®Emerald Rapids或者Intel®Xeon®Sapphire Rapids,主频不低于2.7 GHz,全核睿频3.2GHz。本文将深入探讨这两款实例的性能特点、最新收费标准以及适用场景和活动价格情况,以供大家了解和选择。
阿里云服务器计算型c8i和通用型g8i实例性能、收费标准和适用场景参考
|
8天前
|
存储 缓存 安全
阿里云服务器经济型、通用算力型、计算型、通用型、内存型实例区别及选择参考
阿里云服务器的实例规格有经济型、通用型、计算型、内存型、通用算力型、大数据型、本地SSD型、高主频型、突发型、共享型等不同种类的实例规格,在阿里云的活动中,主要以经济型、通用算力型、计算型、通用型、内存型实例为主,相同配置的云服务器往往有多个不同的实例可选,而且价格差别也比较大,这会是因为不同实例规格的由于采用的处理器不同,底层架构也有所不同(例如X86 计算架构与Arm 计算架构),因此不同实例的云服务器其性能与适用场景是有所不同。本文为大家详细介绍阿里云的经济型、通用算力型、计算型、通用型和内存型实例的性能特点及适用场景,以供大家选择参考。
阿里云服务器经济型、通用算力型、计算型、通用型、内存型实例区别及选择参考
|
6天前
|
弹性计算 JSON 运维
阿里云ECS实例运维属性-如何控制实例的宕机表现
介绍如何通过运维属性指定阿里云ECS的宕机运维表现等
|
11天前
|
弹性计算 固态存储 NoSQL
阿里云服务器系统盘和数据盘ESSD Entry、ESSD AutoPL和ESSD云盘区别、性能和价格整理
阿里云服务器系统盘有ESSD Entry、ESSD云盘及ESSD AutoPL三种选择,各自在性能和适用场景上有所不同。ESSD Entry云盘性价比高,适合开发与测试业务;ESSD AutoPL云盘实现容量与性能解耦,支持自定义预配置性能,适用于时延敏感或IO密集型场景;ESSD云盘则提供多种性能级别,适用于大型OLTP数据库和NoSQL数据库等。详情及价格参见阿里云官网。
|
11天前
|
弹性计算 运维 监控
阿里云ECS实例使用示例
使用阿里云ECS实例的流程简便快捷:登录阿里云控制台,在ECS实例列表中选择目标实例并进入详情页,点击“启动”按钮激活实例,确保预装系统和应用完成。运行后,通过控制台监控CPU、内存及磁盘使用情况,如需调整配置,可选择实例后点击“重启”应用新设置。阿里云ECS助力企业轻松上云、高效运维。[1][3] 相关链接:阿里云ECS使用流程 https://startup.aliyun.com/info/1078898.html
|
11天前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
21 0
|
11天前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
16 0

推荐镜像

更多