互联网 Web 的 JVM 一般怎样设置新生代的 GC 时间是多少

减小新生代,或对web服务进行分流,例如load balance,减少每台服务器的吞吐量
■网友
所有的调优都是根据你的具体应用来的,通过压测什么的来确认设置多少,这个没人能给你一个数值的,不然也不会有所谓的调优了
■网友
挖个坑,如果有人赞,我就把某大型网站的jvm启动参数贴上来。谢赞,填坑。-server -Xmx2g -Xms2g -Xmn256m
-XX:PermSize=128m -Xss256k
-XX:+DisableExplicitGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=70
-Xmn和-Xmx之比大概是1:9,新生代内存太大会导致young gc时间较长,一个好的Web系统应该是每次http请求申请内存都能在young gc回收掉,full gc永不发生。
【互联网 Web 的 JVM 一般怎样设置新生代的 GC 时间是多少】 所以xmn的值应该是保证够用(够http并发请求之用)的前提下最小。

■网友
我自己动手测试的结果,在2个CPU的虚拟机上,能过减小新生代到512MB,以及建立对象池等代码调整,把新生代GC时间从100多ms 降低到30ms以内。把相应项目部署到16核CPU的物理机上,新生代GC只需要3-4ms
■网友
CMS是并发的,ParNew不是。减小新生代的大小可以减小GC阻塞的时间


    推荐阅读