TTFB, Apache, Seaside Performance Problem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

TTFB, Apache, Seaside Performance Problem

Sabine Manaa
Hi,

I need the help of the community.

I am not succeding in making our app faster.
The problem is the Time to first Byte (TTFB). It is always more than one second which is much to much.
We reduced the problem to a problem between apache and pharo/seaside.

For this, I have a test application which only renders "hello World". So I am sure it is not my code, my database, my css, my js, my ssl.... :-)

I optimized and learned a lot for my app, but it did not solve the TTFB problem, which costs 1 additional sec for each click of the user which is inaceptable.

Please follow this tests to see the problem:

===>>> Test 1: test.html without Pharo/seaside
https://tools.keycdn.com/performance?url=http://app.spesenfuchs.de/test.html
TTFB in Frankfurt below 10 ms -> this proves that the server and configuration is fast.

===>>> Test 2: hello world, simple seaside page
https://tools.keycdn.com/performance?url=app.spesenfuchs.de/hello
TTFB in Frankfurt more than 1 second! -> this proves that it is not my application :-) it is only a hello world seaside page...

===>>> Test 3: my login page
https://tools.keycdn.com/performance?url=app.spesenfuchs.de/rka
TTFB in Frankfurt more than 1 second!

(alternative: enter the urls into https://gtmetrix.com/)

In Apache, we enabled tracing of the rewrite and this tells me (i assume), that apache makes the rewrite very fast, within the same millisecond :-)
[Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692] mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - - [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] init rewrite engine with requested uri /hello
[Thu Jan 05 12:14:35.243400 2017] [rewrite:trace3] [pid 1288:tid 1692] mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - - [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] applying pattern '^/rka(.*)$' to uri '/hello'
[Thu Jan 05 12:14:35.243400 2017] [rewrite:trace3] [pid 1288:tid 1692] mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - - [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] applying pattern '^/hello(.*)$' to uri '/hello'
[Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692] mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - - [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] rewrite '/hello' -> 'http://localhost:8085/HelloWorld/'
[Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692] mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - - [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] forcing proxy-throughput with http://localhost:8085/HelloWorld/
[Thu Jan 05 12:14:35.243400 2017] [rewrite:trace1] [pid 1288:tid 1692] mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - - [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] go-ahead with proxy request proxy:http://localhost:8085/HelloWorld/ [OK]

So, I assume that there is problem between Apache and Seaside....

My questiond are:  
what can I do to find the bottleneck?
what is the reason that is so slow?
your help is very appreciated because I have run out of ideas what it could be and I was investigating it several days now.
 
Concerning the system:
The server is at Amazon ec2 windows Server 2009 R2 SP1
The Apache version is 2.4.23
The configuration of the apache is like this (as described in the seaside book http://book.seaside.st/book/advanced/deployment/deployment-apache/configure-apache)

<VirtualHost *:80>
      ProxyPreserveHost On
      ServerName app.spesenfuchs.de
      RewriteEngine On
<Directory "C:\xampp\htdocs">
        Require all granted
</Directory>
     DocumentRoot "C:\xampp\htdocs"
     RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f

    RewriteRule ^/rka(.*)$ http://localhost:8085/RKA/$1 [proxy,last]
   RewriteRule ^/hello(.*)$ http://localhost:8085/HelloWorld/$1 [proxy,last]
</VirtualHost>
Reply | Threaded
Open this post in threaded view
|

Re: TTFB, Apache, Seaside Performance Problem

NorbertHartl
It is hard to guess. Can you try changing the rewrite rules to

RewriteRule ^/rka(.*)$ http://127.0.0.1:8085/RKA/$1 [proxy,last]
RewriteRule ^/hello(.*)$ http://127.0.0.1:8085/HelloWorld/$1 [proxy,last]

It is "127.0.0.1" instead of "localhost"

It is trial and error anyway ;)

Norbert

