Progress 9.1E Workgroup limited to 10mb connections?

kjohnsoncda

New Member
Hello all,

I have a test environment that I've mirrored our production system database, and I'm teaching myself/learning how to optimize our progress 9.1E workgroup database. This progress database is the backend for a financial software package that is used throughout our environment.

There is some serious vendor lock in, and upgrading the DB to 10.1x is not an option at this point.

A complaint frequently heard is that the "server is slow" when two or three users/network clients are running reports/queries against the system.
During these queries - Perfmon is showing less than 5% cpu utilisation, and disk queue counters are less than .03 on the database disk, or the BI disk. Buffer hits are at 99% during this time.
The server is twiddling it's thumbs.

The Test server is Server 2008 X64
Xeon 3050 @ 2.13 Ghz (dual core - no hyperthreading)
8 GB Ram
C: is Two intel X25 SSD drives in Raid 0 (Test System!)
D: is Revo Drive X2 PCI Express SSD.
Progress 9.1E Workgroup
gig Ethernet. Samve vlan as server - no routers in between client and server.

Client workstation Win7 X86 SP1:
Quad core i7 860 (4 cores - plus hyperthreading.)
4 GB Ram
C: is intel X25 80 GB drive. (this is where progress network client is installed.)
Gig Ethernet. Same vlan as server - so no routers in between.

Test database and logs are on the D:\ drive.
Running a test report directly on the server - results are back in 110 seconds. Server CPU's run up to 90% while report is running.
Running this same report from a network client connected over GB ethernet - results are back in ~250 seconds.
While the report is running, the network usage from client to server is never consuming more than 10 Mb (megabits) of bandwidth.
I've tried adjusting the client and server startup parameter, -Mm to 16384, but it's not having any effect.

Is there a soft limit to the amount of network bandwidth a progress network client can consume or the workgroup server can deliver?

Thank you for any suggestions.

