• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Listen Queue Size Setting & Concurrent Request Handling
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Listen Queue Size Setting & Concurrent Request Handling


  • Subject: Re: Listen Queue Size Setting & Concurrent Request Handling
  • From: Chuck Hill <email@hidden>
  • Date: Wed, 15 Feb 2006 14:23:42 -0800

On Feb 15, 2006, at 1:32 PM, Eric Stewart wrote:

By WOWorkerThread settings you are referring to "Minimum Adaptor
threads" and "Maximum Adaptor threads" settings under application
settings?

Yes. These could use better names. Check out the Help tab in monitor for useful, if not really well organized, information:

Minimum Adaptor Threads
The starting number of WorkerThreads the WODefaultAdaptor should create to handle incoming requests. This setting applies to the WODefaultAdaptor for WebObjects 5.x. -WOWorkerThreadCountMin. Defaults to 16.


Maximum Adaptor Threads
The maximum number of WorkerThreads that the default adaptor should create to handle incoming requests. As the load on an application instance grows, the WODefaultAdaptor will create new WorkerThreads to handle requests. This setting only applies to the WODefaultAdaptor for WebObjects 5.x. Setting this to -1 will let the number of WorkerThreads grow indefinitely. -WOWorkerThreadCountMax. Defaults to 256.


Chuck


- Eric

On 2/15/06, Chuck Hill <email@hidden> wrote:
Hi Eric,

On Feb 15, 2006, at 10:48 AM, Eric Stewart wrote:

I'm a little confused about the "Listen Queue Size" setting in the
application setting.

It is not exactly transparent. :-) My understanding (which may be flawed):

If I understand this right. This is the total
number of requests that can wait on an instance to accept and process.


I think it is the number of requests that an instance can queue up
waiting for an available WOWorkerThread.  Out of the box, these start
at 16 and increase to 256.


Lets say I set the queue size to 1. So if you have 2 instances of an
app running and you get 4 requests simultaneously, then two will be
processed immediate, and one will sit in the first instances queue and
the other will sit in the second instances queue.


No.  Two will be processed immediately and two will be in
WOWorkerThreads, waiting for their turn to run.  The listen queue
will be empty.


Now if 6 requests come in simultaneously, then 2 will be processed, 2
will be queued and 2 will be rejectes (if the number of retries is set
to 0). Is this a correct assumption of how this setting works?


No, not with the default setting for the number of WOWorkerThread.
All will go into WOWorkerThreads and the listen queue will still be
empty.


If so, then wouldn't enabling concurrent request handling almost
eliminate the usefulness of the Listen Queue setting?

All it means is that more WOWorkerThreads will be active at the same
time.

My understanding of when this is useful:
1) Change the defaults for WOWorkerThread.  Very few (none?) WO apps
can recover from 256 simultaneous requests before the woadaptor hangs
up on the instance or the user clicks Stop or refresh or something
(see Broken pipe messages in the log).  Probably a min and max of 4
and 8 is a good place to start.

2) Drop the Listen Queue size down to some thing small, like 2.  That
way the total requests that can built up before being rejected is 10.

This prevents overloading an instance to the point where it can't
recover meaningfully for the user.  With direct actions, it spreads
the load.  With component actions it produces "your session has
expired" messages for the users and tells you that you are way, way
late on upgrading the hardware or at least creating more instances
(assuming you have space capacity in CPU/memory/IO).


Chuck

--
Coming in 2006 - an introduction to web applications using WebObjects
and Xcode     http://www.global-village.net/wointro

Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems. http://www.global-village.net/products/ practical_webobjects








--
Coming in 2006 - an introduction to web applications using WebObjects and Xcode http://www.global-village.net/wointro


Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects




_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Listen Queue Size Setting & Concurrent Request Handling
      • From: Eric Stewart <email@hidden>
References: 
 >Listen Queue Size Setting & Concurrent Request Handling (From: Eric Stewart <email@hidden>)
 >Re: Listen Queue Size Setting & Concurrent Request Handling (From: Chuck Hill <email@hidden>)
 >Re: Listen Queue Size Setting & Concurrent Request Handling (From: Eric Stewart <email@hidden>)

  • Prev by Date: Most efficient character parsing.
  • Next by Date: Re: Flattening attributes
  • Previous by thread: Re: Listen Queue Size Setting & Concurrent Request Handling
  • Next by thread: Re: Listen Queue Size Setting & Concurrent Request Handling
  • Index(es):
    • Date
    • Thread