Re: max_execution_time - fpm setup with nginx
| From: | Amod Pandey | Date: | Fri, 04 Jan 2013 17:09:01 +0000 |
| Subject: | Re: max_execution_time - fpm setup with nginx | ||
| References: | 1 2 3 4 5 6 | Groups: | php.install |
| Request: | Send a blank email to php-install+get-20234@lists.php.net to get a copy of this message | ||
In any case it should stop in max 30 seconds, or a minute or 5 minutes, how
much ever time any operation spends!! But it never stops! It there
something which I am really not getting here?
On Fri, Jan 4, 2013 at 10:30 PM, Ferenc Kovacs <tyra3l@gmail.com> wrote:
> maybe this can help to understand: from the php's execution time point of
> view, sleep(5) is seen as a(n almost) zero cost operation.
> so if you have 30 secs execution time limit set, calling sleep(5);
> wouldn't reduce the time left by 5 seconds, but only some microseconds, so
> you would still have almost 30 seconds left to go.
> more on that topic:
>
> http://en.wikipedia.org/wiki/Time_(Unix)#User_Time_vs_System_Time
>
>
> On Fri, Jan 4, 2013 at 5:48 PM, Amod Pandey <amodpandey@gmail.com> wrote:
>
>> But it should stop at while ( I assume, else this setting is useless )?
>> But it does not stop. It runs indefinitely unless I kill it !!
>>
>>
>> On Fri, Jan 4, 2013 at 10:15 PM, Ferenc Kovacs <tyra3l@gmail.com> wrote:
>>
>>> your code can run more than 30 seconds because (as I mentioned before
>>> and linked you to the manual page) external calls including(sleep) doesn't
>>> counted into the execution time of set_time_limit.
>>>
>>>
>>>
>>> On Fri, Jan 4, 2013 at 5:38 PM, Amod Pandey <amodpandey@gmail.com>wrote:
>>>
>>>> This is my code. And it continues to run. It should have stopped after
>>>> completion of the while loop.
>>>>
>>>> php v 5.3.13
>>>>
>>>> <?php
>>>> while(true) {
>>>> $file = fopen("test.txt","w");
>>>> $d=date('H:i:s');
>>>> echo fwrite($file,"$d");
>>>> fclose($file);
>>>> sleep(5);
>>>> }
>>>> ?>
>>>>
>>>>
>>>> On Fri, Jan 4, 2013 at 9:51 PM, Ferenc Kovacs <tyra3l@gmail.com> wrote:
>>>>
>>>>> hi,
>>>>>
>>>>> http://php.net/set_time_limit
>>>>> see the note:
>>>>> "The set_time_limit() function and the configuration directive
>>>>> max_execution_time only affect the execution time of the script itself. Any
>>>>> time spent on activity that happens outside the execution of the script
>>>>> such as system calls using system(), stream operations, database queries,
>>>>> etc. is not included when determining the maximum time that the script has
>>>>> been running. This is not true on Windows where the measured time is
>>>>> real."
>>>>> which means that your script can took more than 30 seconds before the
>>>>> limit of max_execution_time kicks in.
>>>>> request_terminate_timeout on the other hand doesn't care about what
>>>>> does your script doing, it will terminate the script after the set amount
>>>>> of time.
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jan 4, 2013 at 4:09 PM, Amod Pandey <amodpandey@gmail.com>wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have configured max_execution_time = 30 in php.ini. There is no
>>>>>> place it is altered.
>>>>>>
>>>>>> We are running php-fpm with nginx.
>>>>>>
>>>>>> If request_terminate_timeout is NOT set in the php-fpm then the
>>>>>> script does not stop!! Even though the browser times out with 504. If I set
>>>>>> request_terminate_timeout the php process timesout at the specified time. I
>>>>>> was assuming the php script will timeout at 30 seconds.
>>>>>>
>>>>>> Is this expected or anything wrong?
>>>>>>
>>>>>> --
>>>>>> Amod
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Ferenc Kovács
>>>>> @Tyr43l - http://tyrael.hu
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Amod
>>>>
>>>
>>>
>>>
>>> --
>>> Ferenc Kovács
>>> @Tyr43l - http://tyrael.hu
>>>
>>
>>
>>
>> --
>> Amod
>>
>
>
>
> --
> Ferenc Kovács
> @Tyr43l - http://tyrael.hu
>
--
Amod