Hide Forgot
Description of problem: RHEL8.1 java-11 performance regression vs RHEL 7.6 java-11, using the specjbb2005 benchmark. There are some CVE mitigation differences, would like to try measuring the older java-11 on my RHEL 8.1 environment if it is possible to force install the el7 rpm. Version-Release number of selected component (if applicable): RHEL 8.1 update 2.4 java-11-openjdk-11.0.5.10-2.el8_1.x86_64 4.18.0-147.3.1.el8_1.x86_64 microcode : 0x2000064 (pre Nov 19) vulnerabilities/itlb_multihit:KVM: Mitigation: Split huge pages vulnerabilities/l1tf:Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled vulnerabilities/mds:Mitigation: Clear CPU buffers; SMT disabled vulnerabilities/meltdown:Mitigation: PTI vulnerabilities/spec_store_bypass:Mitigation: Speculative Store Bypass disabled via prctl and seccomp vulnerabilities/spectre_v1:Mitigation: usercopy/swapgs barriers and __user pointer sanitization vulnerabilities/spectre_v2:Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, RSB filling vulnerabilities/tsx_async_abort:Mitigation: Clear CPU buffers; SMT disabled RHEL 7.6 GA java-11-openjdk-11.0.ea.28-7.el7.x86_64 3.10.0-957.el7.x86_64 microcode : 0x200004d GA ~Nov 2018 vulnerabilities/l1tf:Mitigation: PTE Inversion; VMX: SMT disabled, L1D conditional cache flushes vulnerabilities/meltdown:Mitigation: PTI vulnerabilities/spec_store_bypass:Mitigation: Speculative Store Bypass disabled via prctl and seccomp vulnerabilities/spectre_v1:Mitigation: Load fences, __user pointer sanitization vulnerabilities/spectre_v2:Mitigation: IBRS (kernel) Steps to Reproduce: specjbb2005 benchmark, using the following params: input.jvm_instances=1 input.starting_number_warehouses=4 input.increment_number_warehouses=4 input.ending_number_warehouses=8 input.ramp_up_seconds=120 input.measurement_seconds=120 Running 6 JBB instances on the same baremetal 32c Skylake, looking at total throughput across all instances. Switching between RHEL 8.1 and 7.6 disk for the comparison. Actual results: 8.1 / java-11-openjdk-11.0.5.10-2.el8_1 total WH4 1,188,621 total WH8 1,404,064 7.6 / java-11-openjdk-11.0.ea.28-7.el7 total WH4 1,383,549 total WH8 1,537,329 regression of 9-16% Additional info: numactl pinned results show even higher regression (numabalancing improvements reduce pinning impacts on RHEL8.x): -- pinned 3 JBB instances on each numa node -- 8.1: total WH4 1,216,123 total WH8 1,448,118 7.6: total WH4 1,440,882 total WH8 1,730,265
The EL7 and EL8 sources for OpenJDK are the same. The difference is the implementation of mitigations in the RHEL-7 and 8 kernel. If performance is a factor, the mitigations should be adjusted (keeping in mind the security implications). For examples, see: https://access.redhat.com/articles/3311301