Just to confirm:
"No free workers" indicates that the (# cp workers * max clients per CP worker) has
been exceeded. Under normal circumstances, this should only occur if the number of
concurrent clients accessing the system exceeds the above number.
and here, mostly from the ND5 documentation:
Tuning the Worker Pool
For important services such as the Connection Processor and Data Service, the
NetDynamics Command Center allows fine grained tuning of the worker pool. For each
component there are three properties that can greatly affect system performance:
1 NumberOfWorkers: dictates the size of the worker pool.
2 MaximumClientsPerWorker: indicates the maximum number of clients that can
simultaneously access a single worker instance.
3 NumberOf Processes: indicates the number of processes over which the workers are
distributed.
Here are some general rules of thumb and observations about these properties:
1 CP Workers will always be out-of-process. In a deployment operation, workers should
run in their own process for both performance and fault tolerance (for example, a CP
worker running a project can crash and bring down the entire server if it is running
in the same process as the SM).
2 Usually there will be only a single CP worker per process (namely NumberOfProcesses
equals workers). The NetDynamics services (the CP and DS) are designed so that there
is no reason to run multiple workers in a single process. Instead the
MaxClientsPerWorker should be tuned, and each worker should run in its own process.
3 MaxClientsPerWorker * number of workers per process dictates the number of threads
that will be running in a process. Depending on your system and how it context
switches, it may be better to have many concurrent processes than many concurrent
threads. For example, 1 worker with a max clients of 100 indicates that 100 threads
could potentially be active in the worker process. On the other hand, 10 workers with
10 clients each indicates that only 10 threads will be active in each worker process.
4 NumberOfWorkers * MaxClientsPerWorker dictates the maximum number of clients that
can simultaneously access the component. This is important. If there are 2 workers
and 5 clients per worker for the CP service, then only 10 CGI clients can access the
system in parallel. (The other clients will wait for a free worker to become
available.) On the other hand, if there are 5 workers and 100 clients per worker, 500
concurrent clients (and potentially 100 concurrent threads per worker) can be
supported; however, depending on the hardware, 500 concurrent clients may actually
degrade performance due to thrashing and thread context switching.
5 Ratio of CP MaxClients/DS MaxClients- You should never have fewer total DS
MaxClients than CP MaxClients. This is because of a reservation revocation that can
occur when there are fewer total DS clients than total CP clients. In our testing we
find is best to have 115% more total DS clients than total CP clients.
Lidia
[EMAIL PROTECTED] wrote:
> Hi folks, I searched the archives and TechNotes but couldn't find any answers
> about this one
>
> We have about 20 users piloting our ND4 app that runs on HP-UX. The ND4 app
> server stopped responding today and when I looked in the smDefaultPartition.log
> I saw this message
>
> **************SM is started*****************
> exception CNdNoFreeWorkersException{string reason="no free workers";}
> at
> netdyn.cosi.service.loadBalancing.CNdLoadBalancingManager.allocateWorker(Compiled
>
> Code)
> at netdyn.cosi.service.CNdServiceImpl.allocateWorker(Compiled Code)
> at netdyn.cosi.stubs._tie_INdService.allocateWorker(Compiled Code)
> at netdyn.cosi.stubs._INdServiceImplBase._execute(Compiled Code)
> at netdyn.cosi.stubs._INdServiceImplBase._execute(Compiled Code)
> at com.visigenic.vbroker.orb.SkeletonDelegateImpl.execute(Compiled Code)
> at com.visigenic.vbroker.orb.GiopProtocolAdapter.doRequest(Compiled Code)
> at com.visigenic.vbroker.orb.GiopProtocolAdapter.dispatchMessage(Compiled
> Code)
> at com.visigenic.vbroker.orb.ThreadPoolDispatcher.run(Compiled Code)
> at com.visigenic.vbroker.orb.WorkerThread.run(Compiled Code
>
> and that "no free workers" junk was repeated 8 times.
>
> I chked our CP service settings...and I see we have:
> # of workers = 2
> max # clients per worker = 4
>
> (Hmnn, 2 x 4 = 8...is that why it was repeated 8 times?)
>
> Questions:
> Does it seem likely that with only 20 total users (and most likely no more then
> 10 of them accessing the app concurrently) we would hit a "no free worker"
> problem?
>
> Could the scarcity of memory/space on the HP server box contribute to this
> problem?
>
> If anyone has a decent understanding of this, could you please shed some light
> on this?
>
> Thanks!
> Janet
>
> _________________________________________________________________________
>
> For help in using, subscribing, and unsubscribing to the discussion
> forums, please go to: http://www.netdynamics.com/support/visitdevfor.html
>
> For dire need help, email: [EMAIL PROTECTED]
_________________________________________________________________________
For help in using, subscribing, and unsubscribing to the discussion
forums, please go to: http://www.netdynamics.com/support/visitdevfor.html
For dire need help, email: [EMAIL PROTECTED]