Veritas Access supports both the NFS kernel-based server and the NFS-Ganesha server in a mutually exclusive way. The NFS kernel-based server supports NFS version 3 and version 4. The NFS-Ganesha server also supports both NFS version 3 and NFS version 4.
See Using the NFS-Ganesha server.
The NFS-Ganesha server does not run in the kernel, instead NFS-Ganesha runs in user space on the NFS server. This means that the NFS-Ganesha server processes can be affected by system resource limitations as any other user space process can be affected. There are some NFS-server operating system tuning values that you should modify to ensure that the NFS-Ganesha server performance is not unduly affected. You use the NFS client mount option version to determine whether NFS version 3 or NFS version 4 is used. On the NFS client, you can select either the version=3 or the version=4 mount option. The NFS client is unaware of whether the NFS server is using kernel-based NFS or NFS-Ganesha. Only if NFS-Ganesha is enabled in Veritas Access, a client can perform an NFS mount using the mount option of version=4.
When you start a system, kswapd_init() calls a kernel thread that is called kswapd, which continuously executes the function kswapd() in mm/vmscan.c
that usually sleeps. The kswapd daemon is responsible for reclaiming pages when memory is running low. kswapd performs most of the tasks that are needed to maintain the page cache correctly, shrink slab caches, and swap out processes if necessary. kswapd keeps freeing pages until the pages_high watermark is reached. Under extreme memory pressure, processes do the work of kswapd synchronously by calling balance_classzone(), which calls the try_to_free_pages_zone().
When there is memory pressure, pages are claimed using two different methods.
pgscank/s - The kswapd kernel daemon periodically wakes up and claims (frees) memory in the background when free memory is low. pgscank/s records this activity.
pgscand/s - When kswapd fails to free up enough memory, then the memory is also claimed directly in the process context (thus blocking the user program execution). pgscand/s records this activity.
The total pages being claimed (also known as page stealing) is therefore a combination of both pgscank/s and pgscand/s. pgsteal/s records the total activity, so (pgsteal/s = pgscank/s + pgscand/s).
The NFS-Ganesha user process can be affected when kswapd fails to free up enough memory. To alleviate the possibility of the NFS-Ganesha process from doing the work of kswapd, Veritas recommends increasing the value of the Linux virtual machine tunable min_free_kbytes.
Example of a default auto-tuned value:
sysctl -a | grep vm.min_free vm.min_free_kbytes = 90112
You use min_free_kbytes to force the Linux VM (virtual memory management) to keep a minimum number of kilobytes free. The VM uses this number to compute a watermark value for each lowmem zone in the system.
Table: Recommended tuning parameters for NFS version 3 and version 4