Objective

I just got GT3 services to run and got some hard numbers. I have produced a dummy web interface for GUMS, and I run a client that queries the service N number of times. The requests are grouped in groups of M requests. This allows to see the JIT kicking in. (As usual with performance tests, be careful not to generalize)

Configuration

Tests run on a double PIII 450MHz, JDK 1.4.2, GT3.3. Client and server running on the same machine (which means these numbers do not include network delay).

No security

First test:

[root@atlasgrid13 tutorial]# java -classpath ./build/classes/:$CLASSPATH 
org.globus.progtutorial.clients.GUMSService.Client http://130.199.6.244:8080/ogsa/services/progtutorial/core/gums/GUMSService 
test carcassi 10000 100
Time from 1 to 100: 8289ms 82.89ms/request
Time from 101 to 200: 1609ms 16.09ms/request
Time from 201 to 300: 1680ms 16.8ms/request
Time from 301 to 400: 1346ms 13.46ms/request
Time from 401 to 500: 1367ms 13.67ms/request 
Time from 501 to 600: 1237ms 12.37ms/request
Time from 601 to 700: 1142ms 11.42ms/request 
Time from 701 to 800: 1633ms 16.33ms/request
Time from 801 to 900: 1112ms 11.12ms/request 
Time from 901 to 1000: 1221ms 12.21ms/request
Time from 1001 to 1100: 1208ms 12.08ms/request 
Time from 1101 to 1200: 1072ms 10.72ms/request
Time from 1201 to 1300: 1077ms 10.77ms/request 
Time from 1301 to 1400: 1092ms 10.92ms/request
Time from 1401 to 1500: 1767ms 17.67ms/request 
Time from 1501 to 1600: 1187ms 11.87ms/request
Time from 1601 to 1700: 1097ms 10.97ms/request 
Time from 1701 to 1800: 1162ms 11.62ms/request
Time from 1801 to 1900: 1142ms 11.42ms/request 
Time from 1901 to 2000: 1295ms 12.95ms/request
Time from 2001 to 2100: 1167ms 11.67ms/request 
Time from 2101 to 2200: 939ms 9.39ms/request
Time from 2201 to 2300: 960ms 9.6ms/request 
Time from 2301 to 2400: 886ms 8.86ms/request
Time from 2401 to 2500: 885ms 8.85ms/request 
Time from 2501 to 2600: 886ms 8.86ms/request
Time from 2601 to 2700: 877ms 8.77ms/request 
Time from 2701 to 2800: 884ms 8.84ms/request
Time from 2801 to 2900: 886ms 8.86ms/request 
Time from 2901 to 3000: 878ms 8.78ms/request
Time from 3001 to 3100: 852ms 8.52ms/request 
Time from 3101 to 3200: 857ms 8.57ms/request
Time from 3201 to 3300: 1004ms 10.04ms/request 
Time from 3301 to 3400: 970ms 9.7ms/request
Time from 3401 to 3500: 900ms 9.0ms/request 
Time from 3501 to 3600: 882ms 8.82ms/request
Time from 3601 to 3700: 884ms 8.84ms/request 
Time from 3701 to 3800: 876ms 8.76ms/request
Time from 3801 to 3900: 888ms 8.88ms/request 
Time from 3901 to 4000: 876ms 8.76ms/request
Time from 4001 to 4100: 891ms 8.91ms/request 
Time from 4101 to 4200: 876ms 8.76ms/request
Time from 4201 to 4300: 875ms 8.75ms/request 
Time from 4301 to 4400: 884ms 8.84ms/request
Time from 4401 to 4500: 882ms 8.82ms/request 
Time from 4501 to 4600: 884ms 8.84ms/request
Time from 4601 to 4700: 885ms 8.85ms/request 
Time from 4701 to 4800: 871ms 8.71ms/request
Time from 4801 to 4900: 882ms 8.82ms/request 
Time from 4901 to 5000: 899ms 8.99ms/request

The timing stabilizes around 9ms/request. The CPU usage wasn't 100% though: it was around 55%/60%, spread across both CPUs. I then run two clients on the same machine: both stabilized around 11.5ms/request.

If we look at the first few requests:

