首页 > Linux操作系统 > Linux操作系统 > RAC负载均衡的简单测试(三)
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/,如需转载,请注明出处,否则将追究法律责任。