[Info-vax] DNFS1ACP using 100% of CPU
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Fri Oct 11 11:12:30 EDT 2013
On 2013-10-11 04:31:03 +0000, milton.baar at swoose.com.au said:
> <snip>
>
> It would appear that I need to increase the working set of the NFSACP.
> Reading through TCPIP$NFS_CLIENT_STARTUP.COM is is clear that the
> NFSACP is installed as a driver during TCP/IP startup and examining the
> running image shows it with a UIC [1,1] and a working set of 16384.
> Clearly this is inadequate and causing the system to soft-fault itself
> to a standstill.
>
> How do I increase the WS to something like 3000? I have never played
> with installed drivers in this way before and haven't found anything to
> guide me....
NFSACP is not a driver, it is an ACP; an ancillary control process.
Briefly: an ACP is a process that has a working set and related quotas
and settings. The process quotes and related are established when the
ACP is launched. There's no consistent way to launch an ACP on VMS
(other than the VMS file system ACPs, which use the MOUNT command), so
each project establishes its own process creation mechanism. That
process creation establishes the quotas explicitly (better programming
practice), or the quotas are defaulted from the PQL values (rather more
unreliable programming practice). More details:
<http://labs.hoffmanlabs.com/node/213>
It is unusual for an ACP to be very active, and that behavior would
imply either very heavy driver load — the driver asks the ACP for
services that are difficult to perform in the context of a device
driver — as the device driver authors strongly prefer to avoid
involving the transitions and context switches inherent in involving
the ACP. In general, the driver author wants to use the ACP for slow
stuff and occasional stuff and stuff the driver just can't do for
itself, but preferably not within the main I/O path of the device
driver.
It is also very unusual for the NFS ACP to be active — at all — with a
quiescent NFS connection.
Put another way, you're probably not chasing an ACP quota issue here,
there's something in the NFS traffic that's exposing a bug in the NFS
client or ACP. Go ahead and increase the process quotas, but I'd
suspect there's a leak or other error lurking, and you'll just (and
likely only briefly) forestal the manifestation of the latent errors
here.
But to answer your question, find what I expect will probably be a RUN
command buried in the TCPIP startup DCL for NFS that starts the ACP (or
maybe via a sys$creprc call somewhere? haven't looked), and tweak it
to increase the quotas. Or logical names if NFS has those, or via PQL
parameters if all else fails. But don't expect the quota changes to
resolve what looks to be the run-away ACP activity here. There's very
likely a bug or an incompatibility lurking here somewhere, either in
the NFS client driver, in the ACP, or potentially in the Apple NFS
server.
Um, what do I mean by an "incompatibility" here? Standards and specs
can and variously do have some ambiguities and this can lead to
differing and arguably equally valid interpretations. So potentially
not technically a bug. Well, not unless you count an ACP that faults
itself silly in certain contexts as a bug.
There have been various recent updates to TCP/IP Services NFS support
including some updates that themselves introduced some bugs, though I
don't know if any are related to the behavior reported here. Your most
likely approach here might be switching to one of the Process IP stacks
and the Process NFS client, assuming this isn't the Apple NFS server at
fault, and assuming you don't have access to the HP OpenVMS patches,
and that you're an OpenVMS hobbyist. If this is commercial and you
have HP support, load the TCP/IP Services patches and then call HP
support.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list