Damien, thank you for you response. Unfortunately they don't fall into an
easily identifiable category. It depends on user parameters and database
content. I am looking for more generic solution that I can apply on
application level to "protect" every request from monopolizing the system.
"Damien" <> wrote in message
news: oups.com...
> Michael Per wrote:
>> Does anybody know of a best way to limit system resources (CPU/memory)
>> for
>> each particular request? In my application based on user's parameters a
>> request may take considerable amount of time and system resources. This
>> kind
>> of request may take 100% CPU and make all other requests in the queue
>> halt.
>> While I don't want this request to simply time out, I'd like to limit
>> somehow the resources each request can allocate so one request does not
>> halt
>> the whole application.
>>
>> Any suggestions are greatly appreciated.
>>
>> - Mike
>
> If the type of requests which cause 100% CPU fall into a simple, easily
> identifiable category (e.g. requests from one page), then you may be
> able to achieve your aim through the Async request model. This, in
> combination with a low priority thread to perform the actual work would
> lower your impact on other requests.
>
> Course, then we get to how you manage your additional threads. Three
> options:
>
> 1) Only 1 thread, deals with all processor intensive tasks in series.
> Has the effect of serialising all such requests.
> 2) Launch one thread per request. Doesn't scale well when there are a
> thousand requests.
> 3) Build a thread pool. Most complex option.
>
|