0

We have actually increase the memory for the jvm to 256M and now the old generation looks very small but the Perm Generation is quite high nearly 80%. Sample data capture via jstat is as below. What does a high perm generation indicate here?

Timestamp        S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
       173656.0 1152.0 1216.0 864.0   0.0   84928.0  26778.0   174784.0   11967.6   21248.0 17057.8     62    3.653   0      0.000    3.653
       173671.0 1152.0 1216.0 864.0   0.0   84928.0  27843.4   174784.0   11967.6   21248.0 17057.8     62    3.653   0      0.000    3.653
       173686.1 1152.0 1216.0 864.0   0.0   84928.0  27843.4   174784.0   11967.6   21248.0 17057.8     62    3.653   0      0.000    3.653
       173701.1 1152.0 1216.0 864.0   0.0   84928.0  27843.4   174784.0   11967.6   21248.0 17057.8     62    3.653   0      0.000    3.653
       173716.0 1152.0 1216.0 864.0   0.0   84928.0  27843.4   174784.0   11967.6   21248.0 17057.8     62    3.653   0      0.000    3.653

Samples before restart

Timestamp        S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
       261578.8   0.00  16.89  68.70   8.89  80.74     45    2.551     0    0.000    2.551
       261593.8   0.00  16.89  70.97   8.89  80.74     45    2.551     0    0.000    2.551
       261608.8   0.00  16.89  72.49   8.89  80.74     45    2.551     0    0.000    2.551
       261623.8   0.00  16.89  75.00   8.89  80.74     45    2.551     0    0.000    2.551
       261638.8   0.00  16.89  77.76   8.89  80.74     45    2.551     0    0.000    2.551
       261653.8   0.00  16.89  80.77   8.89  80.74     45    2.551     0    0.000    2.551
       261668.8   0.00  16.89  83.03   8.89  80.74     45    2.551     0    0.000    2.551
       261683.8   0.00  16.89  85.29   8.89  80.74     45    2.551     0    0.000    2.551
       261698.8   0.00  16.89  87.57   8.89  80.74     45    2.551     0    0.000    2.551
       261713.8   0.00  16.89  90.57   8.89  80.74     45    2.551     0    0.000    2.551
       261728.8   0.00  16.89  93.35   8.89  80.74     45    2.551     0    0.000    2.551
       261743.8   0.00  16.89  95.61   8.89  80.74     45    2.551     0    0.000    2.551
       261758.8   0.00  16.89  98.61   8.89  80.74     45    2.551     0    0.000    2.551
       261773.8  20.83   0.00   1.36   8.95  80.74     46    2.685     0    0.000    2.685
       261788.8  20.83   0.00   4.66   8.95  80.74     46    2.685     0    0.000    2.685
       261803.8  20.83   0.00   6.88   8.95  80.74     46    2.685     0    0.000    2.685
       261818.8  20.83   0.00   9.67   8.95  80.74     46    2.685     0    0.000    2.685
       261833.8  20.83   0.00  10.78   8.95  80.74     46    2.685     0    0.000    2.685
       261848.8  20.83   0.00  13.56   8.95  80.74     46    2.685     0    0.000    2.685
       261863.9  20.83   0.00  15.78   8.95  80.74     46    2.685     0    0.000    2.685
       261878.8  20.83   0.00  19.32   8.95  80.74     46    2.685     0    0.000    2.685
       261893.8  20.83   0.00  21.55   8.95  80.74     46    2.685     0    0.000    2.685
       261908.8  20.83   0.00  24.33   8.95  80.74     46    2.685     0    0.000    2.685
       261923.8  20.83   0.00  27.11   8.95  80.74     46    2.685     0    0.000    2.685
       261938.8  20.83   0.00  29.84   8.95  80.74     46    2.685     0    0.000    2.685
       261953.8  20.83   0.00  32.06   8.95  80.74     46    2.685     0    0.000    2.685
       261968.8  20.83   0.00  34.85   8.95  80.74     46    2.685     0    0.000    2.685
       261983.8  20.83   0.00  38.89   8.95  80.74     46    2.685     0    0.000    2.685

