Hi 
I have been trying to use JbossCache 1.4 SP1, as a caching solution, 
However I encounter performence issues,
I have not been able to write more then 1000 updates per  sec, on a single 
node, and  I need a solution able to write as many as 15,000 per sec.
I have been written a small test  to demonstrate:
I have been using MR. Ben Wang's Address and Student classes, along with 
../etc/META-INF/replSync-service.xml
I have compiled the classes with the aopc compiler.
the jboss-aop.xml file I am using  is the one under the .../examples/PojoCache/ 
....... .

Test setup 2 nodes:

Machine 1:
JVM 1.5.07
Fedora 5 linux. 
1GM memory 

Machine 2
JVM 1.5.07
Solaris 10 2GM memory

Use Case 1:
When I run this code unclustered I can update 12,000  times per second

Use Case 2:
When I run this code in a 2 node cluster the performence drops to something 
like 900 - 1200 updates per second.

Use Case 3:
When I run this code with the 's' param, one one node, meaning I have just one 
writer node, I get the same results: 900 - 1200 updates per second.

I have noticed that the CPU usage rises to 80 - 100 % even  when the node is 
not writing / reading  the cache.


What am I doing wring ?
is this the kind of performence I can expect?
According to the following link 
http://wiki.jboss.org/wiki/Wiki.jsp?page=WhatShouldWeExpectOfThePojoCachePerformance
 I should be just fine, but the results I am getting is very far from it, whay 
is that ?

Thanks 
Lior


my class is:

package com.protagonis.cache;

//import org.jboss.cache.Fqn;
//import org.jboss.cache.PropertyConfigurator;
//mport org.jboss.cache.aop.PojoCache;

import java.util.*;

import javax.naming.*;
import javax.transaction.*;

import org.jboss.cache.*;
import org.jboss.cache.aop.*;

import com.protagonis.test.utils.*;

public class ManualTestCacheJbossExample {
        private static final String base_dir = "./etc/resources/configuration/";

        private PojoCache tree;

        public static void main(String[] argv) throws Exception {
                ManualTestCacheJbossExample ct = new 
ManualTestCacheJbossExample();
                

                ct.tree = ct.StartCache();

                if (argv.length > 1)
                        if (argv[1].equals("s")) {
                                while (true) {
                                        Thread.sleep(0, 10);
                                }
                        }

                /*
                 * Timing.assertElapseTime(ct, "doAspect", new Object[] { new 
Integer(
                 * argv[0]).intValue(), }, 100000L);
                 */

                ct.doAspect(new Integer(argv[0]).intValue());
                ct.tree.stop();

        }

        public ManualTestCacheJbossExample() {
        }

        public void doAspect(int howMany) {

                try {
                        Student st1 = new Student();
                        st1.setSchool("school1");
                        st1.setName("Name1");
                        Address adr = new Address();
                        adr.setCity("city");
                        adr.setStreet("str");
                        adr.setZip(1);
                        st1.setAddress(adr);
                        Fqn fqn = Fqn.fromString("a/b");

                        int count = 1;

                        while (count < howMany) {

                                try {
                                        Student std2 = (Student) 
tree.getObject(fqn);

                                        if (std2 == null) {
                                                tree.putObject(fqn, st1);
                                                continue;
                                        }

                                        Address adr2 = std2.getAddress();
                                        adr.setZip(adr.getZip() + 1);

                                        if (count % 1000 == 0)
                                                System.out
                                                                .println(" 
Count " + count + " Zip "
                                                                                
+ adr2.getZip() + 1 + " Name "
                                                                                
+ std2.getName());

                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                                count++;

                        }
                } catch (Exception e) {

                        e.printStackTrace();
                }

        }

        public PojoCache StartCache() {

                try {
                        InitJvm.init();
                        tree = new PojoCache();

                        PropertyConfigurator config = new 
PropertyConfigurator(); // configure

                        config.configure(tree, base_dir + 
"replSync-service.xml");
                        tree.setClusterName("Sample-Cluster");
                        tree.start(); // kick start the cache

                        Thread.sleep(5000);
                        return tree;
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return null;
        }

}










View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969769#3969769

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969769
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to