高发电量和低老一代

时间:2013-02-08 17:26:56

标签: java garbage-collection jvm jstat

我们实际上已经将jvm的内存增加到256M,现在老一代看起来很小但是Perm Generation相当高,接近80%。通过jstat捕获的样本数据如下。高烫发电产生了什么?

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

重启前的样本

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

重启后的样品

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

使用的类是

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;

代码的骨架。

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="";

         }
       }   
      }
   }
}

2 个答案:

答案 0 :(得分:1)

-Xmx标志是伊甸园空间,幸存者空间和老一代使用的大小。 PermGen位于其之上,并配置了-XX:MaxPermGen标志。

永久代的默认大小是64MB(根据JVM的实现而不同,但大多数是64MB),因此如果需要更多,则有备用容量。

答案 1 :(得分:0)

你的应用程序正在运行 - 这里没什么特别的。

  • 在这60秒内没有运行GC(既不小也不满GC)
  • 似乎生成了最少数量的对象,伊甸园空间略有增加

如果应用程序之前正在运行(意味着所有类都已加载),则不必担心PermGen空间。

否则,如果您能显示所有与内存相关的系统参数,那就太好了。

关于第二和第三个样本:

第二个示例(重启前)显示应用程序从未运行过FullGC 。这意味着,对象的空间足够。同样在技术上 PermGen空间没有变化,这意味着应用程序已经加载了所有必需的类,没有发生新的类加载。

第三个示例(重启后)显示应用程序正在慢慢加载所有必需的类,最后技术上没有新的类加载分钟。它并不意味着它永远不会发生,它只意味着20分钟后的应用已经加载了所需的类。因此,预计不会出现新的大幅增长

虽然可能会发生应用程序的某些隐藏部分变为活动状态,并且您将加载许多类,但想象您的空间比实际分配的空间多5倍。此外,这是一个有限的过程,在加载一个类之后,它将不再被加载。