Samples afte restart

Timestamp        S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
          135.8   0.00   0.00  72.71   0.00  70.88      0    0.000     0    0.000    0.000
          150.8   0.00   0.00  76.71   0.00  70.91      0    0.000     0    0.000    0.000
          165.8   0.00   0.00  78.71   0.00  70.94      0    0.000     0    0.000    0.000
          180.7   0.00   0.00  82.71   0.00  72.79      0    0.000     0    0.000    0.000
          195.8   0.00   0.00  84.71   0.00  72.81      0    0.000     0    0.000    0.000
          210.8   0.00   0.00  88.71   0.00  72.90      0    0.000     0    0.000    0.000
          225.8   0.00   0.00  92.71   0.00  72.93      0    0.000     0    0.000    0.000
          240.8   0.00   0.00  94.71   0.00  72.95      0    0.000     0    0.000    0.000
          255.8   0.00   0.00 100.00   0.00  73.02      0    0.000     0    0.000    0.000
          270.8   0.00  78.72   6.68   0.00  73.49      1    0.286     0    0.000    0.286
          285.8   0.00  78.72  10.66   0.00  73.50      1    0.286     0    0.000    0.286
          300.8   0.00  78.72  14.32   0.00  73.54      1    0.286     0    0.000    0.286
          315.8   0.00  78.72  18.89   0.00  73.57      1    0.286     0    0.000    0.286
          330.8   0.00  78.72  24.85   0.00  73.57      1    0.286     0    0.000    0.286
          345.8   0.00  78.72  30.18   0.00  76.84      1    0.286     0    0.000    0.286
          360.8   0.00  78.72  32.82   0.00  76.86      1    0.286     0    0.000    0.286
          375.8   0.00  78.72  36.04   0.00  76.87      1    0.286     0    0.000    0.286
          390.8   0.00  78.72  40.00   0.00  76.89      1    0.286     0    0.000    0.286
          405.8   0.00  78.72  43.96   0.00  76.91      1    0.286     0    0.000    0.286
          420.8   0.00  78.72  46.61   0.00  76.92      1    0.286     0    0.000    0.286
          435.8   0.00  78.72  47.63   0.00  76.92      1    0.286     0    0.000    0.286
          450.8   0.00  78.72  47.63   0.00  76.92      1    0.286     0    0.000    0.286
          465.8   0.00  78.72  47.63   0.00  76.92      1    0.286     0    0.000    0.286
          480.8   0.00  78.72  47.63   0.00  76.92      1    0.286     0    0.000    0.286
          495.8   0.00  78.72  48.54   0.00  76.93      1    0.286     0    0.000    0.286
          510.8   0.00  78.72  48.54   0.00  76.93      1    0.286     0    0.000    0.286
          525.8   0.00  78.72  48.54   0.00  76.93      1    0.286     0    0.000    0.286
          540.8   0.00  78.72  49.11   0.00  76.93      1    0.286     0    0.000    0.286
          555.8   0.00  78.72  49.11   0.00  76.93      1    0.286     0    0.000    0.286
          570.8   0.00  78.72  49.11   0.00  76.93      1    0.286     0    0.000    0.286
          585.8   0.00  78.72  49.11   0.00  76.93      1    0.286     0    0.000    0.286
          600.8   0.00  78.72  49.11   0.00  76.93      1    0.286     0    0.000    0.286
          615.8   0.00  78.72  49.11   0.00  76.93      1    0.286     0    0.000    0.286
          630.8   0.00  78.72  49.11   0.00  76.93      1    0.286     0    0.000    0.286
          645.8   0.00  78.72  49.98   0.00  76.93      1    0.286     0    0.000    0.286
          660.8   0.00  78.72  49.98   0.00  76.93      1    0.286     0    0.000    0.286
          675.8   0.00  78.72  49.98   0.00  76.93      1    0.286     0    0.000    0.286
          690.8   0.00  78.72  49.98   0.00  76.93      1    0.286     0    0.000    0.286
          705.8   0.00  78.72  49.98   0.00  76.93      1    0.286     0    0.000    0.286
          720.8   0.00  78.72  50.55   0.00  76.93      1    0.286     0    0.000    0.286
          735.8   0.00  78.72  51.12   0.00  76.93      1    0.286     0    0.000    0.286
          750.8   0.00  78.72  51.12   0.00  76.93      1    0.286     0    0.000    0.286
          765.8   0.00  78.72  51.12   0.00  76.93      1    0.286     0    0.000    0.286
          780.8   0.00  78.72  51.12   0.00  76.93      1    0.286     0    0.000    0.286
          795.8   0.00  78.72  51.12   0.00  76.93      1    0.286     0    0.000    0.286
          810.8   0.00  78.72  51.12   0.00  76.93      1    0.286     0    0.000    0.286
          825.8   0.00  78.72  51.69   0.00  76.93      1    0.286     0    0.000    0.286
          840.8   0.00  78.72  51.69   0.00  76.93      1    0.286     0    0.000    0.286
          855.8   0.00  78.72  51.69   0.00  76.93      1    0.286     0    0.000    0.286
          870.8   0.00  78.72  51.69   0.00  76.93      1    0.286     0    0.000    0.286
          885.8   0.00  78.72  52.26   0.00  76.95      1    0.286     0    0.000    0.286
          900.8   0.00  78.72  52.26   0.00  76.95      1    0.286     0    0.000    0.286
          915.8   0.00  78.72  53.12   0.00  76.95      1    0.286     0    0.000    0.286
          930.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
          945.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
          960.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
          975.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
          990.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
         1005.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
         1020.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
         1035.8   0.00  78.72  53.69   0.00  76.95      1    0.286     0    0.000    0.286
         1050.8   0.00  78.72  54.27   0.00  76.95      1    0.286     0    0.000    0.286
         1065.8   0.00  78.72  54.27   0.00  76.95      1    0.286     0    0.000    0.286
         1080.8   0.00  78.72  54.27   0.00  76.95      1    0.286     0    0.000    0.286
         1095.8   0.00  78.72  54.27   0.00  76.95      1    0.286     0    0.000    0.286
         1110.8   0.00  78.72  55.12   0.00  76.97      1    0.286     0    0.000    0.286
         1125.8   0.00  78.72  55.46   0.00  76.97      1    0.286     0    0.000    0.286
         1140.8   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1155.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1170.8   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1185.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1200.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1215.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1230.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1245.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1260.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1275.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1290.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1305.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286
         1320.9   0.00  78.72  56.03   0.00  76.97      1    0.286     0    0.000    0.286