> Am 05.01.2017 um 12:10 schrieb Sabine Manaa <[hidden email]>:
>
> Hi,
>
> I need the help of the community.
>
> I am not succeding in making our app faster.
> The problem is the Time to first Byte (TTFB). It is always more than one
> second which is much to much.
> We reduced the problem to a *problem between apache and pharo/seaside*.
>
> For this, I have a test application which only renders "hello World". So I
> am sure it is not my code, my database, my css, my js, my ssl.... :-)
>
> I optimized and learned a lot for my app, but it did not solve the TTFB
> problem, which costs 1 additional sec for each click of the user which is
> inaceptable.
>
> Please follow this tests to see the problem:
>
> ===>>> Test 1: test.html without Pharo/seaside
> https://tools.keycdn.com/performance?url=http://app.spesenfuchs.de/test.html
> TTFB in Frankfurt below 10 ms -> this proves that the server and
> configuration is fast.
>
> ===>>> Test 2: hello world, simple seaside page
> https://tools.keycdn.com/performance?url=app.spesenfuchs.de/hello
> TTFB in Frankfurt more than 1 second! -> this proves that it is not my
> application :-) it is only a hello world seaside page...
>
> ===>>> Test 3: my login page
> https://tools.keycdn.com/performance?url=app.spesenfuchs.de/rka
> TTFB in Frankfurt more than 1 second!
>
> (alternative: enter the urls into https://gtmetrix.com/)
>
> In Apache, we enabled tracing of the rewrite and this tells me (i assume),
> that apache makes the rewrite very fast, within the same millisecond :-)
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] init rewrite engine
> with requested uri /hello
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace3] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] applying pattern
> '^/rka(.*)$' to uri '/hello'
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace3] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] applying pattern
> '^/hello(.*)$' to uri '/hello'
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] rewrite '/hello' ->
> 'http://localhost:8085/HelloWorld/'
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] forcing
> proxy-throughput with http://localhost:8085/HelloWorld/
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace1] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] go-ahead with proxy
> request proxy:http://localhost:8085/HelloWorld/ [OK]
>
> So, I assume that there is problem between Apache and Seaside....
>
> My questiond are:  
> what can I do to find the bottleneck?
> what is the reason that is so slow?
> your help is very appreciated because I have run out of ideas what it could
> be and I was investigating it several days now.
>
> Concerning the system:
> The server is at Amazon ec2 windows Server 2009 R2 SP1
> The Apache version is 2.4.23
> The configuration of the apache is like this (as described in the seaside
> book
> http://book.seaside.st/book/advanced/deployment/deployment-apache/configure-apache)
>
> <VirtualHost *:80>
>      ProxyPreserveHost On
>      ServerName app.spesenfuchs.de
>      RewriteEngine On
> <Directory "C:\xampp\htdocs">
>        Require all granted
> </Directory>
>     DocumentRoot "C:\xampp\htdocs"
>     RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
>
>    RewriteRule ^/rka(.*)$ http://localhost:8085/RKA/$1 [proxy,last]
>   RewriteRule ^/hello(.*)$ http://localhost:8085/HelloWorld/$1 [proxy,last]
> </VirtualHost>
>
>
>
> --
> View this message in context: http://forum.world.st/TTFB-Apache-Seaside-Performance-Problem-tp4928839.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>


Reply | Threaded
Open this post in threaded view
|

Re: TTFB, Apache, Seaside Performance Problem

Sabine Manaa
Norbert, its crazy - THAT WAS IT
Thank you very much!

I can't wait with the beer till esug, send me your address and I send you a bottle of wine :-)) very happy!

2017-01-05 12:25 GMT+01:00 NorbertHartl [via Smalltalk] <[hidden email]>:
It is hard to guess. Can you try changing the rewrite rules to

RewriteRule ^/rka(.*)$ http://127.0.0.1:8085/RKA/$1 [proxy,last]
RewriteRule ^/hello(.*)$ http://127.0.0.1:8085/HelloWorld/$1 [proxy,last]

It is "127.0.0.1" instead of "localhost"

It is trial and error anyway ;)

Norbert

> Am 05.01.2017 um 12:10 schrieb Sabine Manaa <[hidden email]>:
>
> Hi,
>
> I need the help of the community.
>
> I am not succeding in making our app faster.
> The problem is the Time to first Byte (TTFB). It is always more than one
> second which is much to much.
> We reduced the problem to a *problem between apache and pharo/seaside*.
>
> For this, I have a test application which only renders "hello World". So I

