Low request time

Igal, the nginx sounds interesting. Would you think it would be worth
looking into replacing IIS with nginx on the Win 2003 machine that will
eventually be the Lucee server? Any caveats I should know before
attempting it?On Tuesday, February 10, 2015 at 12:04:45 PM UTC-5, Igal wrote:

that’s what I thought.

my bet is on BonCode. Bilal did a great job there, but I think that there
are some issues involved, and if I have to put my money on whether there’s
an issue with IIS or with BonCode then I go with BonCode since there is a
much smaller user base with it.

on a somewhat personal note, I switched my servers from IIS to nginx a
couple of years ago, and never looked back. they’ve been running much more
smoothly and efficiently.

Igal Sapir
Lucee Core Developer
Lucee.org http://lucee.org/
On 2/10/2015 5:02 AM, Martin Schaible wrote:

what happens if you hit Tomcat directly, i.e. on port 8080 (or whatever

port it’s listening)… do you get the same issue?

It behaves like it should, the first GET, which is the important one, is
on every site around 200 ms.

Now we could say, that IIS is the troublemaker, right? Not really, IIS is
configured identically on all servers. All PHP and .NET sites respond very
fast.

Do i have a communication problem between Tomcat and IIS? BonCode?

You received this message because you are subscribed to the Google Groups
“Lucee” group.
To unsubscribe from this group and stop receiving emails from it, send an
email to lucee+un...@googlegroups.com <javascript:>.
To post to this group, send email to lu...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/lucee/9598e7db-d835-4e3c-a367-8f6728152eee%40googlegroups.com
https://groups.google.com/d/msgid/lucee/9598e7db-d835-4e3c-a367-8f6728152eee%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

Is there a way for you to run the connection monitoring on a specific

empty .cfm page on both ports.
e.g.:
www.mysite.com/empty.cfm
I would also suggest you experiment with two different values for your
polling

i did that a minute ago. a new site without anything else, except a
speed.cfm which spits out some text only. Unfortunately the minimum poll
time is 30 seconds given by the PRTG monitoring software. I check if i can
overrule somewhere.

==> You can set the connectionTimeout to a higher value, e.g. 40000

Also I can create an EC2 instance on Amazon for us to play with if that is
easier to recreate your server?

You’re right on the one hand. Nginx is sure the best Webserver actually. But it also have some missing features like no .htaccess support, etc.

If you’re running a server with several e-commerce sites where you are managing everthing this is fine. If you’re offering a hosting service where customers are able to do things on their own (it’s not only the webserver, it is also the managing of FTP, Mail and DNS Settings, etc.) with a control panel, then nginx is not the best solution for that.

And exactly this is the point where we don’t want and can’t move to nginx or linux. But the performance problem is still here. And it’s just fascinating, because we can’t see why only the .cfm stuff is slow. static files, asp and php - no problem.

Michi----------------------------------------
Von: “Igal @ Lucee.org” <@Igal>
Gesendet: Donnerstag, 12. Februar 2015 17:09
An: lucee@googlegroups.com
Betreff: Re: [Lucee] Low request time
from my personal experience – running several e-commerce sites in production on Win 2008R2 – nginx is superb! my websites perform much better than with IIS, and I’ve measured everything when it comes to performance, both on the server and on the client sides.

once you understand the config file it’s extremely simple to use as well, and it’s easy to copy & paste config snippets that others share with you (as opposed to be given a list of 10 steps that you much follow to the letter in the GUI).

there’s lots of documentation about it, and the nginx mailing list is very responsive.

an extra benefit is that it’s cross platform, so if at some point you decide to move from Windows to *nix systems, there’s one less thing to worry about.

Igal Sapir
Lucee Core Developer

