Server Specifications (OpenInsight 32-Bit)
At 03 MAR 2010 03:16:20PM Mark Glicksman wrote:
Are there any recommended server specs for running multiple oengines (at least 10) to service a web application? It appears that the engines chew up lots of CPU time but not very much memory.
At 05 MAR 2010 07:48AM Jared Bratu wrote:
When ordering a server these are some guidelines to keep in mind.
LinearHash is very I/O intensive. Generally small, continuous reads/writes. A good raid controller with SAS/SSD will be the first step in performance. A raid controller with a battery backup cache will help too.
The engines will consume memory as a direct result of your programs. If your programs don't allocate large string sets then the engines won't use a lot of memory.
Same goes for CPU time. A dual processor multi-core system can help balance the load if the oengines are using a lot of CPU usage. Again, directly related to your application code.
Since you did mention your existing code is using a lot of CPU time there may be optimizations to your code loops that could cut back on this. For example, the speed of operators vs and Locate operators on huge strings is considerable.
Windows 2008 x64 will do nicely as the OS.
Please let me know if you have any additional questions.
At 05 MAR 2010 11:31AM Mark Glicksman wrote:
Thanks, Jared. We ran a test with several people trying to hit the website simultaneously. Admittedly, our server currently is not well suited to this purpose, which is why we are trying to determine the most important requirements for a new server.
When we got above 4 web users, the system slowed down to a crawl. Each user seemed to be consuming about 25% of the CPU, so above 4, it went to 100% and stayed there. The system eserver.cfg is set up for 10 simultaneous engines devoted to oecgi2.
It makes sense to go to server 2008 64 bit and dual or quad multi-core. Is there anything else we should be considering?
At 05 MAR 2010 02:07PM Jared Bratu wrote:
Are you using the Universal Driver Linear Hash service? If not, then there will be multi-user conflicts.
It might be worth trying to profile the application by monitor the time between loops. Perhaps there is a bottleneck rebuilding/updating indexes that needs to be worked around.
Do you have a GUI version - how does it compare with 4 users?
At 05 MAR 2010 04:47PM Mark Glicksman wrote:
Jared, the server is currently running Universal Driver lh3srvc.exe
It doesn't seem to be a problem of what the application is doing so much as it is related simply to how many users are logged on.
I don't understand the question: "Do you have a GUI version - how does it compare with 4 users?" Could you please explain.
Thanks again.
m.
At 08 MAR 2010 08:17AM Jared Bratu wrote:
Is your application AJAX enabled? That would explain why 4 users simply being at a web page would cause the constant CPU usage. It is possible the page performing AJAX calls in the background.
A GUI version would be a form designed in the form designer used from within windows as a native application, not a web browser. Often apps that are migrated to the web will have the original windows form and then a web version of the screen to perform the same tasks. If the same processes are on each screen and the windows form has the same CPU load then It would indicate an issue with the processes behind the form/setup/or someone other process common between the windows form and web versions.
At 08 MAR 2010 02:59PM Mark Glicksman wrote:
No Ajax and no GUI versions of forms in this application. Everything is coded using R-Basic.
At 09 MAR 2010 05:38PM Jared Bratu wrote:
If the browsers are idle do the OECGI2 programs continue to run at constant CPU usage?
At 10 MAR 2010 09:54AM Mark Glicksman wrote:
No, the CPU usage peaks when running a task and then goes down.
At 10 MAR 2010 11:08AM Jared Bratu wrote:
Sprezzatura recently posted a message regarding the speed of string manipulation. Based on our conversation you may find it helpful to review.
http://www.sprezzatura.com/blog/2010/03/to-malloc-or-not-to-malloc-that-is.html