zoukankan      html  css  js  c++  java
  • Tomcat java.lang.OutOfMemoryError: PermGen space error

    Often time, Tomcat may hits the following java.lang.OutOfMemoryError: PermGen space error.

    java.lang.OutOfMemoryError: PermGen space
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    It’s usually happened after the Tomcat restarts a few times.

    1. Solution
    By default, Tomcat is assigned a very little PermGen memory for the running process. To fix it, increase the PermGen memory settings by using the following Java VM options.

    -XX:PermSize<size> - Set initial PermGen Size.
    -XX:MaxPermSize<size> - Set the maximum PermGen Size.
    In the next step, we will show you how to set the VM options in Tomcat, under Windows and Linux environment.



    2. Windows
    Tomcat is managed by this script file catalina.bat, dive inside the script, you will find out that catalina.bat always find and run the setenv.bat file to set the environment variables.

    {$tomcat-folder}incatalina.bat
    //...
    rem Get standard environment variables
    if not exist "%CATALINA_BASE%insetenv.bat" goto checkSetenvHome
    call "%CATALINA_BASE%insetenv.bat"
    goto setenvDone
    :checkSetenvHome
    if exist "%CATALINA_HOME%insetenv.bat" call "%CATALINA_HOME%insetenv.bat"
    :setenvDone
    //...
    2.1 To set the environment variable on Windows, create a setenv.bat manually, and put it into the ${tomcat-folder}in folder.

    ${tomcat-folder}insetenv.bat
    set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xms128m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=256m
    P.S No double quotes, set JAVA_OPTS={value}.

    2.2 Restart Tomcat, it will call the setenv.bat file to set the environment variable automatically.

    {$tomcat-folder}incatalina.bat restart

  • 相关阅读:
    Django rest_framework实现增删改查接口
    文件的三种打开方式知识点回顾
    Django中基表的创建、外键字段属性简介、脏数据概念、子序列化
    drf序列化与反序列化作业1
    rest_framework序列化与反序列化1
    APIview的请求生命周期源码分析
    sql
    正则上面的一个坑
    多线程与多进程---方法对比与使用
    网络编程----踩坑篇
  • 原文地址:https://www.cnblogs.com/Sir-Li/p/4178317.html
Copyright © 2011-2022 走看看