首页 数据库 mysql教程 Database Replay加压播放参数之SCALE_UP_MULTIPLIER

Database Replay加压播放参数之SCALE_UP_MULTIPLIER

Jun 07, 2016 pm 04:36 PM
database replay SCALE 参数 播放

当我们要迁移到新的环境之前,我们都想测试下我们新的环境是否能负荷生产的负载。同时,对于一些特殊的应用场景,我们还需要考虑模拟更大的并发量来测试是否能顶住未来的压力。举个简单的例子,我搞个电子商务的网站,我现在每秒能支持1000个人同时在线做查

当我们要迁移到新的环境之前,我们都想测试下我们新的环境是否能负荷生产的负载。同时,对于一些特殊的应用场景,我们还需要考虑模拟更大的并发量来测试是否能顶住未来的压力。举个简单的例子,我搞个电子商务的网站,我现在每秒能支持1000个人同时在线做查询,购买等等操作。那么未来我们的网站影响力得到了扩大,可能有更多的人进行访问,比如1万人、10万人,这个压力下我的数据库服务器能顶住吗?在这里不得不吐槽一下我们的某(tie)车(dao)票(bu)的网站,真是烂的要死,一到过年的时候,就卡个不行。他们真应该多做做这种加压测试。上一篇我们主要介绍了Database Replay基本使用,我们捕获了现有的压力,然后拿到新的环境上去播放,基本上是1比1的。这一篇我们要进行一个加压的播放,这主要取决于我们的参数SCALE_UP_MULTIPLIER。这个参数可以帮助我们把只读的操作按照比例进行扩大。对于DML、DDL,或者是修改数据库的PL/SQL代码以及SELECT FOR UPDATE都将被忽略掉。这个也比较容易理解,毕竟修改操作是独占不能共享的。

上一篇我们捕获的一个环境的数据如下,这里可以看到USER_CALLS为56次,那么我们加速10倍播放,一定会达到5600次。我们来实验一下

SQL> select name, directory, status, start_time, end_time, USER_CALLS,TRANSACTIONS from dba_workload_captures; 
NAME                 DIRECTORY       STATUS          START_TIM END_TIME  USER_CALLS TRANSACTIONS 
-------------------- --------------- --------------- --------- --------- ---------- ------------ 
test_capture_1       DATA_PUMP_DIR   COMPLETED       20-APR-14 20-APR-14         56           10
登录后复制
1.预处理数据
登录后复制
SQL> exec dbms_workload_replay.process_capture('DATA_PUMP_DIR'); 
PL/SQL procedure successfully completed
登录后复制

2.执行重放

SQL> exec dbms_workload_replay.initialize_replay (replay_name => 'test_replay_1', replay_dir  => 'DATA_PUMP_DIR'); 
PL/SQL procedure successfully completed.
SQL> select id,name,PARALLEL,CAPTURE_ID,STATUS,USER_CALLS from DBA_WORKLOAD_REPLAYS;
        ID NAME                           PAR CAPTURE_ID STATUS                                   USER_CALLS
---------- ------------------------------ --- ---------- ---------------------------------------- ----------
        61 test_replay_1                  NO          65 INITIALIZED
SQL> exec DBMS_WORKLOAD_REPLAY.prepare_replay (synchronization => TRUE,SCALE_UP_MULTIPLIER=>100); 
PL/SQL procedure successfully completed.
登录后复制

新开一个终端,在终端上的datadump目录下运行:

[oracle@11g dpdump]$ wrc system/oracle mode=replay replaydir=/oracle/app/oracle/admin/ora11/dpdump 
Workload Replay Client: Release 11.2.0.4.0 - Production on Mon Apr 21 20:57:38 2014 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved. 
Wait for the replay to start (20:57:38)
登录后复制

切换回刚才的SQLPLUS窗口,开始执行Replay操作。

SQL> exec DBMS_WORKLOAD_REPLAY.START_REPLAY(); 
PL/SQL procedure successfully completed. 
登录后复制

再看终端窗口的显示。

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 
[oracle@11g dpdump]$ wrc system/oracle mode=replay replaydir=/oracle/app/oracle/admin/ora11/dpdump 
Workload Replay Client: Release 11.2.0.4.0 - Production on Mon Apr 21 20:57:38 2014 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved. 
Wait for the replay to start (20:57:38) 
Replay started (20:57:44) 
Replay finished (20:58:58)
登录后复制

完成后切换回SQLPLUS下执行查询。可以看到USER_CALLS是之前的10倍。

SQL> select id,name,PARALLEL,CAPTURE_ID,STATUS,USER_CALLS from DBA_WORKLOAD_REPLAYS;
        ID NAME                           PAR CAPTURE_ID STATUS                                   USER_CALLS
---------- ------------------------------ --- ---------- ---------------------------------------- ----------
        61 test_replay_1                  NO          65 COMPLETED                                      5600
登录后复制

再看看我们的事务,没有变化,发现还是10次。