On 2/12/2015 8:03 AM, Mark Drew wrote:
What do you use IIS for apart from serving static content and passing requests off to Lucee? Mark Drew
develop . deploy . deliver http://charliemikedelta.com
On 12 Feb 2015, at 15:42, Jonathan Brookins <@Jonathan_Brookins> wrote:
Igal, the nginx sounds interesting. Would you think it would be worth looking into replacing IIS with nginx on the Win 2003 machine that will eventually be the Lucee server? Any caveats I should know before attempting it?


You received this message because you are subscribed to the Google Groups “Lucee” group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+unsubscribe@googlegroups.com.
To post to this group, send email to lucee@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lucee/0A76A98E-2F63-4447-BF7A-7FC2577BD5AC%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


You received this message because you are subscribed to the Google Groups “Lucee” group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+unsubscribe@googlegroups.com.
To post to this group, send email to lucee@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lucee/54DCCFFF.8020601%40lucee.org.
For more options, visit https://groups.google.com/d/optout.

Anhang 1 (5.01 KB)

but IIS doesn’t support .htaccess either, does it?

With Helicon Ape 100% support of .htaccess. Loving it…

Normally the IIS overhead should be minimal after warm-up, really not
noticeable at all even when compared to tomcat direct access.

Yes, i like that very much :wink:

Is there a way for you to run the connection monitoring on a specific empty

.cfm page on both ports.
e.g.:
www.mysite.com/empty.cfm
I would also suggest you experiment with two different values for your
polling

i did that a minute ago. a new site without anything else, except a
speed.cfm which spits out some text only. Unfortunately the minimum poll
time is 30 seconds given by the PRTG monitoring software. I check if i can
overrule somewhere.

I would also check whether all available AJP connections have been used on
the tomcat side (the host manager on tomcat can show you the status)

Max threads: 1000 Current thread count: 10
Actual situation:
https://lh3.googleusercontent.com/-YUeMsOCeHKs/VNzvn_rbXaI/AAAAAAAAA-0/WLkHFLvIpVI/s1600/tomcat.png

| If you contact me via the project contact list we can see whether I can
replicate your setup.
I started to document “my way” to setup everything @ Lucee Wiki. In terms
of IIS setup and tuning everything is in “packages”, mostly scripts, made
for our Software Distribution Software. I can extract the
appcmd-statements, which needs some time.

Thanks!

Also I can create an EC2 instance on Amazon for us to play with if that is

easier to recreate your server?

Good idea, but i’m really a virgin in this, never used

What do you think about a remote session, that you can have a close view
to my box?

I will have get access to ports and deploy debug builds to analyse. That is
normally easier on Amazon.
If you contact me via email I can give you access information.
You only need RDP client and internet access.

BilalOn Thursday, February 12, 2015 at 2:00:51 PM UTC-5, Martin Schaible wrote:

Hello

New day, new game :slight_smile:

I have build a clone of my development server with some difference:

  • A copy of the website, using Mura with some pages is installed, which is
    the object to measure
  • Tomcat acts as the HTTP-Server. I created a virtual host for the website
  • Tomcat serves also IIS via a reverse proxy

In term ofs the first GET, which is the CFML-Template, it makes no real
difference.
Both variants are delivering a nice response time: About 300 ms ±10%
I can hit the F5 for 100 times and more, the site behaves all the time very
nice and no hickups at all.

Also the “white page” disappeared, which is typically if the website will
be called for the first time.
Or in other words: I can enter the url, hit enter and the site is
immediately loaded.

The same site on my regular development server runs like described in the
previous posts.
If i call the site via Lucee’s admin port, the response times are not
different like times measured on the new testing server.

Now i have the proof, that only the site which is connected via Boncode to
Tomcat suffers from high response time and non constant response times.

Additionally all four sites are monitored with PRTG. Each site will be
polled every 30 seconds.
With this short poll rate, nothing can ever fall asleep. Except maybe the
guy in front of the screen.
The measurements do confirm, what i experienced by refreshing the pages
manually using Firebug for measurements.
PRTG does measure a bit different. The charts are showing the complete load
times, not only the first GET, which i watched.

