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
==================================================
==================================================