Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> DBLINK GIGABIT - 100MBIT NETWORK TESTS
Hi ,
This is a long mail , including some test results and question about gigabit network performance with dblink . Sorry and please dont read it if you don't interest , i don't want to disturb the group or anyone.
I want to transfer some of the tables between two systems by using dblink over gigabit network. The source system is a 2 node rac redhat linux system , the destination is a single sun solaris . My problem is there is no performance difference between the gigabit network and normal 100Mbit network. Iwant to understand whether gigabit network is really in use , if in use why does not work fast. Let me describe you what i have done .
First of all , in order to be sure whether the gigabit really works , i made a ftp transfer test .
The source system ( redhat linux)
100Mbit ip: AA Gigabit ip: BB The destination system ( sun solaris) 100Mbit ip: CC gigabit ip: DD
on sun box:
ftp BB
Connected to BB
220 tanidw1 FTP server (Version wu-2.6.1-21) ready.
Name (BB:oracle): oracle
331 Password required for oracle.
Password:
230 User oracle logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /home/tolga/
250 CWD command successful.
ftp> mget test.txt
mget test.txt? y
200 PORT command successful.
150 Opening BINARY mode data connection for test.txt (230877887
bytes).
226 Transfer complete.
local: test.txt remote: test.txt
230877887 bytes received in 9.5 seconds (23808.85 Kbytes/s)
So , 23MB per second is the transfer rate. And it takes 9.5 seconds to transfer 230MB. file.
the same transfer takes more than 20 secs if i use 100mbit interface, i dont add the details in order to keep the mail short.
2. LOCAL CTAS TEST ON SOURCE DB now , i want to create a table by using ctas in sun server with gigabit interface. First of all , on source db which is linux , i tested how long does it take to create the copy of the table : ( The table is about 80MBytes)
y.sql is the ctas script:
y.sql :
alter session set events '10046 trace name context forever , level
12';
create table gecici.urunydk nologging tablespace data noparallel as
select /*+full(u) noparallel(u)*/ * from tanidwh.urun u;
exit 0;
In order to eliminate the disk io , here i use noparallel , also the 80Mb. file is cached inside the sga according to the:
SELECT inst_id, count(*) FROM GV$CACHE WHERE NAME ='URUN' group by inst_id
INST_ID COUNT(*) 1 4859 2 16
(4875 * 16k blocks ) in bytes
So the table is in sga .
time sqlplus tanidwh/dwh1 @y.sql
SQL*Plus: Release 9.2.0.5.0 - Production on Wed Mar 14 11:18:47 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Oracle Data
Mining options
JServer Release 9.2.0.5.0 - Production
Session altered.
Table created.
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.5.0 -
64bit Production
With the Partitioning, Real Application Clusters, OLAP and Oracle Data
Mining options
JServer Release 9.2.0.5.0 - Production
real 0m4.489s user 0m0.019s sys 0m0.004s
and this is the trace output:
create table gecici.urunydk nologging tablespace data noparallel as select /*+full(u) noparallel(u)*/ * from tanidwh.urun u
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0 Execute 1 2.00 3.97 0 5105 2117 728311 Fetch 0 0.00 0.00 0 0 0 0
total 2 2.00 3.97 0 5105 2117 728311
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 46
Elapsed times include waiting on following events:
Event waited on Times Max. Wait TotalWaited
No disk io , only reading the sga , 80 mb. table ctas takes 4.4 sec.
3. REMOTE CTAS TEST ON TARGET DB BY USING 100MBIT AND GIGABIT NETWORK in solaris box , in order to use gigabit interface i changed the tnsnames.ora :
this is gigabit network:
TANIDWHBCK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = BB)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED) (SERVICE_NAME = TDWH)
this is the 100Mb network:
TANIDWH =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = AA)(PORT = 1521)) (LOAD_BALANCE = yes)
(SERVER = DEDICATED) (SERVICE_NAME = TDWH)
and i have created two dblinks:
create public database link DWH9I
connect to zzzzz
identified by "<pwd>"
using 'tanidwh';
create public database link DWH9IBCK
connect to zzzzz
identified by "<pwd>"
using 'tanidwhbck';
now it really does not matter which link i use, both have the same results:
with 100MBit :
create table merkez.testurun tablespace crm_tfs_genel nologging noparallel as
select /*+full(u) noparallel(u)*/ * from tanidwh.urun_at_dwh9i u
call count cpu elapsed disk query current rows
Parse 1 0.02 0.06 0 4 1 0 Execute 1 12.21 12.58 0 981 6181 728311 Fetch 0 0.00 0.00 0 0 0 0
total 2 12.23 12.65 0 985 6182 728311
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 136
Elapsed times include waiting on following events:
Event waited on Times Max. Wait TotalWaited
with gigabit :
create table merkez.testurun tablespace crm_tfs_genel nologging noparallel as
select /*+full(u) noparallel(u)*/ * from tanidwh.urun_at_dwh9ibck u
call count cpu elapsed disk query current rows
Parse 1 0.03 0.25 0 4 1 0 Execute 1 12.52 13.01 0 981 6181 728311 Fetch 0 0.00 0.00 0 0 0 0
total 2 12.55 13.27 0 985 6182 728311
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 136
Elapsed times include waiting on following events:
Event waited on Times Max. Wait TotalWaited
Both traces show more or less same numbers. It takes 12-13 secs. to create the table . Local table creation takes 4 sec. Why does not gigabit improve the performance?
3. LOCAL CTAS TEST ON TARGET DB In order to understand , whether gigabit / 100mbit network matters or disk write , i simply created another table from this table on sun box.
merkez.testurun table is in sga
SELECT COUNT(*) FROM V$BH
WHERE OBJD=948238
4832
create table merkez.testurun1 tablespace crm_tfs_genel nologging noparallel as
select /*+full(u) noparallel(u)*/ * from merkez.testurun u
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 1 0 0 Execute 1 2.04 2.01 0 4918 5747 728311 Fetch 0 0.00 0.00 0 0 0 0
total 2 2.05 2.01 0 4919 5747 728311
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 136
Elapsed times include waiting on following events:
Event waited on Times Max. Wait TotalWaited
So it takes 2 secs.
In summary ,
In source db , creating a new local copy of the table takes 4sec. in target db , creating a new local copy of the table takes 2sec. but creating a new remote copy of the source table in destinaton by using dblink , takes 12-13 sec. both for gigabit and 100mbit network.
I think i have successfully eliminated the disk io , i mean table is completely in sga .
Why does the dblink operation take 12 sec? Where does 12-4=10 sec spend? In traces :
Event waited on Times Max. Wait TotalWaited
SQL*Net more data from dblink 22646 0.07 0.79
is same for both gigabit and 100mbit. Is there any other parameters that must be tuned for better network access ? Does the dblink really use gigabit network?
Kind Regards,
hope
Received on Wed Mar 14 2007 - 07:46:03 CDT