Typo in last patch, this one compiles fine

2012/9/6 Łukasz Mierzwa <[email protected]>:
> Would this patch fix that issue?
>
> 2012/9/6 Łukasz Mierzwa <[email protected]>:
>> I was under the impresion that this is a bug in the way --idle is checking 
>> for
>> idleness. It should check if there are any requests running currently before
>> stopping all workers, right now it only checks if there was no new requests 
>> in
>> last --idle seconds.
>> Looking at the code I only see timestamp checks, so it seems that (if I'm
>> right) You should add check that iterates all workes and checks if any of 
>> them
>> is busy.
>>
>> 2012/9/6 Roberto De Ioris <[email protected]>:
>>>
>>> Il giorno 06/set/2012, alle ore 09:48, Marcin Deranek 
>>> <[email protected]> ha scritto:
>>>
>>>> Hi,
>>>>
>>>> Recently I've been playing with cheap mode and idle timeout (uwsgi
>>>> 1.2.3). The way I would expect it to work would be that idle workers
>>>> are cheaped after <idle> seconds of inactivity (if idle timeout was 
>>>> specified).
>>>> This seems to be not the case ATM. Is this expected behaviour ?
>>>> It's even worse: if request takes more than <idle> seconds worker gets
>>>> cheaped before request gets completed (stats server indicates worker as
>>>> busy just before it gets cheaped) eg.
>>>>
>>>> uwsgi --http-socket :5000 --remap-modifier 5:0 -M --cheaper 1 --idle 20
>>>> --stats /tmp/stats.sock -p 4 --psgi test.psgi
>>>>
>>>> PSGI app 0 (/tmp/test.psgi) loaded in 0 seconds at 0xb473db0 (interpreter 
>>>> 0xb2ea7d0)
>>>> *** uWSGI is running in multiple interpreter mode ***
>>>> spawned uWSGI master process (pid: 4570)
>>>> spawned uWSGI worker 1 (pid: 4571, cores: 1)
>>>> *** Stats server enabled on /tmp/stats.sock fd: 15 ***
>>>> spawned uWSGI worker 2 (pid: 4951, cores: 1)
>>>> workers have been inactive for more than 20 seconds (1346916693-1346916672)
>>>> cheap mode enabled: waiting for socket connection...
>>>>
>>>> After issuing request worker 1 is "busy" and worker 2 is "idle". After 20s
>>>> all workers are cheaped.
>>>> This seems to be the problem with idle option as having this:
>>>>
>>>> uwsgi --http-socket :5000 --remap-modifier 5:0 -M --idle 20
>>>> --stats /tmp/stats.sock -p 2 --psgi /tmp/test.psgi
>>>>
>>>> produces the very same result. Initially both workers get "idle" status.
>>>> Request comes and one of them becomes "busy". After 20s both get cheaped.
>>>> Regards,
>>>>
>>>
>>> --cheaper is different from --cheap, and the 'standard' way is combining 
>>> --cheap and --idle, while
>>> --cheaper expect its algorithm to get rid of idle workers. (so --cheaper + 
>>> --idle is a bit messy as they overlap)
>>>
>>> --idle <n> simply destroy ALL of the workers while the whole instance is 
>>> inactive. This is normally higher than the harakiri value
>>> to avoid instances to be killed while a request is running (but that should 
>>> be avoidable in the new infrastructure where teh master has access to the 
>>> whole cores memory).
>>>
>>> If you want to kill single workers after inactivity, just use the --cheaper 
>>> option and tune it for your specific needs (via --cheaper-step and 
>>> --cheaper-overload)
>>>
>>> Interesting topics (even if mainly 1.3-related) about 'adaptive process 
>>> spawning'
>>>
>>> http://projects.unbit.it/uwsgi/ticket/83
>>> http://projects.unbit.it/uwsgi/ticket/150
>>>
>>>
>>>
>>> --
>>> Roberto De Ioris
>>> http://unbit.it
>>> JID: [email protected]
>>>
>>> _______________________________________________
>>> uWSGI mailing list
>>> [email protected]
>>> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>>
>>
>>
>> --
>> Łukasz Mierzwa
>
>
>
> --
> Łukasz Mierzwa



-- 
Łukasz Mierzwa

Attachment: idle_check_fix.diff
Description: Binary data

_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to