ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RAC负载均衡的简单测试(三)

RAC负载均衡的简单测试(三)

原创 Linux操作系统 作者:yangtingkun 时间:2007-04-13 00:00:00 0 删除 编辑

Rac环境安装完成之后,打算简单测试一下Oracle RAC的负载均衡功能。

RAC负载均衡的简单测试(一):http://yangtingkun.itpub.net/post/468/279433

RAC负载均衡的简单测试(二):http://yangtingkun.itpub.net/post/468/279754

这篇文章讨论负载均衡与实例的忙闲是否有关。


通过上一篇文档的讨论,RAC的负载均衡通过LISTENER建立的连接数有关。那个是否负载均衡只与这个因素有关,RAC的负载均衡和实例的忙闲状态是否有关呢?

TESTRAC2实例上启动两个做循环操作的SQL,模拟系统资源被大量占用的情况:

SQL> DECLARE
2 V_JOB NUMBER;
3 BEGIN
4 DBMS_JOB.SUBMIT(V_JOB,
5 'BEGIN
6 FOR I IN 1..1000 LOOP
7 FOR J IN 1..1000000 LOOP
8 NULL;
9 END LOOP;
10 END LOOP;
11 END;',
12 TO_DATE('2007-3-22 22:00:00', 'YYYY-MM-DD HH24:MI:SS'),
13 INSTANCE => 2);
14 COMMIT;
15 END;
16 /

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.53
SQL> DECLARE
2 V_JOB NUMBER;
3 BEGIN
4 DBMS_JOB.SUBMIT(V_JOB,
5 'BEGIN
6 FOR I IN 1..1000 LOOP
7 FOR J IN 1..1000000 LOOP
8 NULL;
9 END LOOP;
10 END LOOP;
11 END;',
12 TO_DATE('2007-3-22 22:00:00', 'YYYY-MM-DD HH24:MI:SS'),
13 INSTANCE => 2);
14 COMMIT;
15 END;
16 /

PL/SQL 过程已成功完成。

等到两个JOB启动之后,检查操作系统的运行情况:

$ sar 1 10

SunOS racnode2 5.8 Generic_117350-46 sun4u 03/22/07

22:00:29 %usr %sys %wio %idle
22:00:30 94 6 0 0
22:00:31 94 6 0 0
22:00:32 95 5 0 0
22:00:33 91 9 0 0
22:00:34 93 7 0 0
22:00:35 91 9 0 0
22:00:36 92 8 0 0
22:00:37 95 5 0 0
22:00:38 94 6 0 0
22:00:39 96 4 0 0

Average 94 6 0 0
$

然后进行连接实例的测试:

SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac1

SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac2

SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac1

SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac2

SQL> DISC Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
断开

SQL>

多个连接的测试:

E:>SQLPLUS NDMAIN/NDMAIN@TESTRAC

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3 22 21:56:26 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac2

SQL> HOST
Microsoft Windows 2000 [Version 5.00.2195]
(C)
版权所有 1985-2000 Microsoft Corp.

E:>SQLPLUS NDMAIN/NDMAIN@TESTRAC

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3 22 21:56:40 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac1

SQL> HOST
Microsoft Windows 2000 [Version 5.00.2195]
(C)
版权所有 1985-2000 Microsoft Corp.

E:>SQLPLUS NDMAIN/NDMAIN@TESTRAC

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3 22 21:57:00 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac2

SQL>

从上面两个测试的可以看出,新增的连接仍然平均分配到两个实例上。其实在测试前就基本上可以猜测到测试的结果,利用LISTENER的方式无法获得实例的忙、闲状态。所以,出现这种测试的结果也是情理之中。

看来,RAC的负载均衡只和通过监听建立的连接数有关,而和其他因素没有关系。Oracle的这个负载均衡,只是连接数的均衡,而不是性能上的均衡。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69238/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10369105