Overview
Constraints
- Profiler performance analysis is available only to whitelisted users.
- Alpine Linux does not support Profiler. Alpine Linux is a lightweight Linux distribution and does not have the dependencies for running Profiler. To use Profiler, you are advised to use the standard Linux OS.
- To ensure stable application running, you are advised to upgrade the JDK version as required. If you use Profiler on the JDK of an earlier version, the application may break down.
Table 1 JDK version description JDK Type
Version
OpenJDK
- OpenJDK 8u352+
- OpenJDK 17.0.5+
Oracle JDK
- Oracle JDK 17.0.9+
Table 2 JavaAgent updates Agent Version
Description
2.4.17-profiler
2.4.17-profiler-jdk17
Updates of Agent 2.4.17-profiler/2.4.17-profiler-jdk17 and later versions:
- Supported trace generation based on the OpenTelemetry protocol.
- Fixed the issue that the gateway service returns multiple trace IDs.
- Fixed the issue that HttpClient collection is incomplete.
- Fixed the issue that the regular expression for external calls is invalid.
2.4.16-profiler
2.4.16-profiler-jdk17
Updates of Agent 2.4.16-profiler/2.4.16-profiler-jdk17 and later versions:
- (SQL collector) Supported the setting and collection of slow SQL queries and database names.
- (URL collector) Supported exception counting by URL and exception type.
Table 3 Constraints No.
Constraint
1
Profiler is available only to whitelisted users. A maximum of 500 Profilers can be enabled in each environment.
2
The Profiler guide page is displayed only when you enable Profiler for the first time.
3
Profiler supports only Java.
4
If the value of -XX:MaxJavaStackTraceDepth is 0 or smaller, no Java stack will be collected.
5
- CPU Profiler depends on the perf_event_open system call. However, due to the Syscall security policy (seccomp) control of the Linux kernel, processes may be prohibited from calling specific Syscalls.
- Docker environment: Run the following command to run the container. For details about refined system call control, see https://docs.docker.com/engine/security/seccomp/.
docker run --security-opt seccomp=unconfined XXX
- Kubernetes environment: Set privileged to true for a privileged container. The privileged container is always in the Unconfined state.
For more refined system call control, see https://kubernetes.io/docs/tutorials/security/seccomp/.
6
Profiler allocates 8 KB perf_event buffer to each thread of the target process. However, the Linux kernel limits the perf_event related MMap memory. For a non-privileged user, run the following command to ensure that the value of /proc/sys/kernel/perf_event_mlock_kb is large enough: echo 8*threads+ 4 > /proc/sys/kernel/perf_event_mlock_kb
Impact on Performance
According to performance tests, when all diagnosis functions are enabled for Spring Web applications, the CPU overhead increases by about 5%, off-heap memory overhead increases by about 50 MB, and GC and request latency do not increase significantly.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot