We have an application the relies heavily on messaging. When moving our application from a Sun E450 (4 x 400MHz UltraSPARC-II processors) to a Sun Fire 4800 (8 x 750MHz UltraSPARC III processors), we noticed an almost 20 fold DROP in event throughput. This on a machine that by all accounts, should be about four times faster. Both machines were running 32 bit Solaris 8.
To further investigate this problem I wrote a small application with a simple MDB that listens on a queue I get over 900 events/sec received by the MDB on an E450. With the exact same application on the SF4800 I get 49 events/sec. I used non-persistient events.
I noticed that the events were being cached to disk so I set the JVM heap to 3GB (lots-o-memory on the SF4800) and set the MessageCache parameters MaxMemoryMark and HighMemoryMark to just under 3GB so that no messages would be cached to disk. Messages were no longer cached but performance didn't change.
Does anybody have any ideas what might be going on here?
did you try this q on the JMS forum? might have better luck there