【JVM参数记录】

4C8G

参数

export maxParameterCount="1000"
export acceptCount="1000"
export maxSpareThreads="750"
export maxThreads="1000"
export minSpareThreads="50"
export URIEncoding="UTF-8"
export JAVA_OPTS="-Djava.library.path=/usr/local/lib -Dgroovy.use.classvalue=true -server -Xms4096m -Xmx4096m  -XX:MetaspaceSize=256m -XX:CompressedClassSpaceSize=200m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:ParallelGCThreads=8 -XX:-UseBiasedLocking -XX:+ExplicitGCInvokesConcurrent -XX:+PrintReferenceGC  -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions  -XX:G1NewSizePercent=10 -XX:G1MaxNewSizePercent=45 -Xloggc:/export/Logs/gc.log" 分析

说明

这些参数会影响Tomcat服务器的性能和垃圾回收行为。下面是对这些参数的详细分析:

  1. maxParameterCount="1000"
    这个参数设置了连接器(Connector)可以处理的最大请求参数数量。Tomcat的连接器用于处理来自客户端的请求。设置一个合适的最大参数数量可以防止请求过大导致内存溢出。

  2. acceptCount="1000"
    这个参数设置了连接器可以同时接受的最大连接数。如果服务器同时有多个请求,这个值决定了队列的长度。如果请求量很大,可能需要增加这个值以允许更多请求同时等待处理。

  3. maxSpareThreads="750"
    这个参数设置了连接器保持的最大空闲线程数。空闲线程是未处理任何请求的线程。保持一定数量的空闲线程可以快速响应新来的请求。

  4. maxThreads="1000"
    这个参数设置了连接器可以创建的最大线程数。线程数上限是为了防止Tomcat消耗过多内存。如果设置得太低,可能会导致连接器无法处理过多的并发请求。

  5. minSpareThreads="50"
    这个参数设置了连接器保持的最小空闲线程数。保持最小空闲线程数可以确保有足够的线程可用以处理请求,避免在高峰时段出现线程不足的情况。

  6. URIEncoding="UTF-8"
    这个参数设置了连接器使用的URI编码。UTF-8是一种广泛使用的字符编码,可以正确处理多种语言的字符。

  7. JAVA_OPTS
    这是一个包含了多个JVM启动参数的环境变量。这些参数会直接影响垃圾回收器的行为和JVM的性能。下面是其中一些参数的详细解释:

    • -Djava.library.path=/usr/local/lib:指定Java访问本地库的路径。

    • -Dgroovy.use.classvalue=true:这个参数是针对Groovy语言的,它允许Groovy使用类值(class values)。

    • -server:指定JVM使用服务器模式启动,这会优化性能,适用于长时间运行的应用程序。

    • -Xms4096m -Xmx4096m:设置JVM的初始堆大小和最大堆大小为4GB。

    • -XX:MetaspaceSize=256m:设置元空间大小为256MB。

    • -XX:CompressedClassSpaceSize=200m:设置压缩类空间大小为200MB。

    • -XX:MaxMetaspaceSize=512m:设置元空间的最大大小为512MB。

    • -XX:+HeapDumpOnOutOfMemoryError:当发生内存溢出错误时,生成堆转储文件。

    • -XX:HeapDumpPath=/export/Logs:指定堆转储文件的存放路径。

    • -Djava.awt.headless=true:指定Java应用程序在没有图形用户界面的情况下运行。

    • -Dsun.net.client.defaultConnectTimeout=60000:设置网络连接超时时间为60000毫秒(60秒)。

    • -Dsun.net.client.defaultReadTimeout=60000:设置网络读取超时时间为60000毫秒(60秒)。

    • -Djmagick.systemclassloader=no:这个参数是针对ImageMagick的,它阻止系统类加载器加载ImageMagick的类。

    • -Dnetworkaddress.cache.ttl=300:设置网络地址缓存的时间到LiveAddresses刷新的时间间隔。

    • -Dsun.net.inetaddr.ttl=300:设置InetAddress对象缓存的时间到LiveAddresses刷新的时间间隔。

    • -XX:+PrintGC:打印垃圾回收日志。

    • -XX:+PrintGCDetails:打印详细的垃圾回收日志。

    • -XX:+PrintGCDateStamps:在垃圾回收日志中添加日期和时间戳。

    • -XX:+PrintHeapAtGC:在垃圾回收期间打印堆的信息。

    • -XX:+UseG1GC:启用Garbage-First(G1)垃圾回收器。G1 GC的目标是提供一个可预测的停顿时间,这对于提供良好的用户体验至关重要。

    • -XX:MaxGCPauseMillis=100:设置垃圾回收器的目标最大暂停时间(以毫秒为单位)。这个参数可以帮助调整垃圾回收器的性能,以满足对低延迟的需求。

    • -XX:ParallelGCThreads=8:设置并行垃圾回收时的线程数。这个参数会影响垃圾回收的速度,特别是在多核处理器上。

    • -XX:-UseBiasedLocking:禁用偏向锁。偏向锁可以提高锁的性能,但在高并发情况下可能导致死锁。

    • -XX:+ExplicitGCInvokesConcurrent:在执行垃圾回收时,确保并发安全。这个参数通常与G1垃圾回收器一起使用。

    • -XX:+PrintReferenceGC:打印引用处理的垃圾回收日志,这有助于分析和调试内存泄漏问题。

    • -XX:+ParallelRefProcEnabled:启用并行引用处理,这是G1垃圾回收器的一部分,可以提高处理软引用和弱引用的效率。

    • -XX:+UnlockExperimentalVMOptions:解锁实验性JVM选项,这允许使用尚未正式支持的特性。

    • -XX:G1NewSizePercent=10:设置新分配的堆大小占整个堆大小的百分比。

    • -XX:G1MaxNewSizePercent=45:设置新分配的堆大小最大占整个堆大小的百分比。

    • -Xloggc:/export/Logs/gc.log:指定垃圾回收日志文件的路径。这个日志对于调试和优化垃圾回收性能非常重要。

