• 【java 内存】解决内存溢出的问题记录和JVM的常用选项。


    我有一个Solr实例,由Tomcat托管,最近开始创建minidump文件.任何日志中没有任何错误,Solr继续使用.

    这些文件大约是14GB,正在填满硬盘.在我们调查这个问题的时候有没有办法解决这个问题?
    解决方法
    一般来说,当JVM崩溃时,hs_err错误日志文件(由-XX:ErrorFile控制)的内容通常足以指出可能出现的问题.

    为了防止Oracle JVM Hotspot生成Windows minidump(mdmp文件),在命令行中使用的JVM选项是:-XX:-CreateMinidumpOnCrash

    //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Hotspot JVM提供以下三大类选项:
    1. 标准选项:这类选项的功能是很稳定的,在后续版本中也不太会发生变化。运行java或者java -help可以看到所有的标准选项。所有的标准选项都是以-开头,比如-version, -server等。
    2. X选项:比如-Xms。这类选项都是以-X开头,可能由于这个原因它们被称为X选项。运行java -X命令可以看到所有的X选项。这类选项的功能还是很稳定,但官方的说法是它们的行为可能会在后续版本中改变,也有可能不在后续版本中提供了。
    3. XX选项:这类选项是属于实验性,主要是给JVM开发者用于开发和调试JVM的,在后续的版本中行为有可能会变化。
    XX选项的语法

        如果是布尔类型的选项,它的格式为-XX:+flag或者-XX:-flag,分别表示开启和关闭该选项。
        针对非布尔类型的选项,它的格式为-XX:flag=value
    ————————————————
    内存大小相关的选项

        -Xms 设置初始堆的大小,也是最小堆的大小,它等价于:-XX:InitialHeapSize

        -Xmx 设置最大堆的大小,它等价于-XX:MaxHeapSize。
        比如,下面这条命令就是设置堆的初始值为128m,最大值为2g。

        java -Xms128m -Xmx2g MyApp
    ————————————————
    在Hotspot JVM中,侧重于吞吐量的垃圾回收器是Parallel Scavenge,它的相关选项如下:

        -XX:+UseParallelOldGC 表示新生代和老生代都使用并行回收器,其中的Old表示老生代的意思,而不是旧的意思。
        -XX:ParallelGCThreads=n 表示配置多少个线程来回收垃圾。默认的配置是如果处理器的个数小于8,那么就是处理器的个数;如果处理器大于8,它的值就是3+5N/8。也可以根据程序的需要去设置这个值,比如你的机器有16核,上面有4个Java程序,那么设置将这个值设置为4比较合理,因为JVM不会去探测同一机器上有多少个Java程序。
        -XX:UseAdaptiveSizePolicy 表示是否开启自适应策略,打开这个开关后,JVM自动调节JVM的新生代大小,Eden和Survivor的比例等参数。用户只需要设置期望的吞吐量(-XX:GCTimeRatio)和期望的停顿时间(-XX:MaxGCPauseMillis)。然后,JVM会尽量去向用户期望的方向去优化。
    ————————————————

    • -Xloggc:<file> 表示把GC日志写入到一个文件中去,而不是打印到标准输出中。

    需要注意的是:这些和GC日志相关的选项可以在JVM已经启动后再开启,可以通过jinfo这个工具去设置。具体可以参见jinfo的帮助文件。这样就可以在需要诊断问题的时候再开启GC日志。

  • 相关阅读:
    The Instruments Workflow
    About Instruments
    视频播放插件Video.js
    各大三方API
    Xib、AutoLayout等使用心得
    克隆示例
    接口类型的多重继承
    高级着色语言简介
    DirectX Box
    Direct3D初始化
  • 原文地址:https://www.cnblogs.com/Fooo/p/16020181.html
Copyright © 2020-2023  润新知