Re: 回复: PHP Performance/Scalability
| From: | Deepak Goel | Date: | Fri, 29 Oct 2021 08:20:53 +0000 |
| Subject: | Re: 回复: PHP Performance/Scalability | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-327803@lists.php.net to get a copy of this message | ||
Hello Jose
1. We are using Apache FPM
2. TTFB for both the apps will need some work from my side
3. Sorry, I am a bit confused, what do you mean by *execution time*?
4. Machine Configuration:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 48 bits virtual
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Model name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
(Please note, the cpu utilisation never goes beyond 10-15% even if the load
is increased to 6000 users from 1500 users)
Thank You.
Deepak
"The greatness of a nation can be judged by the way its animals are treated
- Mahatma Gandhi"
+91 73500 12833
deicool@gmail.com
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 Fri, Oct 29, 2021 at 12:37 PM Jose Nobile <jose.nobile@gmail.com> wrote:
> Hello Deepak,
>
> 26 msecs -> 38 reqs/sec/thread -> If a CPU with 16 threads, then 615
> reqs/sec
> You are reaching 150 reqs/sec, it can mean:
> 1. You have 4 threads CPU (2 Core * 2 Threads or 4 Core * 1 Thread)
> 2. If you have 16 threads, but the HTTP -> PHP Connection is taking about
> 80 msecs
>
> Questions:
>
> 1. How many CPU Threads does the system have?
> 2. How are you connecting HTTP to PHP? Apache mod_php, Apache/NGINX FPM,
> Apache mod_lsapi or Litespeed webserver?
>
> The jsp execution by cli was not successful, check this:
> https://stackoverflow.com/a/23550396 and
> https://docs.oracle.com/cd/E19146-01/821-0790/abxcc/index.html
>
> If not possible execute java from cli, the closest thing is to measure the
> TTFB (Time to first byte):
>
> A one time step:
> echo "time_namelookup: %{time_namelookup}\n
> time_connect: %{time_connect}\n
> time_appconnect: %{time_appconnect}\n
> time_pretransfer: %{time_pretransfer}\n
> time_redirect: %{time_redirect}\n
> time_starttransfer: %{time_starttransfer}\n
> ----------\n
> time_total: %{time_total}\n" > curl-format.txt
>
> you should see:
> cat curl-format.txt
> time_namelookup: %{time_namelookup}\n
> time_connect: %{time_connect}\n
> time_appconnect: %{time_appconnect}\n
> time_pretransfer: %{time_pretransfer}\n
> time_redirect: %{time_redirect}\n
> time_starttransfer: %{time_starttransfer}\n
> ----------\n
> time_total: %{time_total}\n
>
> Then,
>
> curl -4 -sH 'Accept-encoding: br,gzip' -w "@curl-format.txt" -o /dev/null
> -s https://localhost/yourpathtojava
>
> My output from a PHP application connected via Litespeed Enterprise:
>
> time_namelookup: 0.060
> time_connect: 0.060
> time_appconnect: 0.125
> time_pretransfer: 0.125
> time_redirect: 0.000
> time_starttransfer: 0.125
> ----------
> time_total: 0.126
>
> It means the TTFB is 126-60 = 65 msecs is the time between the HTTP
> Request is sent and the response from the webapp starts answering (returns
> the first byte)
>
> Then, we could assume 65 msecs is the execution time itself from the
> webapp (PHP or Java)
>
> It would be the nearest measurement if the app cannot run from cli. BUT,
> If I run the same script which from the HTTP interface give me a 65 msecs
> TTFB:
>
> time php index.php > /dev/null
>
> real 0m0.029s
> user 0m0.017s
> sys 0m0.012s
>
> It means the HTTP interface is taking about 36 msecs (HTTP decode + TLS
> decryption) "HTTP Time"
>
> Test the TTFB for both apps, calculate the "HTTP time" for PHP, then the
> execution time for the Java App would be TTFB - "HTTP time" (Calculated
> from the PHP Execution).
>
> 3. What is the TTFB for both apps?
> 4. What is the execution time for both apps?
>
>
> Regards,
> José Nobile
>
>
> On Fri, Oct 29, 2021 at 1:28 AM Deepak Goel <deicool@gmail.com> wrote:
>
>> Hello
>>
>> For php (time php login.php):
>>
>> real 0m0.026s
>> user 0m0.012s
>> sys 0m0.014s
>>
>> For Java (time java login.jsp):
>>
>> Error: Could not find or load main class login.jsp
>> Caused by: java.lang.ClassNotFoundException: login.jsp
>>
>> Deepak
>> "The greatness of a nation can be judged by the way its animals are
>> treated - Mahatma Gandhi"
>>
>> +91 73500 12833
>> deicool@gmail.com
>>
>> 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 Thu, Oct 28, 2021 at 11:46 PM Deepak Goel <deicool@gmail.com> wrote:
>>
>>> Hi
>>>
>>> Let me check it out. Will get back.
>>>
>>> Also, has anyone deployed PHP and it has scaled vertically to a higher
>>> number of users? Can you please post the results and the machine
>>> configuration details? It will help.
>>>
>>> Thanks.
>>>
>>> On Thu, 28 Oct 2021, 23:39 Jose Nobile, <jose.nobile@gmail.com> wrote:
>>>
>>>> Hi,
>>>> I have read all the threads, I'm updated!
>>>>
>>>> The waits that I've mentioned before are a signal that can prevent you
>>>> from using the available CPU. For example, what ifis the PHP has to read
>>>> an external HTTP resource that needs to fetch? It will be in the wait time
>>>> (network IO), rather than be speculative, test it.
>>>>
>>>> You should execute the exact same code when executing from cli than the
>>>> HTTP interface, just to isolate the issue and some tests.
>>>>
>>>>
>>>> Regards,
>>>> José Nobile
>>>>
>>>>
>>>> On Thu, Oct 28, 2021 at 12:43 PM Deepak Goel <deicool@gmail.com> wrote:
>>>>
>>>>> Hello Jose
>>>>>
>>>>> 1. Got it! I will try this tom afternoon (IST) and pass on the results.
>>>>>
>>>>> 2. However most of the php scripts are called from the web and not the
>>>>> command line. Also not all the methods are called. Typically, 1 out of 10
>>>>> methods are called. (I am unsure how this would compare with the cli time
>>>>> command). I guess we would have to divide by 10.
>>>>>
>>>>> 3. Also there is plenty of CPU available when I run a performance test
>>>>> on PHP. Only 10-15% is consumed. This would indicate that there is some
>>>>> synchronization happening in the PHP Infrastructure which is preventing the
>>>>> full usage of CPU (I don't see this in Java).
>>>>>
>>>>> 4. If I run a Java test, the result scales upto 6000+ users. For PHP,
>>>>> everything remains the same (code, cpu, db) but it scales only to 1500
>>>>> users. There is no IO wait. And CPU/Memory are utilized only to 15%.
>>>>>
>>>>> Thanks!
>>>>>
>>>>> Deepak
>>>>> "The greatness of a nation can be judged by the way its animals are
>>>>> treated - Mahatma Gandhi"
>>>>>
>>>>> +91 73500 12833
>>>>> deicool@gmail.com
>>>>>
>>>>> 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 Thu, Oct 28, 2021 at 9:05 PM Jose Nobile <jose.nobile@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hello Deepak,
>>>>>>
>>>>>> Test it using cli
>>>>>>
>>>>>> > time php yourscript.php
>>>>>>
>>>>>> What are the results for the time command?
>>>>>>
>>>>>> For example:
>>>>>> time /opt/alt/php80/usr/bin/php test.php
>>>>>> 1
>>>>>> real 0m0.010s
>>>>>> user 0m0.006s
>>>>>> sys 0m0.003s
>>>>>>
>>>>>> It means each request is going to take 6 msecs from Linux user CPU +
>>>>>> 3 msecs from Linux system CPU + 1 msec from IO or other waits.
>>>>>>
>>>>>> You should compare this to the Java applications testing in the same
>>>>>> way, cli, no other process should be running (just the kernel and sys
>>>>>> processes).
>>>>>>
>>>>>> In this example, each request can be completed in 9 msecs from CPU +
>>>>>> 1 msec from waits, at CPU level, it can handle 100 requests/sec per CPU
>>>>>> thread, if it is a 16 threads CPU, it could handle 1600 reqs/sec
>>>>>>
>>>>>> The HTTP interface can add some CPU, also the TLS (Elliptic curve are
>>>>>> super fast, or the ciphers for TLS 1.3), it got under 1 msec when the HTTP
>>>>>> interface is LSAPI from Litespeed Enterprise, which better than PHP-FPM,
>>>>>> but first focus in the program itself, testing from cli, each individual
>>>>>> requests optimizing at all levels, a kernel updated, NVMe for storage, DDR4
>>>>>> ECC 2933MHz, just loading the required PHP extensions, profiling SQL
>>>>>> queries to be as efficient as possible anything from 1 msec or more can
>>>>>> represent hundreds of potential more reqs/sec.
>>>>>>
>>>>>> What are the results of the PHP and the Java program executed from
>>>>>> cli in a dedicated system?
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> José Nobile
>>>>>>
>>>>>>
>>>>>> On Thu, Oct 28, 2021 at 8:28 AM Deepak Goel <deicool@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hello Shiplu
>>>>>>>
>>>>>>> The resources mentioned by you are not a bottleneck. There is
>>>>>>> plenty of it available.
>>>>>>>
>>>>>>> Deepak
>>>>>>> "The greatness of a nation can be judged by the way its animals
>>>>>>> are
>>>>>>> treated - Mahatma Gandhi"
>>>>>>>
>>>>>>> +91 73500 12833
>>>>>>> deicool@gmail.com
>>>>>>>
>>>>>>> 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 Thu, Oct 28, 2021 at 2:15 PM shiplu <shiplu.net@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hello Deepak,
>>>>>>>>
>>>>>>>> If the code itself has a performance problem then it would show up
>>>>>>>> even when the concurrency is 1. But it shows the issue when
>>>>>>>> concurrency
>>>>>>>> hits 1500. From 1 to 1500 there is the number when the response
>>>>>>>> time starts
>>>>>>>> to increase. That's where the problem arises. You mentioned it
>>>>>>>> worked when
>>>>>>>> increased the number of VMs. Check the system resource statistics
>>>>>>>> when you
>>>>>>>> are requesting to multiple VMs and a single VM.
>>>>>>>>
>>>>>>>> It can happen that a metric is very high when you are using a
>>>>>>>> single VM solution with 1500 concurrent requests. And the same
>>>>>>>> metric would
>>>>>>>> be very low in horizontal scaling setup. Some of these metrics can
>>>>>>>> be
>>>>>>>> 1. CPU
>>>>>>>> 2. Memory
>>>>>>>> 3. IOWait time
>>>>>>>> 4. Request Queue size
>>>>>>>> 5. Open file descriptors
>>>>>>>> This is a metric you need to find out yourself. Once you find the
>>>>>>>> metric you'll know horizontal scaling made it possible to
>>>>>>>> lower it.. Then
>>>>>>>> for vertical scaling, you just need to increase that.
>>>>>>>>
>>>>>>>>
>>>>>>>> ―
>>>>>>>> Shiplu.Mokadd.im
>>>>>>>> Senior Unix Hacker
>>>>>>>>
>>>>>>>> *Innovation distinguishes between follower and leader*
>>>>>>>> — Steve Jobs
>>>>>>>>
>>>>>>>>
>>>>>>>> *An expert is a person who has made all the mistakes that can be
>>>>>>>> made in a very narrow field.*— Niels Bohr
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Oct 28, 2021 at 9:35 AM Deepak Goel
>>>>>>>> <deicool@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> We are using CodeIgniter 3.1.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Deepak
>>>>>>>>> "The greatness of a nation can be judged by the way its
>>>>>>>>> animals
>>>>>>>>> are treated - Mahatma Gandhi"
>>>>>>>>>
>>>>>>>>> +91 73500 12833
>>>>>>>>> deicool@gmail.com
>>>>>>>>>
>>>>>>>>> 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 Thu, Oct 28, 2021 at 1:03 PM Torsten Rosenberger <
>>>>>>>>> rosenberger@taoweb.at> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> >
>>>>>>>>>> > Some thoughts:
>>>>>>>>>> >
>>>>>>>>>> > 1. We are using a simple SQL Query in the code
>>>>>>>>>> > $data =
>>>>>>>>>> > $this->db->select('user_id,email')
>>>>>>>>>> >
>>>>>>>>>> > ->where(array('email' =>
>>>>>>>>>> $email_address))
>>>>>>>>>> >
>>>>>>>>>> > ->order_by('user_id', 'DESC')
>>>>>>>>>> > ->limit(1)
>>>>>>>>>> > ->get('users')
>>>>>>>>>> > ->row_array();
>>>>>>>>>> looks like you are using laraval
>>>>>>>>>>
>>>>>>>>>> so i would start with $start =
>>>>>>>>>> microtime(true);
>>>>>>>>>>
>>>>>>>>>> run you db code and the microtime(true) - $start;
>>>>>>>>>>
>>>>>>>>>> and
>>>>>>>>>> compare this when you rewrite the code with native mysqli
>>>>>>>>>> functions
>>>>>>>>>> like
>>>>>>>>>> mysqli_query
>>>>>>>>>>
>>>>>>>>>> I know this is work but so you can get the feeling which
>>>>>>>>>> one is faster.
>>>>>>>>>> In small application you use frameworks but there could
>>>>>>>>>> be cases where a normal function ist much faster as writing
>>>>>>>>>> a
>>>>>>>>>> class
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > 2. We are using mysqli
>>>>>>>>>> >
>>>>>>>>>> > 3. The SQL Query takes time in msec. And the Database
>>>>>>>>>> > is not a
>>>>>>>>>> > performance bottleneck
>>>>>>>>>> That could be OK for the database. But as in point 1. so
>>>>>>>>>> the query
>>>>>>>>>> could be fast but the layer above could be slow.
>>>>>>>>>>
>>>>>>>>>> I thing when you
>>>>>>>>>> compare the code sections with microtime you will find the
>>>>>>>>>> part
>>>>>>>>>> eating
>>>>>>>>>> the time in the script.
>>>>>>>>>> >
>>>>>>>>>> > 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"
>>>>>>>>>> >
>>>>>>>>>> > +91 73500 12833
>>>>>>>>>> > deicool@gmail.com
>>>>>>>>>> >
>>>>>>>>>> > 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 Thu, Oct 28, 2021 at 11:23 AM Torsten Rosenberger
>>>>>>>>>> > <
>>>>>>>>>> > rosenberger@taoweb.at> 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@gmail.com>;
>>>>>>>>>> > > > 发送时间: 2021年10月26日(星期二)
>>>>>>>>>> > > > 晚上11:15
>>>>>>>>>> > > > 收件人:
>>>>>>>>>> > > > "Alex"<al-php@none.at>;
>>>>>>>>>> > > > 抄送: "php-general General
>>>>>>>>>> > > > List"<php-general@lists.php.net
>>>>>>>>>> >;"Deepak
>>>>>>>>>> > > > Sharma"<deepak@techxp.tech>;
>>>>>>>>>> > > > 主题: 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@gmail.com
>>>>>>>>>> > > >
>>>>>>>>>> > > > 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@none.at>
>>>>>>>>>> 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@gmail.com
>>>>>>>>>> > > > > > <mailto:deicool@gmail.com>
>>>>>>>>>> > > > > >
>>>>>>>>>> > > > > > 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>
>>>>>>>>>> > > > >
>>>>>>>>>> > >
>>>>>>>>>>
>>>>>>>>>>