The tables below didn't come across very well, here it is again in HTML.
Description Time (ms)
Java startup 451
Create Locator 1720
Create End Point Reference 8
Get Port Type 56
First add() 1399
Min add() 10
Average add() 20.735
Median add() 12
Max add() 1399
StdDev add() 54.70956
Time (ms) Throughput (calls/sec)
End-to-End 1 Call 3634 0.275178866
End-to-End 1000 Calls 24348 41.0706882
Ioan
Ioan Raicu wrote:
OK, I just ran some tests on the Math Service, and here are the
results for no security, and running both the service and client on
identical systems over a 1Gb/s LAN. The systems specs are dual Xeon
2.4GHz with 4GB of RAM (since the tests involved only serial WS calls,
I doubt both CPUs were used in these tests). The JVM used was Sun JDK
1.4, and the Linux kernel was 2.4.21-314, and GT4.0.4.
All time measurements are in ms.
Description Time (ms)
Java startup 451
Create Locator 1720
Create End Point Reference 8
Get Port Type 56
First add() 1399
Min add() - 1000
10
Average add() - 1000
20.735
Median add() - 1000
12
Max add() - 1000
1399
StdDev add() - 1000
54.70956
Summary:
Time (ms) Throughput (calls/sec)
End-to-End 1 Call 3634 0.275
End-to-End 1000 Calls 24348 41.071
Overall, notice that a single call that involves the entire JVM
startup, creation of the EPR, and sending of the 1 WS call takes 3.6
seconds. The very first time I did it with a freshly started
container, it took 4.1 seconds, but then the service container JVM
probably compiled some of the code needed to run the Math service,
cached it, and was likely faster for any subsequent requests, hence
the 3.6 seconds +/- .1 seconds for running a single call. Notice that
if you do repetitive calls, the performance improves dramatically,
getting as low as 10 ms per call... with an overall throughput of 41
calls/sec (instead of 0.3 calls/sec with just 1).
In conclusion, your observations of 5 seconds to do a single WS call
is OK, not too far off the numbers I measured. If I were you, I'd do
a similar test that I did here, and compare your results, and you'll
probably learn where the extra 2 seconds are being spent.
Good luck!
Ioan
soumaya marzouk wrote:
I have run the container with no security
and I mesured only the add operation cost in local and I found about
5 seconds
I used a PC with a 3 Ghz processor and 512 Mo of memory.
have you any explanation?
Thank you.
*/Ioan Raicu <[EMAIL PROTECTED]>/* a écrit :
It all depends whether or not you are using security, and what
level of security. It also depends whether or not you are
measuring the first WS call, or subsequent ones.
From my experience, here is the kind of performance you can expect
to get between 1 client and 1 service.
1st call subsequent
calls (on the same stub)
no security 100s ms ~ 1+ sec 10ms ~ 100ms, depending on
CPU speed
security 1~10 secs 100ms~500ms,
depending on CPU speed
High latency can also add to these numbers, if the two hosts are
not on the same network. From our observations, the client side
seems to be more CPU intensive that service side, so if you are
running 1 client to 1 service, I would put the more powerful CPU
on the client side.
The one thing to keep in mind, is that you can fit a lot of
information in a WS call before you start to see slowdowns in the
numbers. That means that the cost to send a WS message with a
single int as a value, and the cost to send a WS message that has
an array of 10s of complex objects is about the same. You can
also get a lot of parallelism going, many times handling dozens of
concurrent WS calls without any impact on the per WS call
performance.
Just to get an idea, on a dual Xeon 3GHz machine we use for
testing, we can get between 50 and 500 WS calls per second,
depending on the security level used; these numbers are reached
when we are able to saturate the GT service container, and that
happens when we have about 16~32 nodes concurrently generating WS
calls. Some of these numbers are present in a recent paper of
ours
http://people.cs.uchicago.edu/~iraicu/publications/2007_SC07_Falkon.pdf.
Cheers,
Ioan
soumaya marzouk wrote:
Hi,
I tried to call the add operation of the first Math Service
examples. I find that it takes about 5second to be executed in
local using a 1,7GHz centrino processor and 1Go of RAM.
Could you explain this long latency and how could I improve this
time.
Thank you.
------------------------------------------------------------------------
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails
<http://fr.rd.yahoo.com/mail/mail_taglines/trueswitch/*http://www.trueswitch.com/yahoo-fr/>
vers Yahoo! Mail
-- ==================================================
Ioan Raicu
Ph.D. Candidate
==================================================
Distributed Systems Laboratory
Computer Science Department
University of Chicago
1100 E. 58th Street, Ryerson Hall
Chicago, IL 60637
==================================================
Email: [EMAIL PROTECTED] Web:
http://www.cs.uchicago.edu/~iraicu
http://dev.globus.org/wiki/Incubator/Falkon
http://www.ci.uchicago.edu/wiki/bin/view/VDS/DslCS
==================================================
==================================================
------------------------------------------------------------------------
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails
<http://fr.rd.yahoo.com/mail/mail_taglines/trueswitch/*http://www.trueswitch.com/yahoo-fr/>
vers Yahoo! Mail
--
==================================================
Ioan Raicu
Ph.D. Candidate
==================================================
Distributed Systems Laboratory
Computer Science Department
University of Chicago
1100 E. 58th Street, Ryerson Hall
Chicago, IL 60637
==================================================
Email: [EMAIL PROTECTED]
Web: http://www.cs.uchicago.edu/~iraicu
http://dev.globus.org/wiki/Incubator/Falkon
http://www.ci.uchicago.edu/wiki/bin/view/VDS/DslCS
==================================================
==================================================