Oracle11g Direct NFS 測試

發表于:2013-10-17來源:IT博客大學習作者:osdba點擊數: 標簽:oracle
這幾天測試了一下oracle11g Direct NFS 的功能,發現ORACLE Direct NFS是通過建立多個到NFS Server的TCP連接來提高IO的并發能力的。

  這幾天測試了一下oracle11g Direct NFS 的功能,發現ORACLE Direct NFS是通過建立多個到NFS Server的TCP連接來提高IO的并發能力的。前面,我們提過,NFS的IO能力不高的原因是,NFS client端到NFS Server的操作是串行的,正常的NFS client到NFS Server端只建立一個連接,而且只有等前一個請求處理完成后,后一個請求才能處理,這樣在隨機讀IO上就上不去。而Oracle Directd NFS與NFS Server建立多個TCP連接,處理就可以并發進行了,這樣從理論上說就可以大大提高NFS的性能。

  而在實際發現Direct NFS讀的時候很快,實測到達到了400Mbytes/s,基本沒有發現瓶頸,但寫的時候,發現比較慢,insert數據時,寫流量只有3.4Mbytes/s左右,寫為何這么慢原因不明,估計是Linux的NFS Server與Oracle Direct NFS配合不好導致。

  當使用rman備份時,如果備份的路徑在Direct NFS指定的路徑中時,也會自動走到Direct NFS模式下。

  測試過程:

  先修改odm庫,啟動支持Direct nfs的odm庫:

  [oracle@nfs_client lib]$ ls -l *odm*

  -rw-r-r- 1 oracle oinstall 54764 Sep 11 2008 libnfsodm11.so

  lrwxrwxrwx 1 oracle oinstall 12 Jul 8 18:55 libodm11.so -> libodmd11.so

  -rw-r-r- 1 oracle oinstall 12755 Sep 11 2008 libodmd11.so

  [oracle@nfs_client lib]$ rm libodm11.so

  [oracle@nfs_client lib]$ ln -s libnfsodm11.so libodm11.so

  在nfs server機器中共享一個目錄,為了使用硬盤不會成為IO瓶頸,使用8塊盤做一個raid0,然后做ext3文件系統,做為nfs Server的輸出:

  mdadm -C /dev/md0 -level raid0 -c 8 -n 8 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi

  mkfs -t ext3 /dev/md0

  mount /dev/md0 /nfs

  然后在/etc/exportfs中配置:

  /nfs 192.168.172.132(rw,no_root_squash,insecure)

  service nfs restart

  在數據庫主機上(nfs client端):

  [oracle@nfs_client dbs]$ cat oranfstab

  server: node_data1

  path: 192.168.172.128

  export: /nfs mount: /opt/oracle/oradata/nfs

  mount -t nfs 192.168.172.128:/nfs /opt/oracle/oradata/nfs

  兩臺機器通過萬兆網卡連接,測試過網絡速度可以達到800Mbytes/s以上。

  建一個數據庫:

  CREATE DATABASE oratest

  USER SYS IDENTIFIED BY sys

  USER SYSTEM IDENTIFIED BY system

  CONTROLFILE REUSE

  LOGFILE GROUP 1 (’/opt/oracle/oradata/oratest/redo_1_1.log’) SIZE 200M REUSE,

  GROUP 2 (’/opt/oracle/oradata/oratest/redo_2_1.log’) SIZE 200M REUSE,

  GROUP 3 (’/opt/oracle/oradata/oratest/redo_3_1.log’) SIZE 200M REUSE,

  GROUP 4 (’/opt/oracle/oradata/oratest/redo_4_1.log’) SIZE 200M REUSE,

  GROUP 5 (’/opt/oracle/oradata/oratest/redo_5_1.log’) SIZE 200M REUSE

  MAXLOGFILES 20

  MAXLOGMEMBERS 5

  MAXLOGHISTORY 1000

  MAXDATAFILES 1000

  MAXINSTANCES 2

  noARCHIVELOG

  CHARACTER SET US7ASCII

  NATIONAL CHARACTER SET AL16UTF16

  DATAFILE ‘/opt/oracle/oradata/oratest/system01.dbf’ SIZE 2046M REUSE

  SYSAUX DATAFILE ‘/opt/oracle/oradata/oratest/sysaux01.dbf’ SIZE 2046M REUSE

  EXTENT MANAGEMENT LOCAL

  DEFAULT TEMPORARY TABLESPACE temp

  TEMPFILE ‘/opt/oracle/oradata/oratest/temp01.dbf’ SIZE 2046M REUSE

  UNDO TABLESPACE undotbs1

  DATAFILE ‘/opt/oracle/oradata/oratest/undotbs01.dbf’ SIZE 2046M REUSE

  SET TIME_ZONE = ‘+08:00′;

  再建一個表空間tbs_testd在在nfs上:

  create tablespace tbs_test datafile ‘/opt/oracle/oradata/nfs/test01.dbf’ size 2047M;

  SQL> col svrname format a40

  SQL> col dirname format a40

  SQL> set linesize 200

  SQL> select * from v$dnfs_servers;

  ID SVRNAME DIRNAME MNTPORT NFSPORT WTMAX RTMAX

  ―――- ―――――――――――――- ―――――――――――――- ―――- ―――- ―――- ―――-

  1 nfs_server /nfs 907 2049 32768 32768

  1 row selected.

  col filename format a40

  select * from v$dnfs_files;

  SQL> select * from v$dnfs_files;

  FILENAME FILESIZE PNUM SVR_ID

  ―――――――――――――- ―――- ―――- ―――-

  /opt/oracle/oradata/nfs/test01.dbf 2145394688 9 1

  SQL> col path format a30

  SQL> select * from V$DNFS_CHANNELS;

  PNUM SVRNAME PATH CH_ID SVR_ID SENDS RECVS PINGS

  ―――- ―――――――――――――- ―――――――――― ―――- ―――- ―――- ―――- ―――-

  5 nfs_server 192.168.172.128 0 1 9 25 0

  9 nfs_server 192.168.172.128 0 1 28 75 0

  11 nfs_server 192.168.172.128 0 1 96 250 0

  12 nfs_server 192.168.172.128 0 1 166 552 0

  13 nfs_server 192.168.172.128 0 1 216 955 0

原文轉自:http://blogread.cn/it/article/21

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97