Here's the startup info for the server/database:
11/10/11 1:37:46 AM] [3] [ConnectionManager] 0 database brokers have been reconnected.
[11/10/11 1:37:46 AM] [2] [ConnectionManager] Autostarting qualified databases. (7389)
[11/10/11 1:37:46 AM] [3] [ConnectionManager] End list of qualified databases. (ADMMsg013)
[11/10/11 1:37:46 AM] [3] [ConnectionManager] Autostarting database springbrook0 (ADMMsg026)
[11/10/11 1:37:46 AM] [3] [ConnectionManager] Autostarting database configuration: springbrook0.defaultconfiguration (7390)
[11/10/11 1:37:46 AM] [1] [ConnectionManager] Starting configuration: springbrook0.defaultconfiguration (7397)
[11/10/11 1:37:46 AM] [2] [ConnectionManager] Starting process (primary) for configuration: springbrook0.defaultconfiguration (8470)
[11/10/11 1:37:46 AM] [2] [ConnectionManager] Command = [c:\dlc91\bin\_mprosrv, -classpath, "c:\dlc91\jre\lib\rt.jar;c:\dlc91\jre\lib\i18n.jar;c:\dlc91\java\progress.jar;c:\dlc91\java\messages.jar;;;", -properties, "c:\dlc91\properties\conmgr.properties", -servergroup, springbrook0.defaultconfiguration.4gl, -adminport, 7836, -m5] (7402)
[11/10/11 1:37:48 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:48 BROKER 0: Multi-user session begin. (333)] (ADMMsg057)
[11/10/11 1:37:49 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:49 BROKER 0: Begin Physical Redo Phase at 8448 . (5326)] (ADMMsg057)
[11/10/11 1:37:52 AM] [3] [AdminServer] Started broker. Broker: NS1, PID: 4080
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Physical Redo Phase Completed at blk 8570 off 2083 upd 13910. (7161)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Started for springbrook0 using TCP, pid 4060. (5644)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Connecting to Admin Server on port 7836. (8836)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Juniper called to register itself with the admin server. Config: springbrook0.defaultconfiguration (7400)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Registered with Admin Server. (8846)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Progress OpenEdge Release 9.1E on WINNT. (4234)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Server started by SYSTEM on batch. (4281)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Started using pid: 4060. (6574)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Physical Database Name (-db): D:\Springbrook\DB\Springbrook0\ssi. (4235)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Database Type (-dt): PROGRESS. (4236)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Force Access (-F): Not Enabled. (4237)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Direct I/O (-directio): Not Enabled. (4238)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Number of Database Buffers (-B): 400000. (4239)] (ADMMsg057)
[11/10/11 1:37:56 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Maximum private buffers per user (-Bpmax): 64. (9422)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:56 BROKER 0: Excess Shared Memory Size (-Mxs): 16398. (4240)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: The shared memory segment is not locked in memory. (10014)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Current Size of Lock Table (-L): 500000. (4241)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Hash Table Entries (-hash): 98407. (4242)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Current Spin Lock Tries (-spin): 0. (4243)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Number of Semaphore Sets (-semsets): 1. (6526)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Crash Recovery (-i): Enabled. (4244)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Database Blocksize (-blocksize): 4096. (6573)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Delay of Before-Image Flush (-Mf): 3. (4245)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Before-Image File I/O (-r -R): Reliable. (4247)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Before-Image Truncate Interval (-G): 0. (4249)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Before-Image Cluster Size: 524288. (4250)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Before-Image Block Size: 8192. (4251)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Number of Before-Image Buffers (-bibufs): 5. (4252)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: BI File Threshold size (-bithold): 0.0 Bytes. (9238)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: BI File Threshold Stall (-bistall): Disabled. (6552)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: After-Image Stall (-aistall): Not Enabled. (4254)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Number of After-Image Buffers (-aibufs): 10. (4256)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Storage object cache size (-omsize): 1024 (8527)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Maximum Number of Clients Per Server (-Ma): 1. (4257)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Maximum Number of Servers (-Mn): 21. (4258)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Minimum Clients Per Server (-Mi): 1. (4259)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Maximum Number of Users (-n): 51. (4260)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Host Name (-H): SB-Test. (4261)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Service Name (-S): springbrook0. (4262)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Network Type (-N): TCP. (4263)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Character Set (-cpinternal): ISO8859-1. (4264)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Parameter File: Not Enabled. (4282)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Maximum Servers Per Broker (-Mpb): 5. (5647)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Minimum Port for Auto Servers (-minport): 3000. (5648)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Maximum Port for Auto Servers (-maxport): 5000. (5649)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: This broker supports 4GL server groups only. (8863)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 39256064 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 173473792 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 307691520 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 441909248 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 576126976 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 710344704 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 844562432 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 978780160 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 1112997888 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 1247215616 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 1381433344 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 1515651072 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.4gl (primary): [17:37:57 BROKER 0: Created shared memory with segment_id: 1649868800 (9336)] (ADMMsg057)
[11/10/11 1:37:57 AM] [2] [ConnectionManager] Starting secondary servers... (8472)
[11/10/11 1:37:59 AM] [2] [ConnectionManager] Starting process (secondary) for configuration: springbrook0.defaultconfiguration (8470)
[11/10/11 1:37:59 AM] [2] [ConnectionManager] Command = [c:\dlc91\bin\_mprosrv, -classpath, "c:\dlc91\jre\lib\rt.jar;c:\dlc91\jre\lib\i18n.jar;c:\dlc91\java\progress.jar;c:\dlc91\java\messages.jar;;;", -properties, "c:\dlc91\properties\conmgr.properties", -servergroup, springbrook0.defaultconfiguration.odbc, -adminport, 7836, -m3] (7402)
[11/10/11 1:37:59 AM] [2] [ConnectionManager] Config springbrook0.defaultconfiguration - Message from springbrook0.defaultconfiguration.odbc (secondary): [17:37:59 BROKER 1: Unable to find server sbrbrkodbc0 with protocol TCP in file SERVICES or SERVICES file not found in expected location. (5192)] (ADMMsg057)
[11/10/11 1:37:59 AM] [0] [ConnectionManager] * Config springbrook0.defaultconfiguration - Error from springbrook0.defaultconfiguration.odbc (secondary): [17:37:59 SERVER : ** This process terminated with exit code 1. (8619)] (ADMMsg005)
[11/10/11 1:37:59 AM] [3] [ConnectionManager] All secondary brokers for configuration springbrook0.defaultconfiguration are accounted for (ADMMsg001)
[11/10/11 1:38:01 AM] [2] [ConnectionManager] Starting process (watchdog) for configuration: springbrook0.defaultconfiguration (8470)
[11/10/11 1:38:01 AM] [2] [ConnectionManager] Command = [c:\dlc91\bin\_mprshut, D:\Springbrook\DB\Springbrook0\ssi.db, -adminport, 7836, -C, watchdog] (7402)
[11/10/11 1:38:08 AM] [3] [ConnectionManager] All auxiliary processes for configuration springbrook0.defaultconfiguration are accounted for (ADMMsg016)
 
Did you get anywhere with this issue as we have the exact same problem with a Workgroup DB, sluggish performance and the server seemingly twiddling it's thumbs. The only difference is we're in OE10. Would be keen to hear if you've found any solution?
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Why are you trying to optimize the performance of a workgroup database? In a production environment you should be running Enterprise.
 
I agree in the perfect world however in the real world there are other aspects to consider, one being the $30,000 cost to upgrade WG to Enterprise. Another is that we already have some members of our board pushing for a move away from Progress to a more 'mainstream' development platform (read MSC) going forward; this would only add fuel to that fire. For the time being we are stuck with WG and therefore need to optimize it to the best of its capabilities.
 

TomBascom

Curmudgeon
Somehow I missed this back in November...

Hello all,

I have a test environment that I've mirrored our production system database, and I'm teaching myself/learning how to optimize our progress 9.1E workgroup database. This progress database is the backend for a financial software package that is used throughout our environment.

There is some serious vendor lock in, and upgrading the DB to 10.1x is not an option at this point.

9.1E is ancient, obsolete and (more or less) unsupported. Your vendor should get their act together.

A complaint frequently heard is that the "server is slow" when two or three users/network clients are running reports/queries against the system.
During these queries - Perfmon is showing less than 5% cpu utilisation, and disk queue counters are less than .03 on the database disk, or the BI disk. Buffer hits are at 99% during this time.
The server is twiddling it's thumbs.

Ok, how many requests are being made of the database during these periods?

The Test server is Server 2008 X64
Xeon 3050 @ 2.13 Ghz (dual core - no hyperthreading)
8 GB Ram
C: is Two intel X25 SSD drives in Raid 0 (Test System!)
D: is Revo Drive X2 PCI Express SSD.

Excellent! It's too bad that you have both hands tied behind your back and strapped to your feet by using 9.1E in a Workgroup configuration.

Progress 9.1E Workgroup

Don't expect much in the way of performance.

gig Ethernet. Samve vlan as server - no routers in between client and server.

Client workstation Win7 X86 SP1:
Quad core i7 860 (4 cores - plus hyperthreading.)
4 GB Ram
C: is intel X25 80 GB drive. (this is where progress network client is installed.)
Gig Ethernet. Same vlan as server - so no routers in between.

That's a lot of gear. I think you're seriously over-invested in hardware.

Test database and logs are on the D:\ drive.
Running a test report directly on the server - results are back in 110 seconds. Server CPU's run up to 90% while report is running.
Running this same report from a network client connected over GB ethernet - results are back in ~250 seconds.
While the report is running, the network usage from client to server is never consuming more than 10 Mb (megabits) of bandwidth.

That's about what you would expect. Even though the network is very fast it cannot be as fast as not having to actually put any data on the wire.

I've tried adjusting the client and server startup parameter, -Mm to 16384, but it's not having any effect.

You might also try adjusting -Ma & -Mn.

Is there a soft limit to the amount of network bandwidth a progress network client can consume or the workgroup server can deliver?

No.

Thank you for any suggestions.

The 9.1E Workgroup database is subject to a very serious problem when run on multi-processor machines. It uses a semaphore mechanism to coordinate multi-user access to shared memory. This is grossly inefficient on modern multi-CPU acrhitectures. It is a result of version 9 being designed in the mid to late '90s when then idea of multi-cpu processors in everything (including your phone) would have been seen as laughable (but of course it wasn't even considered).

