Edge Encryption proxy goes to 95-100% CPU and fails with Java exception
Edge goes to 95-100% CPU and it fails with Java exception. (For example, Java exception happened outside interpreter, nmethods and vtable stubs at pc 0x0000000001194a10).
- Proxy becomes busy and CPU gets between 95-100% used by Java
- Users are not able to use the proxy until the proxy is restarted
- It happens intermittently
- The Java could have crashed with a core dump.
Here is an example of a core dump:
# Internal Error (sharedRuntime.cpp:834), pid=1988, tid=308
# fatal error: exception happened outside interpreter, nmethods and vtable stubs at pc 0x0000000001194a10
# JRE version: Java(TM) SE Runtime Environment (8.0_40-b26) (build 1.8.0_40-b26)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.40-b25 mixed mode windows-amd64 compressed oops)
# Core dump written. Default location: C:\xxxxx\yyyyyy\bin\hs_err_pid1988.mdmp
# If you would like to submit a bug report, please visit:
Here is an example of the CPU usage when the problem happens:
Based on the information provided, Java hardware intrinsics were added to use Advanced Encryption Standard (AES). However, the hardware must support it.
If the hardware does not support it, it causes Java to increase the use of resources.
The solution is to align the proxy with the hardware support for AES. If it is failing, then you need to disable AES on the Java used by the proxy.
To disable hardware AES, use the following flags:
To disable it on the proxy:
- Add to conf/wrapper.conf:
- Restart proxy
If you upgrade your Java to version 121+ (or older), it is not needed anymore. Please comment this out.
Having this option, It could create side effects on the memory used.