> am sure it is not my code, my database, my css, my js, my ssl.... :-)
>
> I optimized and learned a lot for my app, but it did not solve the TTFB
> problem, which costs 1 additional sec for each click of the user which is
> inaceptable.
>
> Please follow this tests to see the problem:
>
> ===>>> Test 1: test.html without Pharo/seaside
> https://tools.keycdn.com/performance?url=http://app.spesenfuchs.de/test.html
> TTFB in Frankfurt below 10 ms -> this proves that the server and
> configuration is fast.
>
> ===>>> Test 2: hello world, simple seaside page
> https://tools.keycdn.com/performance?url=app.spesenfuchs.de/hello
> TTFB in Frankfurt more than 1 second! -> this proves that it is not my
> application :-) it is only a hello world seaside page...
>
> ===>>> Test 3: my login page
> https://tools.keycdn.com/performance?url=app.spesenfuchs.de/rka
> TTFB in Frankfurt more than 1 second!
>
> (alternative: enter the urls into https://gtmetrix.com/)
>
> In Apache, we enabled tracing of the rewrite and this tells me (i assume),
> that apache makes the rewrite very fast, within the same millisecond :-)
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] init rewrite engine
> with requested uri /hello
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace3] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] applying pattern
> '^/rka(.*)$' to uri '/hello'
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace3] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] applying pattern
> '^/hello(.*)$' to uri '/hello'
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] rewrite '/hello' ->
> 'http://localhost:8085/HelloWorld/'
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace2] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] forcing
> proxy-throughput with http://localhost:8085/HelloWorld/
> [Thu Jan 05 12:14:35.243400 2017] [rewrite:trace1] [pid 1288:tid 1692]
> mod_rewrite.c(477): [client 91.89.219.232:52272] 91.89.219.232 - -
> [app.spesenfuchs.de/sid#66c848][rid#20bc4c8/initial] go-ahead with proxy
> request proxy:http://localhost:8085/HelloWorld/ [OK]
>
> So, I assume that there is problem between Apache and Seaside....
>
> My questiond are:  
> what can I do to find the bottleneck?
> what is the reason that is so slow?
> your help is very appreciated because I have run out of ideas what it could
> be and I was investigating it several days now.
>
> Concerning the system:
> The server is at Amazon ec2 windows Server 2009 R2 SP1
> The Apache version is 2.4.23
> The configuration of the apache is like this (as described in the seaside
> book
> http://book.seaside.st/book/advanced/deployment/deployment-apache/configure-apache)
>
> <VirtualHost *:80>
>      ProxyPreserveHost On
>      ServerName app.spesenfuchs.de
>      RewriteEngine On
> <Directory "C:\xampp\htdocs">
>        Require all granted
> </Directory>
>     DocumentRoot "C:\xampp\htdocs"
>     RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
>
>    RewriteRule ^/rka(.*)$ http://localhost:8085/RKA/$1 [proxy,last]
>   RewriteRule ^/hello(.*)$ http://localhost:8085/HelloWorld/$1 [proxy,last]
> </VirtualHost>
>
>
>
> --
> View this message in context: http://forum.world.st/TTFB-Apache-Seaside-Performance-Problem-tp4928839.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>





If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/TTFB-Apache-Seaside-Performance-Problem-tp4928839p4928840.html
To start a new topic under Pharo Smalltalk Users, email [hidden email]
To unsubscribe from TTFB, Apache, Seaside Performance Problem, click here.
NAML

Reply | Threaded
Open this post in threaded view
|

Re: TTFB, Apache, Seaside Performance Problem

HilaireFernandes
Hello,

I am all listening, learning and happy Norbert helps to fix this issue.

Best wishes of success.

Hilaire

Le 05/01/2017 à 12:43, Sabine Manaa a écrit :
> Norbert, its crazy - THAT WAS IT
> Thank you very much!
>
> I can't wait with the beer till esug, send me your address and I send
> you a bottle of wine :-)) very happy!
>

--
Dr. Geo
http://drgeo.eu