Classes used are

import java.io.*;
import java.net.*;
import java.util.*;
import java.util.Date;
import java.text.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.*;
import java.util.concurrent.LinkedBlockingQueue;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;

Skeleton of the codes.

public static void main(String[] args) {   

      new sServer7888();

   }
sServer7888() {


    try{
    final ServerSocket serverSocketConn = new ServerSocket(7888);               
    while (true){
    try{
       Socket socketConn1 = serverSocketConn.accept();
          new Thread(new ConnectionHandler(socketConn1)).start();                       
    }
    catch(Exception e){
        e.printStackTrace(System.out);
    }
       }
    } 
    catch (Exception e)     {
         e.printStackTrace(System.out);
    }

}


class ConnectionHandler implements Runnable {

  private Socket receivedSocketConn1;
    ConnectionHandler(Socket receivedSocketConn1) {
      this.receivedSocketConn1=receivedSocketConn1;
    }

    public void run() {

      while ((nextChar=readIn1.read()) != -1) {

         completeMessage += (char) nextChar;     
         if (nextChar == '*')
         {

          //calling of various function depends on the input data
          completeMessage="";

         }
       }   
      }
   }
}
gaborsch
  • 15,408
  • 6
  • 37
  • 48
new14
  • 703
  • 1
  • 10
  • 16
  • Perm generation contains the loaded classes and there is nothing wrong if it takes some space which will not be cleared. Consider it like a "constant" for simplicity (of course it can grow if you use dynamic class creation / loading). The low old generation means that your application doesn't have a lot of long-live objects and you can give more space to young generation. – Alexey A. Feb 08 '13 at 17:45
  • @Alexey what do you mean by loaded classes? I have updated my question with the classes I call in. – new14 Feb 09 '13 at 02:38
  • I mean the classes of your application + dependent library classes from other libraries (with their dependencies). But don't bother of it 17mb of perm space is too small to put attention. – Alexey A. Feb 09 '13 at 11:30
  • @Alexey what I have is actually a socket application. Client connect send data and there numerous sql insert,update and selects are perform. The problem I notice is that it grows like say from 80.33 to 80.45. So looks like something to worry here or not? – new14 Feb 09 '13 at 15:17
  • there is nothing to worry, it can fluctuate a bit. From my experience I've never had memory leaks with permanent generation even in highly loaded apps. – Alexey A. Feb 09 '13 at 15:31
  • @Alexey how diagnose on this memory leak as it worries me though. I think I will keep monitoring and update you further. Should I run other command or test to ascertain on memory leakage possbilities? – new14 Feb 09 '13 at 15:39
  • @Alexey what I notice as there are some connection made and data send and process it keep increasing like at time 0.01 and at time even 3.24 etc. So what is causing it to keep grow? Could it be due to I have many string variables and is there any special way to close it after using. Because I have checked all my resultset and statement have been closed. – new14 Feb 10 '13 at 12:47