这些参数的组合旨在优化Tomcat服务器的性能,减少垃圾回收带来的停顿时间,并确保应用程序能够有效地使用内存。在实际部署中,可能需要根据应用程序的具体需求和硬件资源情况进行调整。

8C16G

参数

export maxParameterCount="1000"
export acceptCount="1000"
export maxSpareThreads="750"
export maxThreads="1000"
export minSpareTHreads="50"
export URIEncoding="UTF-8"
export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms8192m -Xmx8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:/export/Logs/bargain.jd.local/gc.log -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:ParallelGCThreads=8"

说明

该参数用于设置Java虚拟机(JVM)启动参数的export命令,它们通常在Unix-like系统的shell脚本中使用。这些参数会影响Tomcat服务器的性能和垃圾回收行为。下面是对这些参数的详细分析:

  1. maxParameterCount="1000"
    这个参数设置了连接器可以处理的最大请求参数数量。Tomcat的连接器用于处理来自客户端的请求。设置一个合适的最大参数数量可以防止请求过大导致内存溢出。

  2. acceptCount="1000"
    这个参数设置了连接器可以同时接受的最大连接数。如果服务器同时有多个请求,这个值决定了队列的长度。如果请求量很大,可能需要增加这个值以允许更多请求同时等待处理。

  3. maxSpareThreads="750"
    这个参数设置了连接器保持的最大空闲线程数。空闲线程是未处理任何请求的线程。保持一定数量的空闲线程可以快速响应新来的请求。

  4. maxThreads="1000"
    这个参数设置了连接器可以创建的最大线程数。线程数上限是为了防止Tomcat消耗过多内存。如果设置得太低,可能会导致连接器无法处理过多的并发请求。

  5. minSpareTHreads="50"
    这个参数设置了连接器保持的最小空闲线程数。保持最小空闲线程数可以确保有足够的线程可用以处理请求,避免在高峰时段出现线程不足的情况。

  6. URIEncoding="UTF-8"
    这个参数设置了连接器使用的URI编码。UTF-8是一种广泛使用的字符编码,可以正确处理多种语言的字符。

  7. JAVA_OPTS
    这是一个包含了多个JVM启动参数的环境变量。这些参数会直接影响垃圾回收器的行为和JVM的性能。下面是其中一些参数的详细解释:

    • -Djava.library.path=/usr/local/lib:指定Java访问本地库的路径。
    • -server:指定JVM使用服务器模式启动,这会优化性能,适用于长时间运行的应用程序。
    • -Xms8192m -Xmx8192m:设置JVM的初始堆大小和最大堆大小为8GB。
    • -XX:+HeapDumpOnOutOfMemoryError:当发生内存溢出错误时,生成堆转储文件。
    • -XX:HeapDumpPath=/export/Logs:指定堆转储文件的存放路径。
    • -Djava.awt.headless=true:指定Java应用程序在没有图形用户界面的情况下运行。
    • -Dsun.net.client.defaultConnectTimeout=60000:设置网络连接超时时间为60000毫秒(60秒)。
    • -Dsun.net.client.defaultReadTimeout=60000:设置网络读取超时时间为60000毫秒(60秒)。
    • -Djmagick.systemclassloader=no:这个参数是针对ImageMagick的,它阻止系统类加载器加载ImageMagick的类。
    • -Dnetworkaddress.cache.ttl=300:设置网络地址缓存的时间到LiveAddresses刷新的时间间隔。
    • -Dsun.net.inetaddr.ttl=300:设置InetAddress对象缓存的时间到LiveAddresses刷新的时间间隔。
    • -XX:+PrintGC:打印垃圾回收日志。
    • -XX:+PrintGCDetails:打印详细的垃圾回收日志。
    • -XX:+PrintGCDateStamps:在垃圾回收日志中添加日期和时间戳。
    • -XX:+PrintHeapAtGC:在垃圾回收期间打印堆的信息。
    • -Xloggc:/export/Logs/bargain.jd.local/gc.log:指定垃圾回收日志文件的路径。
    • -XX:+UseG1GC:启用Garbage-First(G1)垃圾回收器。G1 GC的目标是提供一个可预测的停顿时间,这对于提供良好的用户体验至关重要。
    • -XX:MaxGCPauseMillis=100:设置垃圾回收器的目标最大暂停时间(以毫秒为单位)。

