4D SERVER V11 SQL SCALABILITY TEST
How many simultaneous, active clients can 4D Server handle? This laboratory scalability test examines the limits of a real application on 4D Server v11 SQL.
Since the recent announcements about scalability in 4D v11 SQL Release 3, especially in regards to those helped by improved management of multi-processor operations, many people have had questions about the number of simultaneous clients that can connect to 4D Server.
On paper – and in the minds of 4D’s engineers – there’s no doubt that 4D Server v11 SQL has greatly surpassed the limits of 4D Server 2004 in terms of concurrent client connections. But in reality, measuring the actual usability of a client/server connection depends largely on having the right hardware in play, and keeping an eye on the level of activity and number of requests spurred by the various machines connected to the database. We can’t just throw numbers around.
This is why we have created – in collaboration with a customer investigating to extend their configuration – a laboratory scalability test. In such a "lab" environment we can have total control of the actions launched from the client side, but use a real application on the backend, converted from 4D 2004 without any particular optimizations.
4D Server was installed on a machine with 24 processor cores, and we connected 500 users. Each of them performed a series of business tasks at extremely short intervals, allowing us to simulate the weekly activity of the enterprise in only 30 minutes, increasing the margin of safety for the test.
- Main business tasks (making for the majority of transactions)
- Generating invoices
- Processing reservations
- Batch invoice consolidation
- Composite searches, sorts, and calculations
Secondary load tests
At the same time as the operations above, the following secondary tasks were launched:
Batch creation of records (50 per operation)
Batch creation of records during a transaction (50 per operation)
Repeating each task every 5 to 20 seconds on each client, we were able to perform 80-110 simultaneous tasks. The number of simultaneous processes reached 2500.
During the tests above, performed with 500 "automatic" clients, a 501st user was connected in Admin mode and Development mode in order to simulate access to data and source code in realtime while at full capacity. This client connection made it possible to subjectively evaluate fluidity and usability for a real user. (The database ran in interpreted mode!)
Reduction of hardware
In order to simulate a temporary loss of full server capacity, the tests were performed again using only 8 of the machine’s 24 processor cores.
The maximum CPU load of 4D Server stayed between 15% and 20% in the 24-processor configuration.
The 8-processor configuration was equally satisfying and conformed to expectations. The CPU load stayed between 45% and 60%. No server saturation was observed.
The user experience for Client #501 stayed constant and smooth. All operations were performed at a normal speed, without jerkiness or slowdowns. The same fluidity was reported from one of the 500 clients in the test (switched to development mode in parallel with the test routines).
For the hardware configuration used, and conforming to the typical prerequisites of other databases on the market, 4D Server can comfortably manage 500 clients working uninterrupted, in a realistic environment.
Even greater performance can certainly be obtained after optimizing and compiling the existing code for 4D v11 SQL, as much in terms of speed as in the number of users connected.
Less powerful hardware configurations will still benefit from the new capacity of 4D v11 SQL.
Server configuration details
- Dell Power Edge R900 with 24 cores
- 8 GB RAM
- 300 GB HD – 15000 RPM – RAID 0
- Windows 2003 Server R2 64-bit
- CAT5 network
- 4D Server v11 SQL Release 3
- Cache memory allocated to 4D: 1GB
- Data size : 10GB of data + 5GB of indices