Notes:

  • Both servers are having the same virtual hardware specs, they are running
    on a esxi-server.
  • All relevant software (OS, IIS) are equally configured.

Tomcat as HTTP-Server

https://lh6.googleusercontent.com/--qNu6XDuJ9s/VN5liSWiKJI/AAAAAAAAA_c/G5Po1iL77Kk/s1600/tomcat-http-server.png

IIS as Proxy for Tomcat

https://lh3.googleusercontent.com/-_f37QI862CI/VN5l3Qj_zYI/AAAAAAAAA_k/H57VzqOyp28/s1600/tomcat-iis-proxy.png

Original: Tomcat with Boncode and IIS

https://lh6.googleusercontent.com/-aazS-nBMO-Q/VN5mSbSOr5I/AAAAAAAAA_0/ePkBZjYX25s/s1600/tomcat-boncode-IIS.png

Thanks!

very nice Martin! thank you for sharing this with us.

what version of Tomcat is that?

does this include only dynamic (.cfm) requests or also static resources
like .js, .css, and images? Tomcat by itself seems much faster than
IIS, I wonder if that would still be true when static resources are
fetched. can you test that and let us know?

if that’s the case, then fronting Tomcat with a web server is no longer
needed for the sake of performance (older versions of Tomcat definitely
required it). though there are still other valid reasons to front it
with a web server.

Igal Sapir
Lucee Core Developer
Lucee.org http://lucee.org/On 2/13/2015 1:03 PM, Martin Schaible wrote:

Hello

New day, new game :slight_smile:

I have build a clone of my development server with some difference:

  • A copy of the website, using Mura with some pages is installed,
    which is the object to measure
  • Tomcat acts as the HTTP-Server. I created a virtual host for the website
  • Tomcat serves also IIS via a reverse proxy

In term ofs the first GET, which is the CFML-Template, it makes no
real difference.
Both variants are delivering a nice response time: About 300 ms ±10%
I can hit the F5 for 100 times and more, the site behaves all the time
very nice and no hickups at all.

Also the “white page” disappeared, which is typically if the website
will be called for the first time.
Or in other words: I can enter the url, hit enter and the site is
immediately loaded.

The same site on my regular development server runs like described in
the previous posts.
If i call the site via Lucee’s admin port, the response times are not
different like times measured on the new testing server.

Now i have the proof, that only the site which is connected via
Boncode to Tomcat suffers from high response time and non constant
response times.

Additionally all four sites are monitored with PRTG. Each site will be
polled every 30 seconds.
With this short poll rate, nothing can ever fall asleep. Except maybe
the guy in front of the screen.
The measurements do confirm, what i experienced by refreshing the
pages manually using Firebug for measurements.
PRTG does measure a bit different. The charts are showing the complete
load times, not only the first GET, which i watched.

Notes:

  • Both servers are having the same virtual hardware specs, they are
    running on a esxi-server.
  • All relevant software (OS, IIS) are equally configured.

Tomcat as HTTP-Server

https://lh6.googleusercontent.com/--qNu6XDuJ9s/VN5liSWiKJI/AAAAAAAAA_c/G5Po1iL77Kk/s1600/tomcat-http-server.png

IIS as Proxy for Tomcat

https://lh3.googleusercontent.com/-_f37QI862CI/VN5l3Qj_zYI/AAAAAAAAA_k/H57VzqOyp28/s1600/tomcat-iis-proxy.png

Original: Tomcat with Boncode and IIS

https://lh6.googleusercontent.com/-aazS-nBMO-Q/VN5mSbSOr5I/AAAAAAAAA_0/ePkBZjYX25s/s1600/tomcat-boncode-IIS.png

Thanks!