This problem was not discovered until 9.1E was frozen as the very last release of version 9 (the ubiquitous appearance of multi-cpu machines did not occur until then).

10.1 has a "fix" of sorts in that it uses the spinlock algorithm instead with -spin hard coded to 1 (the fix makes the problem better but does not provide nearly the performance that Enterprise does). There is no way to change v9 to do this. It will never happen with version 9.

You have 3 options:

1) Upgrade to version 10.

2) Upgrade your v9 license from Woprkgroup to Enterprise.

3) Disable all but one CPU. Or use "processor affinity" to lock all Progress processes to a single CPU. (This will improve things somewhat but will probably not "cure" the problem.)
 

TomBascom

Curmudgeon
I agree in the perfect world however in the real world there are other aspects to consider, one being the $30,000 cost to upgrade WG to Enterprise. Another is that we already have some members of our board pushing for a move away from Progress to a more 'mainstream' development platform (read MSC) going forward; this would only add fuel to that fire. For the time being we are stuck with WG and therefore need to optimize it to the best of its capabilities.

What is the sluggish performance costing?

Assuming 50 users if everyone is waiting 10 minutes a day due to sluggishness that is one extra staff person required simply because the system is slow (and 1 staff person at $30k sounds awfully cheap to me). And that doesn't even count other impacts like lost customers due to poor service and so forth...
 
Top