SQL> connect test/test 
Connected. 
SQL> select count(1) from tt;?? COUNT(1) 
---------- 
??????? 10
登录后复制

通过这个参数,我们可以模拟更高的查询并发,预测生成环境未来的负载能力。同时,我们还可以生成更多的报告来进行对比。如果发现某些语句查询在1000个人下面正常,在1万、10万下就变得缓慢,那就需要去整改。比如逻辑读高的,一点点会话看不出什么问题的。一大堆会话就容易出现latch:cache buffer chains的等待。这能指导我们进行SQL调整。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
discuz database error怎么解决 discuz database error怎么解决 Nov 20, 2023 am 10:10 AM

discuz database error的解决办法有:1、检查数据库配置;2、确保数据库服务器正在运行;3、检查数据库表状态;4、备份数据;5、清理缓存;6、重新安装Discuz;7、检查服务器资源;8、联系Discuz官方支持。解决Discuz数据库错误需要从多个方面入手,逐步排查问题原因,并采取相应的措施进行修复。

泄漏揭示了英特尔 Arrow Lake-U、-H、-HX 和 -S 的关键规格 泄漏揭示了英特尔 Arrow Lake-U、-H、-HX 和 -S 的关键规格 Jun 15, 2024 pm 09:49 PM

英特尔ArrowLake预计将基于与LunarLake相同的处理器架构,这意味着英特尔全新的LionCove性能核心将与经济的Skymont效率核心相结合。而LunarLake仅作为ava推出

PHP 5.4版本新功能:如何使用callable类型提示参数接受可调用的函数或方法 PHP 5.4版本新功能:如何使用callable类型提示参数接受可调用的函数或方法 Jul 29, 2023 pm 09:19 PM

PHP5.4版本新功能:如何使用callable类型提示参数接受可调用的函数或方法引言:PHP5.4版本引入了一项非常便利的新功能-可以使用callable类型提示参数来接受可调用的函数或方法。这个新功能使得函数和方法可以直接指定相应的可调用参数,而无需进行额外的检查和转换。在本文中,我们将介绍callable类型提示的使用方法,并提供一些代码示例,

产品参数是什么意思 产品参数是什么意思 Jul 05, 2023 am 11:13 AM

产品参数是指产品属性的意思。比如服装参数有品牌、材质、型号、大小、风格、面料、适应人群和颜色等;食品参数有品牌、重量、材质、卫生许可证号、适应人群和颜色等;家电参数有品牌、尺寸、颜色、产地、适应电压、信号、接口和功率等。

如何使用'隔空播放”流式传输视频或镜像 iPhone 或 iPad 屏幕 如何使用'隔空播放”流式传输视频或镜像 iPhone 或 iPad 屏幕 Jul 14, 2023 pm 07:53 PM

本快速指南将向您展示如何使用AirPlay,这是Apple的创新无线流媒体功能,可以轻松共享和显示内容。允许您使用Wi-Fi将iPhone或iPad连接到与AirPlay兼容的AppleTV、智能电视、扬声器和Mac以及某些第三方扬声器和智能电视,以实现无缝数据传输。“隔空播放”以点对点为基础运行,通过本地网络连接您的Apple设备。它使用多种技术的组合,包括用于流式传输音频和视频的实时传输协议(RTP)和用于设备发现的Bonjour。简而言之,当您使用“隔空播放”时,您的设备会发送数据流,然后

C++ 函数参数类型安全检查 C++ 函数参数类型安全检查 Apr 19, 2024 pm 12:00 PM

C++参数类型安全检查通过编译时检查、运行时检查和静态断言确保函数只接受预期类型的值,防止意外行为和程序崩溃:编译时类型检查:编译器检查类型相容性。运行时类型检查:使用dynamic_cast检查类型相容性,不匹配则抛出异常。静态断言:在编译时对类型条件进行断言。

PHP Warning: in_array() expects parameter的解决方法 PHP Warning: in_array() expects parameter的解决方法 Jun 22, 2023 pm 11:52 PM

在开发过程中,我们可能会遇到这样一个错误提示:PHPWarning:in_array()expectsparameter。这个错误提示会在使用in_array()函数时出现,有可能是因为函数的参数传递不正确所导致的。以下我们来看看这个错误提示的解决方法。首先,需要明确in_array()函数的作用:检查一个值是否在数组中存在。该函数的原型为:in_a

C++程序以给定值为参数,找到双曲正弦反函数的值 C++程序以给定值为参数,找到双曲正弦反函数的值 Sep 17, 2023 am 10:49 AM

双曲函数是使用双曲线而不是圆定义的,与普通三角函数相当。它从提供的弧度角返回双曲正弦函数中的比率参数。但要做相反的事,或者换句话说。如果我们想根据双曲正弦值计算角度,我们需要像双曲反正弦运算一样的反双曲三角运算。本课程将演示如何使用C++中的双曲反正弦(asinh)函数,使用双曲正弦值(以弧度为单位)计算角度。双曲反正弦运算遵循以下公式-$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})},其中\:In\:是\:自然对数\:(log_e\:k)

See all articles