DNFS: wtmax = /proc/fs/nfsd/max_block_size

Posted in: Technical Track

This is one of those posts that you find via Google using an error message for direct hit search. If you didn’t reach this post that way, I would advise you to stop reading here. If you are still reading then you (as I did) faced error messages below and got frustrated as it isn’t obvious what exactly Oracle means by wtmax/fsinfo/rt/rtp/wt/wtp etc. It all has been very confusing to me as I am an Oracle DBA and still need to learn a lot on the system administration level side of things.

Disclaimer: This comes from my laboratory sandbox environment. Don’t use it in a production environment until confirmed as a working and valid solution by your vendor.


You have configured Direct NFS, but see the following message in an instance’s alert.log:

Direct NFS: attempting to mount /u02 on filer KUKARACHA2 defined in oranfstab
Direct NFS: channel config is:
channel id [0] local [] path []
Direct NFS: mount complete dir /u02 on KUKARACHA2 mntport 963 nfsport 2049
Direct NFS: Invalid filer wtmax 525232 on filer KUKARACHA2
Direct NFS: Filer wtmax 525232 must be an even multiple of 32768
Thread 1 opened at log sequence 26

If you switch on DNFS, debug events using the following command:

alter system set event="19392 trace name context forever, level 8","19394 trace name context forever, level 8","19396 trace name context forever, level 2","19398 trace name context forever, level 128"

You find the following messages in the DB writer (or client) trace files:

 1350862522117253 kgnfs_get_fsinfo:1907: Filer wtmax 525232 on filer KUKARACHA2
 1350862522118461 kgnfscrechan:3010:  Failed to get root fsinfo on filer KUKARACHA2 error 22
 1350862522118498 kgnfsdeschan:3290: channel 0x7a839070 id 0
 1350862522118548 kgnfsdeschan:3354: freeing channel 0x7a839070 id 0 flags 4
 1350862522118585 kgnfscrechan:3087: warn path filer KUKARACHA2 erc 9
 1350862522118630 kgnfs_crechan:3209: Direct NFS: Could not connect to filer KUKARACHA2
 1350862522118690 kgodm_identify:2766: path /nfsim3/iops_01.dbf fid 0 fsize 0 used 0 /nfsim3/iops_01.dbf erc 0 result 2
 NOTE: disabled slave pool (status 3); using direct msgs


On the NFS Filer (server) side:

root@yve_ol5_a sysconfig# service nfs stop
root@yve_ol5_a sysconfig# service nfslock stop
root@yve_ol5_a sysconfig# ps -ef | grep nfs
root      3262    53  0 14:10 ?        00:00:00 nfsiod
root     12903  8796  0 19:53 pts/0    00:00:00 grep nfs
root@yve_ol5_a sysconfig# cat /proc/fs/nfsd/max_block_size
root@yve_ol5_a sysconfig# echo 1048576 > /proc/fs/nfsd/max_block_size
root@yve_ol5_a sysconfig# cat /proc/fs/nfsd/max_block_size
root@yve_ol5_a sysconfig# service start stop
root@yve_ol5_a sysconfig# service nfs start

Stop the database and unmount the NFS mount. Adjust the related configuration file (I don’t know which one as of now, give me and others a hint in the comments section!) to make the change permanent.
The  alert.log and trace files should show normal messages like below:

Direct NFS: attempting to mount /u02 on filer KUKARACHA2 defined in oranfstab
Direct NFS: channel config is:
     channel id [0] local [] path []
Direct NFS: mount complete dir /u02 on KUKARACHA2 mntport 883 nfsport 2049
Direct NFS: channel id [0] path [] to filer [KUKARACHA2] via local [] is UP
Direct NFS: channel id [1] path [] to filer [KUKARACHA2] via local [] is UP
Beginning crash recovery of 1 threads

Trace file

1350863663882120 kgnfs_get_fsinfo:1907: Filer wtmax 1048576 on filer KUKARACHA2
 1350863663882320 kgnfscrechan:3068: created channel 0x7a839070
 1350863663882346 kgnfscrechan:2889: path rserver 0x7a834048 local routing on ch 1
 1350863663882578 skgnfs_bind:1295: sockfd 33 port 20285 address
 1350863663883086 kgnfscrechan:3068: created channel 0x7a839e20
 1350863663883177 kgnfsexecnfs3proc:3430: channel 0x7a839070 proc 3 tmo 4294967295
 1350863663883202 kgnfs_fillcmsg:4234:  LOOKUP iops_01.dbf

Let me know if you found this info useful in the comment section. ;)

Want to talk with an expert? Schedule a call with our team to get the conversation started.

About the Author

Yury is a nice person who enjoys meeting and working with people on challenging projects in the Oracle space. He started to work as an Oracle DBA 14 years ago (1997). For the past 10 years (since 2001) his main area of expertise is Oracle e-Business Suite. Yury is an OCP 7,8,9,10g and OCM 9i,10g. He is a frequent presenter at Oracle related conferences such as Hotsos, UKOUG and AUOUG. Yury is a socially active person. Apart from Social Media (Twitter, Bloging, Facebook) he is the primary organizer of Sydney Oracle Meetup group (250 people). So if you happen to be in Sydney (Australia) drop Yury a message and stop by at one of his Meetups.

2 Comments. Leave new

Thanks for the info.

Regarding configuration file location

“oranfstab” config file located under /etc or $ORACLE_HOME/dbs .

Matthias Laudt
May 20, 2016 2:29 am

Hi Yury,

we’re benchmarking dnfs for some weeks now, but one major problem still remains, maybe you have some experience.

Simplified: writes are slower than reads. I sure it’s related to the 1MB IOs against the storage.
Do you have any idea how to manipulate IO size using dnfs? WTMAX und RTMAX in v$dnfs_servers defaults to 1M.

Btw: great stuff from you around dnfs.

Thanks a lot


Leave a Reply

Your email address will not be published. Required fields are marked *