[Users] Low Throughput

ticolucci ticolucci at gmail.com
Wed Mar 16 11:06:00 CET 2011


Hi again


vzurczak wrote:
> 
> From your stats, I see your machines have 1 GB of memory, or do I misread it? :? 
> But it is not completely used, and the swap is a almost not used.
> 


This gave me the insight i needed... =)
I was analyzing just the total memory... >_<  Looking to the memory splitting in real RAM and swap, I discovered that petals was indeed using a lot the swap with big msgs. This explains the low throughput.
Also the CPU was on 100% (both cores) during the tests.
Those data are from the SO, becaus if I run Jmeter and Jconsole through SSH, the connection was getting too slow.


When I moved the environment to my own PC (MacBook Pro, i5, 4Gb), the results got a little better.

Jconsole gave this Summary:

Code:


VM Summary
Monday, January 24, 2011 11:31:47 AM BRST
 
Connection name:  pid: 12888 server.jar start
Virtual Machine: Java HotSpot(TM) 64-Bit Server VM version 17.1-b03-307
Vendor: Apple Inc.
Name: 12888 at PokeDex.local
Uptime: 7 minutes
Process CPU time: 2 minutes
JIT compiler: HotSpot 64-Bit Server Compiler
Total compile time: 39.388 seconds
 
Live threads:   107
Peak:   144
Daemon threads:    39
Total threads started: 1,293
Current classes loaded: 17,450
Total classes loaded: 18,018
Total classes unloaded:    568


 
Current heap size: 222,786 kbytes
Maximum heap size: 932,096 kbytes
Committed memory: 417,024 kbytes
Pending finalization: 0 objects
Garbage collector: Name = 'PS MarkSweep', Collections = 3, Total time spent = 0.799 seconds
Garbage collector: Name = 'PS Scavenge', Collections = 43, Total time spent = 0.581 seconds
 
Operating System: Mac OS X 10.6.6
Architecture: x86_64
Number of processors: 4
Committed virtual memory: 4,118,216 kbytes
Total physical memory: 4,194,304 kbytes
Free physical memory:    25,556 kbytes
Total swap space:   524,288 kbytes
Free swap space:   387,024 kbytes
 
VM arguments: -Xserver -Xmx1024m -XX:MaxPermSize=256m 
Class path: server.jar




The CPU Usage, according with JConsole, was around 60%, and the top usage of Heap Memory was around 400Mb.
But the SO gave 100% of CPU usage (all four cores) and 700Mb Ram usage for the server java process...
I'm not a true expert in Java nuances. So I don't really understand the difference between values.



About the throughput of this new test (in my machine):
With low frequency rate of messages, 1 msg/sec, the throughput was even => 1.2 msgs/sec
With medium rate, 5 msgs/sec, the result was again normal => 5.3 msgs/sec
With "high" rate, 20 msgs/sec/ the throughput was acceptable => 17.7 msgs/sec    BUT with this rate the server started to give some Null Pointers... (5% of the msgs sent)
Finally I tried the real high rate, 100 msgs/sec, and the server once crashed, and the other try gave this => 48.3 msgs/sec   BUT again with lots of Null Pointers (76% of the msgs sent) as below
 

Code:

Warning. EasyXML : TransformerFactory '' not found, the standard TransformerFactory will be used.
{http://localhost/NodeNode1}NodeOperation1
document

{http://localhost/NodeNode1}NodeOperation1
document

[Petals.Container.Components.petals-se-bpel]-SEVERE 2011-01-24 11:27:54,788 null
java.lang.NullPointerException
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processInOptionalOutAsProvider(MessageExchangeProcessor.java:568)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processAsProvider(MessageExchangeProcessor.java:391)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.process(MessageExchangeProcessor.java:233)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.run(MessageExchangeProcessor.java:177)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
[Petals.Container.Components.petals-se-bpel]-SEVERE 2011-01-24 11:27:54,803 null
java.lang.NullPointerException
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processInOptionalOutAsProvider(MessageExchangeProcessor.java:568)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processAsProvider(MessageExchangeProcessor.java:391)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.process(MessageExchangeProcessor.java:233)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.run(MessageExchangeProcessor.java:177)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
{http://localhost/LeafNode2}LeafOperation2
document

Warning. EasyXML : TransformerFactory '' not found, the standard TransformerFactory will be used.
[Petals.Container.Components.petals-se-bpel]-INFO 2011-01-24 11:27:54,855 the receiver gives the message to workflow engine
{http://localhost/LeafNode2}LeafOperation2
document

Warning. EasyXML : TransformerFactory '' not found, the standard TransformerFactory will be used.
{http://localhost/NodeNode1}NodeOperation1
document

[Petals.Container.Components.petals-se-bpel]-SEVERE 2011-01-24 11:27:54,903 null
java.lang.NullPointerException
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processInOptionalOutAsProvider(MessageExchangeProcessor.java:568)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processAsProvider(MessageExchangeProcessor.java:391)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.process(MessageExchangeProcessor.java:233)
	at org.ow2.petals.component.framework.process.MessageExchangeProcessor.run(MessageExchangeProcessor.java:177)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)








I truly believe that the low throughput acquired before is due to the limits of the LAN, even though I expected a little more...
But I wanted to confirm if those NullPointers are "acceptable" (if the BPEL guys already know of such errors and stuff =)


For means of reproducibility of those NullPointers:
* I'm on a MacBook Pro i5 2.53GHz, 4GB of RAM; 
* petals standalone with those sa's:
  |- www.ime.usp.br/~colucci/sa-BPEL-LeafNode2-provide.zip
  |- www.ime.usp.br/~colucci/sa-BPEL-NodeNode1-provide.zip
* JMeter test plan: www.ime.usp.br/~colucci/testPlan.jmx



Thanks for everything.
Thiago




-------------------- m2f --------------------

Subscribe/Unsubscribe emails notifications :
http://forum.petalslink.com/m2f_usercp.php

Response to this email will be posted on the Petals forum.
Please delete the existing text before responding :)

Read the topic online:
http://forum.petalslink.com/viewtopic.php?p=31697#31697

-------------------- m2f --------------------






More information about the Users mailing list