Sign up on the Revelation Software website to have access to the most current content, and to be able to ask questions and get answers from the Revelation community

At 21 APR 2005 03:28:46PM Wilhelm Schmitt wrote:

I am looking for anyone who would like to share experience (or references) in working OI with clusters of servers on a WAN.

What criteria have to be taken into account?

What are the software / licensing issues related?

We have an application with a server (HP570 Win2000Srvr 1GB RAM) running Apache, OECGI, OI and JOI. During peak demand the server is sometimes slowing down too much. We would like to develop a scheme of clustered servers, with load balancing among them, to guarantee an adequate response time also during hours of intense demand.

Regards

Wilhelm


At 21 APR 2005 03:38PM support@sprezzatura.com wrote:

What level of hits are you concerned about? We have clients using our products with 2,000,000+ database hits a day who report no problems.

support@sprezzatura.com

The Sprezzatura Group Web Site

World Leaders in all things RevSoft


At 22 APR 2005 05:20AM support@sprezzatura.com wrote:

In addition, you'll need to elaborate further on what your setup is, and how you want these balanced. Plus, what else is this server used for, and what else passes through this.

It could just be a matter of splitting the system up so files are just on different boxes, and therefore share the load.

Where's the slowdown, on the application, on the server, in OI, JOI, Apache, NT Service (which you need to buy, if you don't have one), the entire box? What's bandwith? User amounts? Data transfer?

support@sprezzatura.com

The Sprezzatura Group Web Site

World Leaders in all things RevSoft


At 22 APR 2005 06:49PM Wilhelm Schmitt wrote:

Sprezz,

The main server is a HP570 1GB RAM 4CPU running Windows 2000 Server and APache2+ as web server. HDs are with RAID5. This server hosts also NT Service 2.1, OI, JOI and executes dynamic OEngines.

Total daily hits on the web server come close to 1,000,000. Out of these requests there are some 200,000 write operations to LH files, around 1,000 reports (produced as zipped XML file and assembled at the client into PDF for viewing) and some 50,000 selection processes (for popups and online lists). Reports may vary dramatically from 1 page to 250 pages, same with selection processes and write operations.

There is another server (Server2) with 2 CPUs, connected to the shared disks of Server1, that takes over some of the workload, executing also dynamic engines.

Bandwidth is not a problem. To the outside we have 2MBit, internally LAN switching at 100MBit.

One of the problems is that 60% of operations occur during 3 hours (between 11:30 and 14:30). During this time, the server gets very busy returning sometimes response times of 30s, when the same request, at a less turbulent time of the day requires only 3ms.

There are 350 users with 500 licences.

If we increase the amount of servers, we would like to redirect incoming requests, to be processed at the server with less usage at a given moment, balancing both, server/disk processing and incoming requests - preferrably only through 1 IP.

Regards

Wilhelm


At 25 APR 2005 01:35PM Matt Sorrell wrote:

Are any of the reports "standard"? By this, I mean are all they doing is running the same report each day against previous day's data?

You could possibly schedule some of the reports to be generated during dead times and make them available to the users that way. This would save server resources during peak hours.

msorrel@greyhound.com

Grey </QUOTE> ---- === At 26 APR 2005 09:24AM Bob Carten wrote: === <QUOTE>Wilhelm I have tried something like this: Requests come to the main server A "task manager" writes the request to a table, then returns a meta-refresh to the client. A separate engine on a different server polls the task file, launched a dynamic engine for each task, have that engine run the task and write the response to a flat file or a varbinary field in an OI record. The refresh call from the client comes back to the main server, which returns a status or the data. Bob </QUOTE> ---- === At 26 APR 2005 10:08AM Matt Sorrell wrote: === <QUOTE>Oooooh, that's sneaky. I like that. I did something similar with the job scheduler that runs on a post-index hook in ARev. Request written to a table, and then a job that processes the requests in the table every post-index hook. Great minds think alike? *grin* msorrel@greyhound.com [url=http://www.greyhound.com]Greyhound Lines, Inc


At 27 APR 2005 02:50PM Wilhelm Schmitt wrote:

Matt,

yes, there are reports that are "standard". Especially the monthly reports slow down a lot.

We are going to put a scheduler that executes at night and lets the user pick up the report in the morning.

Wilhelm


At 27 APR 2005 03:56PM Wilhelm Schmitt wrote:

Bob,

thanks for your help. We will test the taskmanager with dynamic engines.

Based on one of your previous ideas (some while ago), we are testing a slightly different type of taskmanager on only 1 server:

PROBLEM:

Engines (in our application) have to have all files attached, before starting processing. The image file (.DBT) speeds up a lot, but still puts a heavy overhead on each engine to be opened.

(BTW: Does anyone know how to stuff the DBT into OS cache under Win200Srv?).

APPROACH:

APP=main application with all the data files and dictionaries and 100 permanent engines for further processing.

APP2=empty application with the task manager handling incoming requests through dynamic engines.

For incoming requests, we created an empty application APP2 with no files (thus, with practically no overhead on loading DBT) to be the task manager. The routine (TSKMNGR) looks for an available engine (through a phantom lock on appname:port, like 'APP30001') and passes the request to the available engine running in APP. The engine is already open, i.e. no overhead will be waisted for opening DBT. In case no engine was available, a new permanent engine will be fired up.

The performance improvement on the client and server is IMPRESSIVE. (much less read & processing overhead per engine)

ISSUES:

However we have 2 issues that we have not been able to track down:

1) When the engine in APP2 (=TSKMNGR) sends the request to the engine in APP (=APP30001) in certain functions (don't know why) will not get executed. When entering directly from the main application (APP), with the same request, all functions get executed. Something still gets mixed up in the middle of the process, and we can't find it.

2) We have not yet been able to read the value for CPU usage from the OS, in order to implement load balancing this way. (How can we programmatically acces the "EngineUsage" parameter?)

Any ideas will be higly appreciated.

Regards

Wilhelm


At 28 APR 2005 09:51AM Bob Carten wrote:

At 28 APR 2005 10:51AM dsig _at_ sigafoos.org wrote:

Bob,

one thing he asked about was Engine Usage. Is there a way to get this from OE?

thanks


At 29 APR 2005 03:04PM Wilhelm Schmitt wrote:

Just for the record:

for CPU monitoring this tool seems to have all we need

www.coolmon.org

-Wilhelm-


At 11 MAY 2005 07:33PM Wilhelm Schmitt wrote:

1) When the engine in APP2 sends the request to the engine in APP in certain functions …

Found the error: a COMMON value got in the way.

2) We have not yet been able to read the value for CPU usage from the OS

"CoolMon" allows an excellent remote OS monitoring.

(How can we programmatically acces the "EngineUsage" parameter?)

This is still pending on our list. Any suggestions?

Regards

Wilhelm

View this thread on the forum...

  • third_party_content/community/commentary/forums_nonworks/6284a08644ea02b585256fea006b0149.txt
  • Last modified: 2023/12/28 07:40
  • by 127.0.0.1