16C32G

参数

export maxParameterCount="1500"
export acceptCount="1500"
export maxSpareThreads="1200"
export maxThreads="1500"
export minSpareThreads="50"
export URIEncoding="UTF-8"
export JAVA_OPTS=" -Xms21299m  -Xmx21299m  -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m  -XX:MaxDirectMemorySize=3932m  -XX:ConcGCThreads=0  -XX:ParallelGCThreads=16  -XX:CICompilerCount=5  -Djava.library.path=/usr/local/lib -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:-UseBiasedLocking -XX:+ExplicitGCInvokesConcurrent -XX:+PrintReferenceGC  -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions  -XX:G1NewSizePercent=10 -XX:G1MaxNewSizePercent=45 -Xloggc:/export/Logs/gc.log"

说明

上述脚本设置了Tomcat服务器的连接器参数和JVM启动参数,用于优化性能和控制垃圾回收行为。下面是对这些参数的详细分析:

  1. maxParameterCount="1500"
    这个参数设置了连接器可以处理的最大请求参数数量。与之前的设置相比,这个值更高,允许处理更多的请求参数。

  2. acceptCount="1500"
    这个参数设置了连接器可以同时接受的最大连接数。与之前的设置相比,这个值更高,允许服务器同时处理更多的并发连接。

  3. maxSpareThreads="1200"
    这个参数设置了连接器保持的最大空闲线程数。与之前的设置相比,这个值更高,确保有更多空闲线程可以快速响应新请求。

  4. maxThreads="1500"
    这个参数设置了连接器可以创建的最大线程数。与之前的设置相比,这个值更高,允许连接器处理更多的并发请求。

  5. minSpareThreads="50"
    这个参数设置了连接器保持的最小空闲线程数。与之前的设置相比,这个值保持不变,确保在低负载时也有足够的线程可用。

  6. URIEncoding="UTF-8"
    这个参数设置了连接器使用的URI编码。与之前的设置相同,确保正确处理多种语言的字符。

  7. JAVA_OPTS
    这是一个包含了多个JVM启动参数的环境变量。这些参数会直接影响垃圾回收器的行为和JVM的性能。下面是其中一些参数的详细解释:

    • -Xms21299m -Xmx21299m:设置JVM的初始堆大小和最大堆大小为21299MB(20GB)。这与之前的设置相同,提供了较大的内存空间。

    • -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m:设置元数据空间的最大和初始大小为256MB。这与之前的设置相同,限制了元数据空间的大小,以避免过度增长。

    • -XX:MaxDirectMemorySize=3932m:设置直接内存的最大大小为3932MB(3.8GB)。这与之前的设置相同,限制了直接内存的使用。

    • -XX:ConcGCThreads=0:设置并发垃圾回收线程数为0。这意味着垃圾回收将不使用并发模式,而是使用并行模式。

    • -XX:ParallelGCThreads=16:设置并行垃圾回收使用的线程数为16。这与之前的设置相同,允许在多核处理器上进行高效的垃圾回收。

    • -XX:CICompilerCount=5:设置编译器线程数为5。这有助于提高即时编译的效率。

    • -Djava.library.path=/usr/local/lib:指定Java访问本地库的路径。与之前的设置相同。

    • -server:指定JVM使用服务器模式启动,这与之前的设置相同。

    • -XX:+HeapDumpOnOutOfMemoryError:当发生内存溢出错误时,生成堆转储文件。与之前的设置相同。

    • -XX:HeapDumpPath=/export/Logs:指定堆转储文件的存放路径,与之前的设置相同。

    • -Djava.awt.headless=true:指定Java应用程序在没有图形用户界面的情况下运行,与之前的设置相同。

    • -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000:设置网络连接和读取的超时时间,与之前的设置相同。

    • -Djmagick.systemclassloader=no:这个参数是针对ImageMagick的,阻止系统类加载器加载ImageMagick的类,与之前的设置相同。

    • -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300:设置网络地址缓存和InetAddress对象缓存的时间到LiveAddresses刷新的时间间隔,与之前的设置相同。

    • 抱歉,上一条回答被意外截断。继续分析JAVA_OPTS中的参数:

    • -XX:+PrintGC:打印垃圾回收日志,与之前的设置相同。

    • -XX:+PrintGCDetails:打印详细的垃圾回收日志,与之前的设置相同。

    • -XX:+PrintGCDateStamps:在垃圾回收日志中添加日期和时间戳,与之前的设置相同。

    • -XX:+PrintHeapAtGC:在垃圾回收期间打印堆的信息,与之前的设置相同。

    • -XX:+UseG1GC:启用Garbage-First(G1)垃圾回收器,与之前的设置相同。

    • -XX:MaxGCPauseMillis=100:设置垃圾回收器的目标最大暂停时间(以毫秒为单位),与之前的设置相同。

    • -XX:-UseBiasedLocking:禁用偏向锁,这可能会减少锁竞争的开销,与之前的设置相同。

    • -XX:+ExplicitGCInvokesConcurrent:在垃圾回收器运行时,显式地调用并发阶段,与之前的设置相同。

    • -XX:+PrintReferenceGC:打印引用处理的垃圾回收日志,与之前的设置相同。

    • -XX:+ParallelRefProcEnabled:启用并行引用处理,与之前的设置相同。

    • -XX:+UnlockExperimentalVMOptions:解锁实验性的JVM选项,这允许使用尚未正式支持的特性,与之前的设置相同。

    • -XX:G1NewSizePercent=10:设置G1垃圾回收器的新生代大小百分比为10%,这与之前的设置不同,可能会影响新生代的大小和垃圾回收的行为。

    • -XX:G1MaxNewSizePercent=45:设置G1垃圾回收器新生代的最大大小百分比为45%,这与之前的设置相同,确定了新生代的最大比例。

    • -Xloggc:/export/Logs/gc.log:指定垃圾回收日志文件的路径,与之前的设置相同。

这些参数的组合旨在优化应用程序的性能,控制垃圾回收的频率和暂停时间,并确保JVM能够有效地使用内存。通过调整这些参数,可以针对特定的硬件和应用程序需求进行优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值