Re: 回复: PHP Performance/Scalability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Torsten

Some thoughts:

1. We are using a simple SQL Query in the code
   $data = "">                        ->where(array('email' => $email_address))
                        ->order_by('user_id', 'DESC')
                        ->limit(1)
                        ->get('users')
                        ->row_array();


2. We are using mysqli

3. The SQL Query takes time in msec. And the Database is not a performance bottleneck

4. We use mostly images with <img src="">
5. We have seen fpm outperform mod_php

6. The Java code accesses the same database (The database is on a seperate physical server). Also the queries are the same in Java as well PHP

7. I will try instrumenting the entire PHP code and see where the bottleneck is.

Deepak
"The greatness of a nation can be judged by the way its animals are treated - Mahatma Gandhi"


"Plant a Tree, Go Green"



On Thu, Oct 28, 2021 at 11:23 AM Torsten Rosenberger <rosenberger@xxxxxxxxx> wrote:
Hello Deepak

I think PHP-FPM had heavily reduce the concurrency of PHP.
> PHP should immediately implement a API like WSGI/ASGI in python. It
> is very simple but very useful.
>
> ------------------ 原始邮件 ------------------
> 发件人: "Deepak Goel" <deicool@xxxxxxxxx>;
> 发送时间: 2021年10月26日(星期二) 晚上11:15
> 收件人: "Alex"<al-php@xxxxxxx>;
> 抄送: "php-general General List"<php-general@xxxxxxxxxxxxx>;"Deepak
> Sharma"<deepak@xxxxxxxxxxx>;
> 主题: Re: PHP Performance/Scalability
>
> Hi
>
> The code is fairly simple. It contains a few images and a simple SQL
> query (The same code in Java gives superb performance). We have an
> Apache Web Server in front of php as of now. And I will try out this
> (https://github.com/spiral/roadrunner).

We are talking about a blackbox.
The code is simple ?

How long take's
the sql query ?
What do you use to access the database PDO or mysqli ?
Y
ou wrote java is faster. Your java code access the same database ?

You wrote a few images ?
Do you only show the images with <img src=""> or are you converting them for thumbnails etc.

A long time ago there was a great presentation from Rasmus about PHP
Performance.

So a simple query on my Server's with mod_php and mysql
takes  0.0001 to 0.0008 seconds. If the simple query takes 0.01 Second
which looks fast but php have to wait for the DB. So there you can
loose factor 100 in the req/sec.

Why are you using fpm and not the mod_php part in apache ?
OPcache is
active ?

There are a lot of parameters we don't know.

If you benchmark
your code with an easy microtime(true) call to see how long your script
takes.
If you store the data in a file when you run your benchmark you
can maybe see if a code part is waiting for the database or something
else.
So that the bottleneck ist not php.

So i would go through the code
with microtime() an look what takes long and then go deepter.

if the
code is heavy and the result dosen't change or a refresh after 5 min is
ok you can use the APCu cache or so on.

If your code is super fast an still slow requests then you have to
strace the apache process to see if there is something miss configured.


So as a PHP developer we cann't accept that Java is faster :)

BR/Torsten

> Thanks.
>
> Deepak
> "The greatness of a nation can be judged by the way its animals are
> treated - Mahatma Gandhi"
>
> +91 73500 12833
> deicool@xxxxxxxxx
>
> Facebook: https://www.facebook.com/deicool
> LinkedIn: www.linkedin.com/in/deicool
>
> "Plant a Tree, Go Green"
>
> Make In India : http://www.makeinindia.com/home
>
>
> On Tue, Oct 26, 2021 at 5:15 PM Alex <al-php@xxxxxxx> wrote:
> > Hi.
> >
> > On 26.10.21 11:53, Deepak Goel wrote:
> > > Hello
> > >
> > > I have a very simple PHP application which I develop on Apache-
> > Web-Server. However the application does
> > > not scale beyond 1500 concurrent users (150 requests/sec), even
> > though there is plenty of hardware
> > > available (CPU is getting utilized 15%, Memory is getting
> > utilized 15%).
> > >
> > > On a similar note, when I develop the same application in Java,
> > it scales to more than 6000 concurrent
> > > users (600 requests/sec) on the same hardware.
> > >
> > > Any pointers on how to address this scalability issue?
> >
> > The question is how "simple" is the PHP Code?
> > Maybe you can tune the Code or use another Server in front of PHP
> > FPM like haproxy, Caddy, nginx?
> > Maybe you can try to run https://github.com/spiral/roadrunner to
> > execute the PHP Code.
> >
> > Jm2c
> >
> > Regards
> > Alex
> >
> > > Thanks!
> > >
> > > Deepak
> > > "The greatness of a nation can be judged by the way its animals
> > are treated - Mahatma Gandhi"
> > >
> > > +91 73500 12833
> > > deicool@xxxxxxxxx <mailto:deicool@xxxxxxxxx>
> > >
> > > Facebook: https://www.facebook.com/deicool <
> > https://www.facebook.com/deicool>
> > > LinkedIn: www.linkedin.com/in/deicool <
> > http://www.linkedin.com/in/deicool>
> > >
> > > "Plant a Tree, Go Green"
> > >
> > > Make In India : http://www.makeinindia.com/home <
> > http://www.makeinindia.com/home>
> >


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux