在我的应用程序服务器上添加-XX:+PrintTenuringDistribution
标志后,我注意到了终身分发的相当奇怪的行为。它经常改变门槛。在某一时刻,它将阈值设置为6,稍后将其设置为1.请参阅三个分布示例:
4082.199: [GC (Allocation Failure) 4082.199: [ParNew
Desired survivor size 57671680 bytes, new threshold 6 (max 6)
- age 1: 753160 bytes, 753160 total
- age 2: 827136 bytes, 1580296 total
- age 3: 820224 bytes, 2400520 total
- age 4: 16311440 bytes, 18711960 total
- age 5: 5282008 bytes, 23993968 total
- age 6: 3655960 bytes, 27649928 total
: 945322K->42452K(1013760K), 0.0174052 secs] 3669835K->2766980K(5007360K), 0.0177287 secs] [Times: user=0.08 sys=0.00, real=0.02 secs]
4104.567: [GC (Allocation Failure) 4104.567: [ParNew
Desired survivor size 57671680 bytes, new threshold 5 (max 6)
- age 1: 46489056 bytes, 46489056 total
- age 2: 574496 bytes, 47063552 total
- age 3: 821560 bytes, 47885112 total
- age 4: 704848 bytes, 48589960 total
- age 5: 16020184 bytes, 64610144 total
- age 6: 4871920 bytes, 69482064 total
: 943572K->88311K(1013760K), 0.0794895 secs] 3668100K->2816248K(5007360K), 0.0799070 secs] [Times: user=0.16 sys=0.00, real=0.09 secs]
4107.628: [GC (Allocation Failure) 4107.628: [ParNew
Desired survivor size 57671680 bytes, new threshold 1 (max 6)
- age 1: 68689512 bytes, 68689512 total
- age 2: 11023360 bytes, 79712872 total
- age 3: 574496 bytes, 80287368 total
- age 4: 821560 bytes, 81108928 total
- age 5: 703768 bytes, 81812696 total
: 989431K->103750K(1013760K), 0.2181073 secs] 3717368K->2852056K(5007360K), 0.2184687 secs] [Times: user=0.21 sys=0.11, real=0.21 secs]
4110.840: [GC (Allocation Failure) 4110.840: [ParNew
Desired survivor size 57671680 bytes, new threshold 1 (max 6)
- age 1: 64760056 bytes, 64760056 total
: 1004870K->73705K(1013760K), 0.1239617 secs] 3753176K->2834924K(5007360K), 0.1243693 secs] [Times: user=0.19 sys=0.01, real=0.12 secs]
4160.382: [GC (Allocation Failure) 4160.382: [ParNew
Desired survivor size 57671680 bytes, new threshold 6 (max 6)
- age 1: 47015728 bytes, 47015728 total
: 974825K->47965K(1013760K), 0.0499277 secs] 3736044K->2809308K(5007360K), 0.0504025 secs] [Times: user=0.14 sys=0.00, real=0.05 secs]
4214.500: [GC (Allocation Failure) 4214.500: [ParNew
Desired survivor size 57671680 bytes, new threshold 2 (max 6)
- age 1: 32275144 bytes, 32275144 total
- age 2: 27719512 bytes, 59994656 total
这种行为是否异常?我想知道JVM设置是否有问题。这些是我使用的标志:
-server -Xms5000m -Xmx5000m -XX:NewSize=1100m -XX:+CMSClassUnloadingEnabled XX:+PrintPromotionFailure -XX:+UseParNewGC -XX:+UseConcMarkSweepGC XX:CMSInitiatingOccupancyFraction=82 -XX:+UseCMSInitiatingOccupancyOnly XX:+DisableExplicitGC -XX:+PrintTenuringDistribution -XX:+PrintGC XX:+PrintGCDetails -XX:+PrintGCTimeStamp