Time from 1 to 1: 6432ms 6432.0ms/request
Time from 2 to 2: 26ms 26.0ms/request
Time from 3 to 3: 15ms 15.0ms/request
Time from 4 to 4: 15ms 15.0ms/request 
Time from 5 to 5: 16ms 16.0ms/request
Time from 6 to 6: 45ms 45.0ms/request
Time from 7 to 7: 18ms 18.0ms/request
Time from 8 to 8: 27ms 27.0ms/request
Time from 9 to 9: 19ms 19.0ms/request
Time from 10 to 10: 21ms 21.0ms/request
Time from 11 to 11: 22ms 22.0ms/request
Time from 12 to 12: 21ms 21.0ms/request
Time from 13 to 13: 66ms 66.0ms/request
Time from 14 to 14: 22ms 22.0ms/request
Time from 15 to 15: 20ms 20.0ms/request

We see that the first request is very slow (6.5sec), which make it difficult to use this system within interactive command line tools.

The key numbers are:

First request time6.5 sec
Avg. request time (after JIT)9 ms/req
Overall server frequency174 req/sec

With security

After turning on full security (privacy, integrity, authentication):

Time from 1 to 100: 21968ms 219.0ms/request
Time from 101 to 200: 
19914ms 199.0ms/request
Time from 201 to 300: 18252ms 182.0ms/request
Time from 301 to 400: 18105ms 181.0ms/request
Time from 401 to 500: 18020ms 180.0ms/request 
Time from 501 to 600: 17833ms 178.0ms/request
Time from 601 to 700: 17781ms 177.0ms/request 
Time from 701 to 800: 17415ms 174.0ms/request
Time from 801 to 900: 17644ms 176.0ms/request 
Time from 901 to 1000: 17373ms 173.0ms/request
Time from 1001 to 1100: 17383ms 173.0ms/request 
Time from 1101 to 1200: 17067ms 170.0ms/request
Time from 1201 to 1300: 17253ms 172.0ms/request
Time from 1301 to 1400: 17235ms 172.0ms/request
Time from 1401 to 1500: 17221ms 172.0ms/request
Time from 1501 to 1600: 17282ms 172.0ms/request
Time from 1601 to 1700: 16796ms 167.0ms/request
Time from 1701 to 1800: 17274ms 172.0ms/request 
Time from 1801 to 1900: 17238ms 172.0ms/request
Time from 1901 to 2000: 17926ms 179.0ms/request
Time from 2001 to 2100: 16832ms 168.0ms/request
Time from 2101 to 2200: 17226ms 172.0ms/request
Time from 2201 to 2300: 17212ms 172.0ms/request
Time from 2301 to 2400: 17252ms 172.0ms/request
Time from 2401 to 2500: 16787ms 167.0ms/request 
Time from 2501 to 2600: 17235ms 172.0ms/request
Time from 2601 to 2700: 17255ms 172.0ms/request
Time from 2701 to 2800: 17308ms 173.0ms/request
Time from 2801 to 2900: 16849ms 168.0ms/request
Time from 2901 to 3000: 17222ms 172.0ms/request
Time from 3001 to 3100: 17237ms 172.0ms/request
Time from 3101 to 3200: 17215ms 172.0ms/request 
Time from 3201 to 3300: 17212ms 172.0ms/request
Time from 3301 to 3400: 16772ms 167.0ms/request
Time from 3401 to 3500: 17237ms 172.0ms/request

The time quickly settles around 171ms/req. Again, only 55%/60% of the CPUs was used (divided equally between client and server). With two clients, the avg. time becomes 200ms/req.

The first few requests:

Time from 1 to 1: 11901ms 11901.0ms/request
Time from 2 to 2: 369ms 369.0ms/request
Time from 3 to 3: 276ms 276.0ms/request
Time from 4 to 4: 234ms 234.0ms/request
Time from 5 to 5: 208ms 208.0ms/request
Time from 6 to 6: 241ms 241.0ms/request
Time from 7 to 7: 225ms 225.0ms/request
Time from 8 to 8: 207ms 207.0ms/request
Time from 9 to 9: 211ms 211.0ms/request
Time from 10 to 10: 183ms 183.0ms/request
Time from 11 to 11: 203ms 203.0ms/request
Time from 12 to 12: 199ms 199.0ms/request
Time from 13 to 13: 220ms 220.0ms/request
Time from 14 to 14: 188ms 188.0ms/request
Time from 15 to 15: 196ms 196.0ms/request
Time from 16 to 16: 187ms 187.0ms/request
Time from 17 to 17: 226ms 226.0ms/request

The key numbers are:

First request time11.9 sec
Avg. request time (after JIT)171 ms/req
Overall server frequency10 req/sec