garbage collector

Discussion in 'Java' started by db_man, Dec 19, 2006.

  1. db_man

    db_man Guest

    Hi ,

    We use oracle application server and have some pausing problems inside

    the java vm. The problem shows itself as pausings of executions , when
    clients start to get late responses ( here lat e means < 4 sec. ) , i
    see more than 10 garbage collector operations . The client applications

    are web services and do database queries. The java process ( the os is
    sun solaris) , according to the prstat , has > 1000 threads inside ,
    and during the garbage collectiong phase , consumes more than 60% cpu
    time. ( the server has 2 cpus - 2 gb. ram) The java process uses the
    following parameters:


    What i think is , the reason of the suspensions is garbage collector
    activity.


    In order to decrease the time that cause pausing , i either increase
    the virtual memory allocated by the java process , or change the
    garbage collector method. Before adding up mor memory to teh system ,

    i want to be sure the effect of changing garbag ecollector methodology.



    The gc used here is serial garbage collector , in order to speed it up
    , the documents say that parallel garbage collector is used.


    I write a small test program . This program creates 1000 threads .
    Each thread creates objects by using new in a loop , and this causes
    the garbage collector runs heavily in order to clean teh garbages. And

    i run the program bu using different garbage collectors but
    unfortunately , i dont see great difference beetween serial and
    parallel gc ,and serial gc is faster.


    Why does this so?


    Serial gc:


    timex java -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
    -Xmx450m -Xms450m -XX:+PrintGCApplicationConcurrentTime
    -XX:+PrintGCApplicationStoppedTime -XX:+UseSerialGC test > test1


    real 23.48
    user 3:26.67
    sys 4.33


    parallel gc:


    timex java -server -verbose:gc -XX:+PrintGCDetails
    -XX:+PrintGCTimeStamps -Xmx450m -Xms450m
    -XX:+PrintGCApplicationConcurrentTime
    -XX:+PrintGCApplicationStoppedTime -XX:+UseParallelGC test > test1


    real 24.35
    user 3:24.68
    sys 30.95


    and here is the test code:


    (I run this test on a bigger box , 24gb.ram , 6 dual core solaris cpus
    )



    >cat test.java



    import java.util.*;
    import java.net.*;
    import java.io.*;

    class testTh extends Thread
    {
    public int val ;
    public testTh ( int pval) { val=pval; }
    public void run() {
    int i=0;
    String s =new String("aaaa");
    boolean flag=true;
    while (flag)
    {
    for (int j=0;j<100000;j++) {
    s = new
    String("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    }
    i++;
    if (i>10) flag=false;
    }
    }



    }


    public class test
    {
    public void dene() {
    for ( int j=0;j<1000;j++)
    (new testTh(j)).start();

    }
    public static void main(String args[])
    {
    test t = new test();
    t.dene();



    }
    }


    Kind Regards,
    hope
    db_man, Dec 19, 2006
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Rob Tillie

    Garbage Collector Debugging

    Rob Tillie, Aug 15, 2003, in forum: ASP .Net
    Replies:
    11
    Views:
    1,756
    JerryK
    Aug 18, 2003
  2. Pyramis
    Replies:
    0
    Views:
    397
    Pyramis
    Jan 25, 2004
  3. Colt

    Garbage collector problem

    Colt, Nov 15, 2003, in forum: Java
    Replies:
    9
    Views:
    681
    Tim Ward
    Nov 18, 2003
  4. bart59
    Replies:
    0
    Views:
    497
    bart59
    Jun 17, 2004
  5. Will Hartung

    Garbage Collector Tuning?

    Will Hartung, Sep 8, 2004, in forum: Java
    Replies:
    3
    Views:
    2,092
    Kevin McMurtrie
    Sep 11, 2004
Loading...

Share This Page