There is no limit for NFS or UDP in general, though memory, open channel limits, or other system resources could effect the number of connections the NFS server can service.
Server acting 'catatonic' - can't start NFS_SERVERIO processes
If the NFS server can not service creates or writes it could be because it can not start an NFS_SERVERIO process. If a SHOW SYSTEM shows the NFS_SERVER process but no NFS_SERVERIO_X process(es) this is a good indication that the PRCLM (process limit) of the NFS_SERVER is 0. This can be verified by running quota.com (included below) on the NFS_SERVER process and looking for PRCLM. It should be 5 or better.
VEGA> mu config/serv [Reading in configuration from MULTINET:SERVICES.MASTER_SERVER] SERVER-CONFIG>select nfs [The Selected SERVER entry is now NFS] SERVER-CONFIG> [PQL PRCLM of NFS set to 5] SERVER-CONFIG>exit
The following commands show how to set the PRCLM of the NFS_SERVER process:
[quota.com] $! quota.com $! Usage: @QUOTA pid-of-process-to-check $! $ if p1 .eqs. "" $ then $ Inquire PID $ else $ PID = P1 $ Endif $ astcnt = f$getjpi(pid, "astcnt") $ astlm = f$getjpi(pid, "astlm") $ bytcnt = f$getjpi(pid, "bytcnt") $ bytlm = f$getjpi(pid, "bytlm") $ pgflquota = f$getjpi(pid, "pgflquota") $ pagfilcnt = f$getjpi(pid, "pagfilcnt") $ filcnt = f$getjpi(pid, "filcnt") $ fillm = f$getjpi(pid, "fillm") $ enqcnt = f$getjpi(pid, "enqcnt") $ enqlm = f$getjpi(pid, "enqlm") $ biocnt = f$getjpi(pid, "biocnt") $ biolm = f$getjpi(pid, "biolm") $ diocnt = f$getjpi(pid, "diocnt") $ diolm = f$getjpi(pid, "diolm") $ tqcnt = f$getjpi(pid, "tqcnt") $ tqlm = f$getjpi(pid, "tqlm") $ prclm = f$getjpi(pid, "prclm") $ write sys$output "ASTLM: ''ASTLM', remaining: ''ASTCNT'" $ write sys$output "BYTLM: ''BYTLM', remaining: ''BYTCNT'" $ write sys$output "PGFLQUOTA: ''PGFLQUOTA', remaining: ''PAGFILCNT'" $ write sys$output "FILLM: ''fillm', remaining: ''FILCNT'" $ write sys$output "ENQLM: ''enqlm', remaining: ''enqcnt'" $ write sys$output "BIOLM: ''biolm', remaining: ''biocnt'" $ write sys$output "DIOLM: ''diolm', remaining: ''diocnt'" $ write sys$output "TQLM: ''tqlm', remaining: ''tqcnt'" $ write sys$output "PRCLM: ''prclm'"
A reboot is required after doing this if the server is running in kernel mode. If the server is running in user mode, you can stop the process and restart the master server.
What Are the Symptoms?
The NFS Server will performs poorly if it exhausts its process quotas. You may notice that it spends a lot of CPU time without doing useful work.
How to Check Process Quotas
To check to see whether the NFS Server's process quotas are adequate, pick a time when the server is not behaving as expected, the server is busy, or the server has been up for a long time, and execute the following command procedure:
$! quota.com $! Usage: @QUOTA pid-of-process-to-check $! $ if p1 .eqs. "" $ then $ Inquire PID $ else $ PID = P1 $ Endif $ astcnt = f$getjpi(pid, "astcnt") $ astlm = f$getjpi(pid, "astlm") $ bytcnt = f$getjpi(pid, "bytcnt") $ bytlm = f$getjpi(pid, "bytlm") $ pgflquota = f$getjpi(pid, "pgflquota") $ pagfilcnt = f$getjpi(pid, "pagfilcnt") $ filcnt = f$getjpi(pid, "filcnt") $ fillm = f$getjpi(pid, "fillm") $ enqcnt = f$getjpi(pid, "enqcnt") $ enqlm = f$getjpi(pid, "enqlm") $ biocnt = f$getjpi(pid, "biocnt") $ biolm = f$getjpi(pid, "biolm") $ diocnt = f$getjpi(pid, "diocnt") $ diolm = f$getjpi(pid, "diolm") $ tqcnt = f$getjpi(pid, "tqcnt") $ tqlm = f$getjpi(pid, "tqlm") $ write sys$output "ASTLM: ''ASTLM', remaining: ''ASTCNT'" $ write sys$output "BYTLM: ''BYTLM', remaining: ''BYTCNT'" $ write sys$output "PGFLQUOTA: ''PGFLQUOTA', remaining: ''PAGFILCNT'" $ write sys$output "FILLM: ''fillm', remaining: ''FILCNT'" $ write sys$output "ENQLM: ''enqlm', remaining: ''enqcnt'" $ write sys$output "BIOLM: ''biolm', remaining: ''biocnt'" $ write sys$output "DIOLM: ''diolm', remaining: ''diocnt'" $ write sys$output "TQLM: ''tqlm', remaining: ''tqcnt'"
How to Boost Process Quotas
After you have run the program above, if any remaining quota is exhausted or very small, then boost this quota. For example, if you see the following:
PGFLQUOTA: 60000, remaining: 0
you can boost PGFLQUOTA to about 100000. (Exhausted FILLM is another possible source of a problem.)
$ mu conf/serv MultiNet Server Configuration Utility V5.6 [Reading in configuration from MULTINET:SERVICES.MASTER_SERVER] SERVER-CONFIG>sel nfs [The Selected SERVER entry is now NFS] SERVER-CONFIG>set pql-pgflquota 100000 SERVER-CONFIG>exit $ MULTINET NETCONTROL NFS RESTART
If the NFS Server can't restart, you'll have to reboot.
You may also need to boost the SYSGEN CHANNELCNT parameter. Enter the following:
$ ANALYZE/SYSTEM sda> SET PROCESS NFS_SERVER sda> SHOW PROCESS/CHANNEL
If you see that the number of channels being used is close to the value of CHANNELCNT, then boost CHANNELCNT and reboot. Note that CHANNELCNT should be larger than your FILLM process quota.
If you need to boost PGFLQUOTA, first ensure that VIRTUALPAGECNT is at least as large and make sure there's adequate room in your system pagefiles.
Note: A common cause of NFS Server problems, when the NFS Server is called upon to process LOTS of concurrent requests, is BYTLM exhaustion. The above QUOTA.COM check may not show the BYTLM problem, because the BYTLM usage can be ephemeral. Therefore, it's suggested that you boost the NFS_SERVER's BYTLM to at least 300000.