Re: Performance / AB issue?
| From: | Lars Nielsen | Date: | Fri, 11 May 2012 10:31:33 +0000 |
| Subject: | Re: Performance / AB issue? | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-317845@lists.php.net to get a copy of this message | ||
> On Fri, May 11, 2012 at 9:53 AM, Camilo Sperberg <unreal4u@gmail.com>
> wrote:
>>
>>
>> Sent from my iPhone 5 Beta [Confidential use only]
>>
>> On 11 mei 2012, at 07:09, "Lars Nielsen" <lars@lfweb.dk> wrote:
>>
>>>
>>>>
>>>> On 10 mei 2012, at 23:26, Lars Nielsen wrote:
>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>> Sent from my iPhone 5 Beta [Confidential use only]
>>>>>>
>>>>>> On 10 mei 2012, at 17:40, Matijn Woudt <tijnema@gmail.com> wrote:
>>>>>>
>>>>>>> On Thu, May 10, 2012 at 9:04 AM, Lars Nielsen <lars@lfweb.dk>
>>>>>>> wrote:
>>>>>>>> Hi there,
>>>>>>>>
>>>>>>>> I have apache-2.22/php 5.3.10 set up on a dedicated server but I
>>>>>>>> have
>>>>>>>> a
>>>>>>>> strange issue.
>>>>>>>>
>>>>>>>> I have made a Drupal 7 site with a mysql db.
>>>>>>>>
>>>>>>>> If I stress-test the site with : ab -c 1 -n 150
>>>>>>>> http://sitename/
>>>>>>>> it
>>>>>>>> works
>>>>>>>> fine.
>>>>>>>> If I stress-test the site with : ab -c 2 -n 20
>>>>>>>>http://sitename/ it
>>>>>>>> kills
>>>>>>>> apache.
>>>>>>>> If I stress-test the site with : ab -c 50 -n 1500
>>>>>>>> http://sitename/static.html it
>>>>>>>> works fine.
>>>>>>>>
>>>>>>>> I have set apache's errorlog to debug. But it writes nothing,
>>>>>>>> either
>>>>>>>> in
>>>>>>>> the virtualhost or in the server-file.
>>>>>>>>
>>>>>>>> Can anyone give a hint about what can be wrong?
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> What do you mean with 'kills apache', does it terminate
>>>>>>> apache or
>>>>>>> does
>>>>>>> apache hang (eg. 100% cpu), and respond normal after the stress
>>>>>>> test
>>>>>>> is over?
>>>>>>> And what is the index of your site? A php script, or..? Do you have
>>>>>>> ModRewrite redirects etc?
>>>>>>>
>>>>>>> - Matijn
>>>>>>>
>>>>>>> --
>>>>>>> PHP General Mailing List (http://www.php.net/)
>>>>>>> To unsubscribe, visit:
>>>>>>> http://www.php.net/unsub.php
>>>>>>>
>>>>>>
>>>>>> Can you visit the site normally? Try less verbosing in apache, that
>>>>>> is
>>>>>> pretty intensive, but as you can benchmark a static file well (with
>>>>>> moderate high settings), i assume it is some configuration problem
>>>>>> in
>>>>>> drupal.
>>>>>>
>>>>>> Greeting.
>>>>>> --
>>>>>> PHP General Mailing List (http://www.php.net/)
>>>>>> To unsubscribe, visit:
>>>>>> http://www.php.net/unsub.php
>>>>>>
>>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> I can visit the site normaly, but with 2-3 concurrent ab test it
>>>>> fails.
>>>>> seen from 'ps' and 'htop' it seems that both apache and
>>>>> mysql
>>>>> continues
>>>>> to
>>>>> run normaly but it doesnt respond.
>>>>>
>>>>> If i run netstat -an after the test it shows this :
>>>>> Active Internet connections (servers and established)
>>>>> Proto Recv-Q Send-Q Local Address      Foreign Address
>>>>> Â State
>>>>> tcp     0    0 0.0.0.0:22     Â
>>>>> Â Â 0.0.0.0:*
>>>>> Â Â Â Â LISTEN
>>>>> tcp     0    0 127.0.0.1:25     Â
>>>>> Â 0.0.0.0:* Â
>>>>> Â Â Â LISTEN
>>>>> tcp     0    0 127.0.0.1:3306    Â
>>>>> Â 0.0.0.0:* Â
>>>>> Â Â Â LISTEN
>>>>> tcp     0    0 0.0.0.0:80     Â
>>>>> Â Â 0.0.0.0:*
>>>>> Â Â Â Â LISTEN
>>>>> tcp     1    0 x.x.x.x:80   Â
>>>>> Â x.x.x.x:39237 Â
>>>>> CLOSE_WAIT
>>>>> tcp     1    0 x.x.x.x:80   Â
>>>>> Â x.x.x.x:39236 Â
>>>>> Â CLOSE_WAIT
>>>>> tcp     0    0 x.x.x.x:22   Â
>>>>> Â x.x.x.x:47383 Â
>>>>> Â ESTABLISHED
>>>>> tcp     0    0 127.0.0.1:80     Â
>>>>> Â 127.0.0.1:34775
>>>>> ESTABLISHED
>>>>> tcp     1    0 x.x.x.x:80   Â
>>>>> Â x.x.x.x:39300 Â
>>>>> Â CLOSE_WAIT
>>>>> ESTABLISHED
>>>>> tcp     0    0 127.0.0.1:34775    Â
>>>>> 127.0.0.1:80
>>>>> ESTABLISHED
>>>>> tcp     0    0 x.x.x.x:80   Â
>>>>> Â x.x.x.x:39330 Â
>>>>> Â ESTABLISHED
>>>>> tcp6 Â Â Â 0 Â Â Â 0 :::22 Â Â Â Â Â Â Â
>>>>> Â Â :::*
>>>>> LISTEN
>>>>> tcp6 Â Â Â 0 Â Â Â 0 ::1:25 Â Â Â Â Â Â Â
>>>>> Â Â :::*
>>>>> LISTEN
>>>>>
>>>>> So it does seem like there should be room for new tcp connections?
>>>>>
>>>>> But if I restart apache then it works again... So I guess it is a
>>>>> apache/php configuration issue?
>>>>>
>>>>> --
>>>>> Med venlig hilsen / Best Regards
>>>>>
>>>>> LFWeb
>>>>> Lars Nielsen
>>>>> Thorsensvej 30
>>>>> 4800 Nykøbing Falster
>>>>> Tlf: +45 20 64 85 76
>>>>> email : lars@lfweb.dk
>>>>> www : http://www.lfweb.dk
>>>>>
>>>>>
>>>>> --
>>>>> PHP General Mailing List (http://www.php.net/)
>>>>> To unsubscribe, visit:
>>>>> http://www.php.net/unsub.php
>>>>>
>>>>
>>>> Have you tried benchmarking a really simple php page, such as
>>>>
>>>> <?php echo 'hello world'; ?>
>>>>
>>>> ?
>>>>
>>>> It that works, than it is definitely an issue in Drupal's
>>>> configuration
>>>> and not in PHP/Apache. Additionally, you could check what happens when
>>>> you
>>>> try to establish a session or make a database call to rule out those
>>>> as
>>>> well, just make really simple tests that you know wouldn't fail and
>>>> run ab
>>>> on them.
>>>>
>>>> Greetings.
>>>>
>>>>
>>>> --
>>>> PHP General Mailing List (http://www.php.net/)
>>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>
>>>>
>>> Thanks!
>>>
>>> Now I have made
>>> <?php
>>> Â echo "Hey from PHP!";
>>> ?>
>>>
>>> It runs fine from a little concurrency. But with "-c 5 -n 500" it fails
>>> after 308 requests!
>>>
>>>
>>>
>>> Best Regards / Med venlig hilsen
>>>
>>> LFWeb
>>> Lars Nielsen
>>>
>>>
>>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>
>> Have you tried benchmarking from localhost? Do you have any active
>> firewall? Selinux? Shorewall? Anything that could block a ddos attack?
>>
>
> A firewall is not the case here. He's testing with -c 2 and is getting
> errors, with -c 50 on a static file not. Also, blocking a DDOS attack
> at only 50 connections is way too low, so I don't think that would
> happen.
>
> - Matijn
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
Php is running as mod_php under an apache worker configuration.
Med venlig hilsen
LFWeb
Lars Nielsen