Practical Pacific performance comparison with AppServer

Posted by dziugasj on 29-Apr-2015 06:19

Is it possible to compare Pacific and AppSever performance differences.

For example: I know that Development Pacific has 5 concurrent requests. I configure standard AppServer to have 5 agents (maxSrvrInstance=5). And then perform tests by running  specific business application with different approaches.

Is it reasonable to expect reliable results in such way ?

All Replies

Posted by David Cleary on 29-Apr-2015 15:48

Yes and no. When you start up a classic AppServer, you have 5 agent processes with 5 ABL sessions ready to go. When you start up a PAS for OpenEdge server in 11.5.0, you have a single agent process with no ABL sessions ready to go. These are created on demand. For 11.5.1, we now create 5 sessions at server startup. This was done because we were seeing poor performance in tests like these.

Dave

Posted by dziugasj on 30-Apr-2015 00:24

According to your post, then we could say that Pacific will perform worse at the beginning of load when all Pacific agent processes are taking time to start. But I have measured performance on constant load and Pacific performance in all times is worse. Also I have measured configuration with 1 AppServer agent (maxSrvrInstance=1) and 1 Pacific client process (maxConnectionsPerAgent=1), and the results are the same.

Posted by Frank Meulblok on 30-Apr-2015 04:13

Do you know where in the roundtrip the performance difference is ?

General areas that should be visible from the logs:

1. Communications between client and appserver for incoming requests and outgoing results (so between client & webserver for PAS, client & broker for classic)

2. Time between appserver acknowledging request and passing it to a worker session (Thread for PAS, agent for classic),

3. ABL code being run by the worker

4. Communications between workers & databases (ok, this one not be visible from logs immediately. But db statistics may show early indicators at least)

Also, I'm assuming this is an ABL client, or Java / .NET Open Client connecting to AppServer directly ?

If yes: For the 1st area in particular extra overhead *is* expected for PAS as that's all handled via HTML instead of via the native binary protocol classic AppServer uses. Converting/mapping between the 2 protocols takes time & resources.

To get an idea of how much the overhead is, set up access to the classic AppServer through the AIA. (AIA = AppServer Internet Adapter, performing the native to HTML  mapping above it it's only purpose.)

If instead you're going through SOAP or REST adapter: Those standards enforce HTML-based transport protocol. So for both classic AppServer and PAS, there is always a mapping from standard format & protocol to native format..

This thread is closed