You received this message because you are subscribed to the Google
Groups “Lucee” group.
To unsubscribe from this group and stop receiving emails from it, send
an email to lucee+unsubscribe@googlegroups.com
mailto:lucee+unsubscribe@googlegroups.com.
To post to this group, send email to lucee@googlegroups.com
mailto:lucee@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/lucee/e94e9475-daa2-4c70-b790-de0ce958e04c%40googlegroups.com
https://groups.google.com/d/msgid/lucee/e94e9475-daa2-4c70-b790-de0ce958e04c%40googlegroups.com?utm_medium=email&utm_source=footer.
For more options, visit https://groups.google.com/d/optout.

Tomcat by itself seems much faster than IIS

I don’t think so.
then I guess misread the charts.

 I wonder if that would still be true when static resources are
fetched.  can you test that and let us know?

I’m not sure, what this has to do with the main issue.
it doesn’t have anything to do with your current issue. it’s something
that was very true in the past, and may or may not be true anymore. I
thought that since you have the whole setup ready it might be easy to test.On 2/14/2015 3:59 AM, Martin Schaible wrote:

what version of Tomcat is that?

Version 8.0.18

does this include only dynamic (.cfm) requests or also static
resources like .js, .css, and images?

The times measured contains loading the complete page. Measuring with
Firebug i only watched the first GET, which is the CFML-template

Tomcat by itself seems much faster than IIS

I don’t think so.

 I wonder if that would still be true when static resources are
fetched.  can you test that and let us know?

I’m not sure, what this has to do with the main issue. I prefer to
concentrate the resources i have for the main issue, if you don’t mind.

 though there are still other valid reasons to front it with a web
server.

Indeed. A hosting environment on the windows platform world relies
very often that an IIS is around :slight_smile: Simple example: The control panel
allows to manage domains and websites based on IIS. Therefore cfml
needs to passed through IIS to Tomcat .


You received this message because you are subscribed to the Google
Groups “Lucee” group.
To unsubscribe from this group and stop receiving emails from it, send
an email to lucee+unsubscribe@googlegroups.com
mailto:lucee+unsubscribe@googlegroups.com.
To post to this group, send email to lucee@googlegroups.com
mailto:lucee@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/lucee/548b43b8-30f6-4823-9021-93345d683dd8%40googlegroups.com
https://groups.google.com/d/msgid/lucee/548b43b8-30f6-4823-9021-93345d683dd8%40googlegroups.com?utm_medium=email&utm_source=footer.
For more options, visit https://groups.google.com/d/optout.

what version of Tomcat is that?

Version 8.0.18

does this include only dynamic (.cfm) requests or also static resources

like .js, .css, and images?

The times measured contains loading the complete page. Measuring with
Firebug i only watched the first GET, which is the CFML-template

Tomcat by itself seems much faster than IIS

I don’t think so.

I wonder if that would still be true when static resources are fetched.

can you test that and let us know?

I’m not sure, what this has to do with the main issue. I prefer to
concentrate the resources i have for the main issue, if you don’t mind.

though there are still other valid reasons to front it with a web server.

Indeed. A hosting environment on the windows platform world relies very
often that an IIS is around :slight_smile: Simple example: The control panel allows to
manage domains and websites based on IIS. Therefore cfml needs to passed
through IIS to Tomcat .

I think, we found something:

Bilal ask me to switch off mod_cfml testwise.

  • I added my test website as a virtual host to Tomcat.
  • I removed mod_cfml from server.xml and finally told Boncode to not use
    mod_cfml.

After the needed restart of Tomcat, my website is one the same speed as i
documented last week, if i would use Tomcat as the HTTP server. No delay
between Tomcat ↔ BonCode ↔ IIS.

Great news so far.

But what is wrong with mod_cfml? As we know: mod_cfml ist involved one time
only per site at the time the website is warming up. It looks like, that
mod_cfml doesn’t like my envrionment :wink: Is mod_cfml active at every
request? If yes, why only in my environment?

Any idea, how to continue to analyze this thing are welcome :slight_smile:

Cheers

Martin