2 Answers2

1

The -Xmx flag is the size used by the eden space, survivor spaces, and old generation. PermGen is on top of that and is configured with the -XX:MaxPermGen flag.

The default size of the permanent generation is 64MB (differs depending on implementation of JVM, but most are 64MB), so there's capacity spare if more were needed.

Ben Ashford
  • 121
  • 3
  • I running my application via yajsw daemon so I have set both the initial and max memory in its conf file. I will try to see if there is any config available for MaxPermGen too. Normally will it keep growing? – new14 Feb 09 '13 at 02:43
  • It will keep growing until it reaches the maximum size, then you'll get a `OutOfMemoryError: PermGen` thrown. However, things that are stored in PermGen are there permanently (hence the name), so if it kept growing indefinitely there are memory leak issues you need to worry about, it's use should level off once everything is loaded. – Ben Ashford Feb 09 '13 at 08:23
  • what I have is actually a socket application. Client connect send data and there numerous sql insert,update and selects are perform. The problem I notice is that it grows like say from 80.33 to 80.45. So looks like something to worry here or not? – new14 Feb 09 '13 at 15:16
  • It sounds typical to me, you should see PermGen usage grow rapidly when an application has just started, then continue to grow at an ever slower pace. It may still increase after an application has been running for hours, depending on what it's trying to do. Either way, the 64MB limit is low enough that any genuine leaks will be obvious as it'll cause an `OutOfMemoryError`; if you never see that, there's nothing to worry about. – Ben Ashford Feb 09 '13 at 15:44
  • yes I can see it growing at a slow pace but I want to be proactive to monitor and see if any problem. My application basically is a socket application client send data and thereafter there numerous sql insert,update and select are running via few different fuction according to the type of data received. How do you decide that it is 64Mb where do you look for this? Should I increase this as I have increase my max and initial memory to both 256M? – new14 Feb 09 '13 at 16:06
0

You app is just running - there is nothing special here.

  • In this 60 seconds no GC was run (neither small nor full GC)
  • It seems that a minimum number of objects are generated, there is a slight increase in the Eden space

If the application was running before (meaning that all classes were loaded) you don't have to worry about the PermGen space.

Otherwise it would be nice if you could show all your memory-related system parameters.

Concerning the 2nd and 3rd samples:

The 2nd sample (before restart) shows that the application has never run a FullGC. It means, that the space for objects is enough. Similarly technically no change in PermGen space, it means that the application already loaded all required classes, no new classloading happens.

The third example (after restart) shows that the application is slowly loading all necessary classes, at the end technically no new classes are loaded for minutes. It does not mean, that it will never happen, it only means that the app after 20 minutes already loaded the required classes. So, no new big increase is expected.

Although it may happen that some hidden part of the application becomes active, and you will load a number of classes, imagine that you have 5 times more space than you actually allocated. Also, it is a finite process, after a class was loaded, it will not be loaded again.

gaborsch
  • 15,408
  • 6
  • 37
  • 48
  • both my max and initial memory have been set to 256M,the issue here I have been running it via yajsw which is like daemon to run the java application in linux environment so let me know what else you want me to set? Will the PermGen keep growing as my application is socket based where each time there will be new connections made will that increase PermGen? – new14 Feb 09 '13 at 02:45
  • In `PermGen` the JVM stores the `Class` definitions. That's what I mean that *If the application was running before you don't have to worry*, because all the class definitions are already loaded. Also, you have 17M of the possible default 64M used, if *any other* classloading would happen, the `PermGen` still allowed to extend. You can also observe that in the first 15 sec (because of some operation) the Eden usage is increased, but the PermGen stayed as it was. – gaborsch Feb 10 '13 at 23:22
  • I got some more clarification to be made my application have a quite a number of global variable and few huge function too. How will this effect the perm generation? When you say class definition is those imported clases or my classes too? How do you decide that I got 17M is it 17057.8? I am kind of confuse when I ran ./jinfo -flag MaxPermSize 28018 shows as -XX=85983232 and ./jinfo -flag PermSize 28018 shows as -XX=21757952 but when I run ./jstat -gcutil -t 28018 15s but the P column shows as 76.33? and when I run ./jstat -gc -t 28018 15s and PC is 21248.why the difference? – new14 Feb 11 '13 at 00:24
  • In `jstat -gcutil` the column `P`represents **percentage** of the used perm space, so 76.33% is not bad. Actually 21248.0 KB is allocated for PermGen, 17057.8 KB is used, but PermGen can extend until cca 84000 KB, if needed. So, dont't worry everything is all right, your app PermGen space can grow almost 5 times as the current size. – gaborsch Feb 11 '13 at 01:09
  • In Class definitions **All classes** are involved, even JVM classes, framework classes, application classes. The number of *instances* (objects) are not interesting, they go another memory area (Eden, Survivor, Old). Also, the number and size of the functions is all the same. – gaborsch Feb 11 '13 at 01:12
  • I am not worried but wat I can see is that the perm generation keep growing say by 0.1 or at times 0.01% is this normal? So the jinfo is showing us in what metric is it byte I guess? – new14 Feb 11 '13 at 01:31
  • What do you mean by class definition I am confuse with the instance? Should I put my skeleton my programme to give you a better view? – new14 Feb 11 '13 at 01:32
  • There is one class definition for e.g. `java.lang.String` class. That is loaded into PermGen. There are `String`s all around your code (e.g. "Hello") - tens of thousands of them, they go to Heap (Eden, Survivor, Old) - they are the *instances* or *objects*. Once an application starts to use a Class (imports it) the class definition is loaded (once per class). If you say `new String(...)`, then the new *instance* is created. – gaborsch Feb 11 '13 at 01:47
  • I have update with skeleton of my codes above in my question. Can I say that for each new connection when new Thread(new ConnectionHandler(socketConn1)).start(); is called that is the time the class definitions are loaded into PermGen. So they will remain there is it? Will it be cleaned after my thread ended? – new14 Feb 11 '13 at 01:59
  • No, if a class definition is loaded, **it will remain there**. So, what you say is **true for the first time**, but later it will will not change, because the classes once already have been loaded. – gaborsch Feb 11 '13 at 02:03
  • so I will say the increase is cause due to my own class which are kept loaded each time a new connection being made that is class ConnectionHandler implements Runnable ? Will all the perm generation be cleaned? – new14 Feb 11 '13 at 02:23
  • what do you think is causing the perm generation to grow in my case if you say the class definition have been loaded will not be loaded again? – new14 Feb 11 '13 at 14:04
  • According to the result above **there is no increase in `PermGen`**. If you have another measure, you could update your question. Also, it would be nice if you would upvote and/or accept the answer, since I have answered at least 3 questions since the original post. – gaborsch Feb 11 '13 at 15:42
  • yes to be fair I put accepted your answer and I will update for another measurement. Please do give me your view once I get new measurement. – new14 Feb 11 '13 at 18:14
  • I have added two more sample where just before I restart the application the last value is 80.74 and then I shown what I see after the restart which obivious keep growing. What fears me is that the Perm Generation value is keep growing even at a small rate is that fine or any indication of someting? – new14 Feb 13 '13 at 15:57
  • when you say this "Also, it is a finite process, after a class was loaded, it will not be loaded again." does it means that once my this class ConnectionHandler implements Runnable loaded it wont be loaded again. Currently the timestampt is 77577 and perm gen is showing as 80.67. I can see that keep growing but at a very slow pace. – new14 Feb 14 '13 at 13:04
  • Yes, it means that. I am sure that the loaded classes are in connection with some not-yet-run part of the code. But you can make an estimation: Calculate the difference of the *maximum PermGen size* and the *currently used PermGen size* (that much is the available PermGen) (call it #1). Then calculate the *daily increment* in PermGen for the last day (#2). Then divide #1 with #2, you will see an estimation, when your PermGen will be filled, if the increment it in this ratio. Tell me, what is the result of the calculation. – gaborsch Feb 14 '13 at 13:32
  • but from my observation and data received it looks like all the part of the class have been run. Does it also goes for the function calculation that once function is loaded then it wont be loaded again? Ok I will monitor and update your the difference and lets see how much it grows. Because I am very curious as I know each connection made will just call this class ConnectionHandler implements Runnable and there is not other classes involved. – new14 Feb 14 '13 at 14:00
  • so today the PermValue is at 80.74 and the Old Gen is 5.74. I will keep monitoring it and see how it progress and update you. – new14 Feb 15 '13 at 15:20
  • today the PermValue is 80.88 and old gen is 7.88 and YCC is 90. Any comments? – new14 Feb 16 '13 at 14:00
  • now the permvalue is at 81.05 and the old gen is 17.74 and YCC is at 220. – new14 Feb 19 '13 at 16:11
  • Yes, I can see the small increase. The question is: seeing the *absolute* numbers of used and maximum available memory to certain areas, what is the average leaking ratio per day? I believe that it is very low. Seeing that in the last 3 days it was 0.17%, 1% increase is reached in 17.5 days. So, it will reach 100% in 334 days from today (the remaining 19%). Then the PermGen can still extend, adding more memory - since you allocated 20% of the total memory, it takes 7494 days to fill up the total memory - by that time, the calendar will show April 2033. – gaborsch Feb 19 '13 at 16:43
  • what do you mean by seeing absolute numbers which value are you referring too here? By seeing this increase does it suggest of any leakages happening where I should counter in my codes or this is something norm? Just kind of worried. – new14 Feb 19 '13 at 18:15
  • It's normal. By absolute number I mean `PC` and `PU` numbers, compared to `-XX:MaxPermSize` settings. The permvalue (81.05) is PERCENT. e.g. seeing the first example output, you can see `21248.0 17057.8` as `PC` and `PU`. The percent is 17057.8 / 21248.0 = 80.28%. That's the *relative* number. – gaborsch Feb 19 '13 at 18:23
  • now the perm value is 81.28% so I guess after 9days is quite low rite? So now it is allocated 21248KB but it will extend further when will the extension happen at 90% or 100% utilisation of the current value? My Old now is 41.22 so once it is nearly 100% I suppose the first FGC will happen right? – new14 Feb 28 '13 at 02:28