DNFS Tech16
DNFS Tech16
DNFS Tech16
Marcin Przepiorowski
December 2016
About me
Blogger
Application Integrate
Refresh Rewind
Files
Compress Provision
Any Storage
http://www.livemint.com/rf/Image-621x414/LiveMint/Period1/2015/08/11/Photos/ http://www.ishn.com/ext/resources/todaysnews3/traffic-422.jpg
[email protected]
Download Managers
Enable
$ cd $ORACLE_HOME/rdbms/lib/
$ make -f ins_rdbms.mk dnfs_on
rm -f /u01/app/oracle/11.2.0.4/db1/lib/libodm11.so; cp /u01/app/oracle/
11.2.0.4/db1/lib/libnfsodm11.so /u01/app/oracle/11.2.0.4/db1/lib/libodm11.so
Disable
$ cd $ORACLE_HOME/rdbms/lib/
$ make -f ins_rdbms.mk dnfs_off
rm -f /u01/app/oracle/11.2.0.4/db1/lib/libodm11.so; cp /u01/app/oracle/
11.2.0.4/db1/rdbms/lib/libodm11.so.dummy /u01/app/oracle/11.2.0.4/db1/lib/
libodm11.s
$ORACLE_HOME/dbs/oranfstab
/etc/oranfstab
/etc/mtab
Multipath
server:DE
local:172.16.169.142 path:172.16.169.141
local:192.168.166.24 path:192.168.166.23
export:/orc_timeflow-79/datafile mount:/mnt/provision/SLOB/datafile
export:/orc_timeflow-79/temp mount:/mnt/provision/SLOB/temp
export:/orc_timeflow-79/archive mount:/mnt/provision/SLOB/archive
§ MOS
- Recommended Patches for Direct NFS Client (Doc ID 1495104.1)
11.2.0.4 and 12.1.0.2 looks OK
- How To Setup DNFS (Direct NFS) On Oracle Release 11.2 (Doc ID 1452614.1)
- Step by Step - Configure Direct NFS Client (DNFS) on Linux (11g) (Doc ID 762374.1)
- Step by Step - Configure Direct NFS Client (DNFS) on Windows (Doc ID 1468114.1)
§ Blogs
- http://blog.oracle48.nl/wordpress/direct-nfs-configuring-and-network-considerations-in-practise/
- http://www.slideshare.net/yvelikanov/sharing-experience-implementing-direct-nfs#
https://docs.oracle.com/database/122/LADBI/checking-tcp-network-protocol-buffer-for-direct-nfs-client.htm
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 16777216 16777216
net.ipv4.tcp_wmem = 4096 4194304 16777216
https://docs.delphix.com/display/DOCS/Target+DB+and+OS+Configuration+Options+for+Improved+Performance
Solaris 11
AIX
Disable delayed ACK
tcp_nodelayack=1
NFS
nfs_max_read_size=524288
nfs_max_write_size=524288
NFS
dNFS
v$dnfs_stats, v$dnfs_channels
80,000.00
70,000.00
60,000.00
50,000.00
IOPS
40,000.00
30,000.00
20,000.00
10,000.00
0.00
1 2 4 8 16 24 32 40 48
1.0 ms
0.61 ms
dNFS NFS
40 k IOPS
FILESYSTEMIO_OPTIONS
- SETALL
- NONE / ASYNCH
700,000.00
600,000.00
500,000.00
400,000.00
IOPS
300,000.00
200,000.00
100,000.00
0.00
1 2 4 8 16 24 32 40 48
NFS
Tota Wait % DB
Event Waits Time Avg(ms) time Wait Class
------------------------------ ------------ ---- ------- ------ ----------
direct path read 384,380 1341 3 97.4 User I/O
DB CPU 35.1 2.5
dNFS
Tota Wait % DB
Event Waits Time Avg(ms) time Wait Class
------------------------------ ------------ ---- ------- ------ ----------
direct path read 164,147 1402 9 98.8 User I/O
DB CPU 119. 8.4
OS call
OS call
https://en.wikipedia.org/wiki/Bandwidth-delay_product
If
then the TCP session will not be able to use all of the available bandwidth
500000
400000
Bytes
300000 NFS
dNFS
200000
100000
0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
111
116
121
126
131
136
© 2016 Delphix Corporation 44
Investigation - Network
NFS
dNFS
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt, http://man7.org/linux/man-pages/man7/socket.7.html
tcp_adv_win_scale = 2
tcp_adv_win_scale = 4
NFS
40.00
dNFS
30.00
20.00
10.00
0.00
0 0.1 0.2 0.4 0.5 1 2
Additional latency
It depends
Marcin Przepiorowski
@pioro
[email protected]