http.conf settings and performance

Use this board to ask questions or have discussions with other Rich Displays users.
Post Reply
kevinh
Profound User
Posts: 43
Joined: Tue May 19, 2009 4:31 pm
First Name: Kevin
Last Name: Hunter
Company Name: Integrated Corporate Solutions
Phone: 2567608239
Address 1: 501 S Wood Ave
City: Florence
State / Province: Alabama
Zip / Postal Code: 35630
Country: United States
Location: Florence Alabama
Contact:

http.conf settings and performance

Post by kevinh »

As some of our clients have ramped up the number of users signing on we have had some complaints of response time issues. Knowing this can be due to a number of issues, including hardware limitations, I just wanted to know if any of the Apache server configuration settings should be examined that are set in the http.conf file? Once such concern is the ThreadsPerChild set to 40 by default. We have clients that have twice to five times that many concurrent users signed and just wanted to know if this number would be a concern for that many users? Any other settings to be concerned about as user count increases?
Scott Klement
Experienced User
Posts: 2711
Joined: Wed Aug 01, 2012 8:58 am
First Name: Scott
Last Name: Klement
Company Name: Profound Logic
City: Milwaukee
State / Province: Wisconsin

Re: http.conf settings and performance

Post by Scott Klement »

This is a tricky one, because setting ThreadsPerChild too high will actually hurt performance. The throughput is actually higher/faster when an HTTP request has to 'wait in line' to be handled. But, of course, the latency can be very high if it has to wait too long. So it's a "Balancing" act... you don't want to have too many ThreadsPerChild, it'll kill throughput. But you don't want to have too few, because it'll hurt latency.

I would start by using a network request debugger on the PCs that are slow. If the latency is high, then I would try increasing the ThreadsPerChild. I would be conservative about it, though. Maybe double it to 80, and see if that makes things better or worse. If it improves things, then I would try 120, and see if that makes things better or worse... change it little by little until you figure out where the "sweet spot" is.

Keep in mind that HTTP connections do not stay active all the time like 5250 sessions do. So if you have 2000 users signed on to Profound UI at once, probably only about 100-200 are actually doing anything at any given time. The only time there's an active connection is when the user is waiting for the screen to load. As I'm sure you know, most of the time in an interactive application, the computer is waiting for the user. In the case of 5250, when it's waiting for the user, it isn't using one of the child threads at all.

A more important factor than ThreadsPerChild is the amount of memory available to the HTTP server subsystem. Make sure you have enough memory and that it's allocated to the memory pools for QHTTPSVR. (If running Genie, you'll need adequate memory in both QHTTPSVR and your interactive subsystem as well.)

One of the most common performance mistakes is that people don't allocate enough memory to the HTTP server subsystem. folks in the IBM i community are used to giving the lion's share of their memory to the interactive subsystem, and when they switch to using Profound UI, it doesn't always occur to them that they now need just as much memory for HTTP as they do for interactive jobs.

Good Luck!
Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests