Hi Heller -
I was doing performance testing for M-e-c As2. both the systems have MEC AS2 31 installed on them.
System A – Unix
System B – Windows.
Test scenario : I have scheduled a script on system A for one minute that copies 4 files, one each of 8, 21, 38 and 63 KB. MDN requested : sync/signed. I have generated the test file names so that it contains the timestamp e.g.) As2Test_B_2714:32:01, where 27 is date.
For the day one when I ran the test, I observed that System A did not show any delay in sending the files but system B queued a lot of processes to send MDN. This queue increased over the time.
System A did not show any delay for around 2 and a half hours, after that it started delaying the files , if you will see the as20 log entry below, you will see that the file that was created at 17:13:01 was actually sent at 5:15:25 PM as per the log.
[Apr 27, 2010 5:15:25 PM] mendelson_opensource_AS2-1272368590971-4282@mendelsonas2_desktopas2: Transaction state written to /home/ak185046/edihub/mendelson_as2_31/messages/desktop/sent/mendelson/20100427/As2Test_B_2717:13:01_mendelson_opensource_AS2_1272368590971_4282@mendelsonas2_desktopas2.s....
This became worst over the time and the delay that we saw in as20 log grown up to 20 minutes, please see below log filename - As2Test_A_2718:09:01, and log time 8:28:09 PM.
[Apr 27, 2010 8:28:09 PM] mendelson_opensource_AS2-1272372032544-4511@mendelsonas2_desktopas2: Transaction state written to /home/ak185046/edihub/mendelson_as2_31/messages/desktop/sent/mendelson/20100427/As2Test_A_2718:09:01_mendelson_opensource_AS2_1272372032544_4511@mendelsonas2_desktopas2.s....
Now what surprises me more is that, on the GUI Interface it does not show any delay in sending the file. There are different time stamps on GUI and the as20.log. Please see the below example
LOG that we see in the GUI Interface
4843@mendelsonas2_desktopas2: The file "As2Test_A_2920:40:01" has been deleted and enqueued into the processing message queue of the server.
[Apr 29, 2010 8:40:21 PM] mendelson_opensource_AS2-1272553818884-4843@mendelsonas2_desktopas2: Sending message to http://153.58.47.228:8080/as2/HttpReceiver, sync MDN requested.
[Apr 29, 2010 8:40:33 PM] mendelson_opensource_AS2-1272553818884-4843@mendelsonas2_desktopas2: Message sent successfully (HTTP 200); 9.94 KB transfered in 13.93s [0.71 KB/s].
MDN received entry in GUI Interface
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: Incoming transmission is a MDN.
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: MDN is the answer to AS2 message "mendelson_opensource_AS2-1272553818884-4843@mendelsonas2_desktopas2".
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: MDN state is [processed].
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2:
Details of MDN received from remote AS2 server:
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: MDN is not encrypted.
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: MDN is signed.
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: Using certificate "desktop_certificate" to verify signature.
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: Digital signature verified successful.
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553830404-1204@desktopas2_mendelsonas2: The Message Integrity Code (MIC) matches the sent AS2 message.
[Apr 29, 2010 8:40:44 PM] mendelson_opensource_AS2-1272553818884-4843@mendelsonas2_desktopas2: Transaction state written to /home/ak185046/edihub/mendelson_as2_31/messages/desktop/sent/mendelson/20100429/As2Test_A_2920:40:01_mendelson_opensource_AS2_1272553818884_4843@mendelsonas2_desktopas2.s....
The GUI Interface log clearly states that the file was sent and even the MDN was received by 8:40:44 PM, but if I fetch this file in as21.log I see that file was sent at 9:13:23 PM, please see below
Entry from as21.log
[Apr 29, 2010 9:13:23 PM] mendelson_opensource_AS2-1272553818884-4843@mendelsonas2_desktopas2: The file "As2Test_A_2920:40:01" has been deleted and enqueued into the processing message queue of the server.
Not just this, the system A becomes vary slow, SAR reduces from 99% to around 73%. On doing TOP on the unix box, Java process used for MEC as2 always shows utilizing more that 100% of one CPU. It takes around 25-26 % of the total CPU resources. I have not being recording the vitals of System B. even when I stop the schedule to create new files, still the system keeps busy and the as20.log keeps updating.
Questions :
1.) What is significance of as20, as21 and as22 logs? Are they used to write same information? What regulates the use of these three different logs?
2.) Why are there different timings in the GUI and the As2* logs?
3.) What is causing the high system resource utilization?
4.) does it require more resources to process MDN as compared to simply sending a file from Mec as2?
Rahul,
What amount of memory have you given to the VM? Please remember that there is a database server, a JMS server, a HTTP server and the AS2 receipt unit running in one VM if you use the open source version. The database server if started in a single instance requires up to 500 MB heap memory if there is some traffic on the system.
to 1)
This is a java logging functionality to use n logs with a specified file size, the newest will be the as2n.log with n=0.
to 2)
We havent recognized this so far, we will have a look at it.
to 3)
That depends if you are using async or sync MDN. If you are using sync MDN the system requires much more resources (the connection has to be kept open) on the server side.
Regards
Heller
Thanks Heller-
This is what i have in mendelson_as2_start.sh
java -Xmx192M -Xms92M -classpath $CLASSPATH de.mendelson.comm.as2.AS2
Does it require more, how much would you recommend ?
Regards
Rahul1
Rahul,
I would recommend 1 GB.
Regards
Heller
HI Heller -
I changed it to 1GB
java -Xmx1024M -Xms92M -classpath $CLASSPATH de.mendelson.comm.as2.AS2
But nothing has changed, It now has a heigher CPU utilization than before. here is what TOP command comes out with
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26164 ak185046 18 0 1331m 1.1g 52m S 128.0 57.9 1125:21 java
Even after making it to 1GB, logs keeps on updating for the past data even if there is no new activity, were you able to recreate this on your end?
You said in your previous reply - "Please remember that there is a database server, a JMS server, a HTTP server and the AS2 receipt unit running in one VM if you use the open source version"
Is this just the case with the opensource version? Is there a different architecture for the paid version? Does the paid version have any performance advantages over the free version?
Thanks & Regards
Rahul
Rahul,
in the commercial version the client and the server could be started in different VMs. Beneath that the commercial version requires less memory for huge files.
But to your problem: We didn't encounter it so far, nobody posted something like this so far. Is there any installation out that has similar problems?
Regards
Heller
Hi Heller -
Did you get some time to look into this? were you able to recreate on your end?
This is kind of becoming a show stopper for us.
Regards
Rahul
Heller asked if there were any other installation out there experiencing the same thing, and I have to say we are. Still on b29 and trying to upgrade.
Thanks,
Chaz