This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new f467ae7929 Update Async Profiler doc (#12842)
f467ae7929 is described below

commit f467ae7929832b0ac25888a8f1bbc65ec6eecb73
Author: zhengziyi0117 <[email protected]>
AuthorDate: Mon Dec 9 16:53:49 2024 +0800

    Update Async Profiler doc (#12842)
---
 docs/en/concepts-and-designs/profiling.md          | 22 ++++++-----
 ...c-profiler.md => backend-java-app-profiling.md} | 43 ++++++++++++++--------
 docs/menu.yml                                      |  4 +-
 3 files changed, 42 insertions(+), 27 deletions(-)

diff --git a/docs/en/concepts-and-designs/profiling.md 
b/docs/en/concepts-and-designs/profiling.md
index 52101addda..5c1ae91e96 100644
--- a/docs/en/concepts-and-designs/profiling.md
+++ b/docs/en/concepts-and-designs/profiling.md
@@ -19,9 +19,6 @@ In the SkyWalking landscape, we provided three ways to 
support profiling within
 In-process profiling is primarily provided by auto-instrument agents in the 
VM-based runtime.
 
 ### Tracing Profiling
-Learn more tech details from the post, [**Use Profiling to Fix the Blind Spot 
of Distributed
-Tracing**](sdk-profiling.md).
-
 This feature resolves the issue <1> through capture the snapshot of the thread 
stacks periodically.
 The OAP would aggregate the thread stack per RPC request, and provide a 
hierarchy graph to indicate the slow methods
 based
@@ -30,20 +27,25 @@ on continuous snapshot.
 The period is usually every 10-100 milliseconds, which is not recommended to 
be less, due to this capture would usually
 cause classical stop-the-world for the VM, which would impact the whole 
process performance.
 
+Learn more tech details from the post, [**Use Profiling to Fix the Blind Spot 
of Distributed
+Tracing**](sdk-profiling.md).
+
 For now, Java and Python agents support this.
 
-### Async Profiler
+### Java App Profiling
+
+Java App Profiling uses the 
[AsyncProfiler](https://github.com/async-profiler/async-profiler) for sampling
 
 Async Profiler is a low overhead sampling profiler for Java that does not 
suffer from Safepoint bias problem. It features HotSpot-specific APIs to 
collect stack traces and to track memory allocations. The profiler works with 
OpenJDK and other Java runtimes based on the HotSpot JVM.
 
-async-profiler can trace the following kinds of events:
+Async Profiler can trace the following kinds of events:
 
-CPU cycles
-Hardware and Software performance counters like cache misses, branch misses, 
page faults, context switches etc.
-Allocations in Java Heap
-Contented lock attempts, including both Java object monitors and ReentrantLocks
+- CPU cycles
+- Allocations in Java Heap
+- Contented lock attempts, including both Java object monitors and 
ReentrantLocks
+- and 
[more](https://github.com/async-profiler/async-profiler/blob/master/docs/ProfilingModes.md)
 
-For now, Java agent support this.
+Only Java agent support this.
 
 ## Out-of-process profiling
 
diff --git a/docs/en/setup/backend/backend-async-profiler.md 
b/docs/en/setup/backend/backend-java-app-profiling.md
similarity index 64%
rename from docs/en/setup/backend/backend-async-profiler.md
rename to docs/en/setup/backend/backend-java-app-profiling.md
index db20a40874..b76c1cc4cd 100644
--- a/docs/en/setup/backend/backend-async-profiler.md
+++ b/docs/en/setup/backend/backend-java-app-profiling.md
@@ -1,19 +1,32 @@
-# Async Profiler
+# Java App Profiling
+
+Java App Profiling uses the AsyncProfiler for sampling
 
 Async Profiler is bound within the auto-instrument agent and corresponds to 
[In-Process 
Profiling](../../concepts-and-designs/profiling.md#in-process-profiling).
 
-It is passed to the proxy in the form of a task, allowing it to be enabled or 
disabled dynamically.
-When service encounters performance issues (cpu usage, memory allocation, 
locks), async-profiler task can be created.
-When the proxy receives a task, it enables Async Profiler for sampling.
-After sampling is completed, a flame graph will be generated for performance 
analysis to determine the specific business code line that caused the 
performance problem.
+It is delivered to the agent in the form of a task, allowing it to be enabled 
or disabled dynamically.
+When service encounters performance issues (cpu usage, memory allocation, 
locks), Async Profiler task can be created.
+When the agent receives a task, it enables Async Profiler for sampling.
+After sampling is completed, the sampling results are analyzed by requesting 
the server to render a flame graph for performance 
+analysis to determine the specific business code lines that cause performance 
problems.
 
-## Activate async profiler in the OAP
+## Activate Async Profiler in the OAP
 OAP and the agent use a brand-new protocol to exchange Async Profiler data, so 
it is necessary to start OAP with the following configuration:
 
 ```yaml
 receiver-async-profiler:
-  selector: ${SW_RECEIVER_ASYNC_PROFILER:default}
-  default:
+   selector: ${SW_RECEIVER_ASYNC_PROFILER:default}
+   default:
+      # Used to manage the maximum size of the jfr file that can be received, 
the unit is Byte, default is 30M
+      jfrMaxSize: ${SW_RECEIVER_ASYNC_PROFILER_JFR_MAX_SIZE:31457280}
+      # Used to determine whether to receive jfr in memory file or physical 
file mode
+      #
+      # The memory file mode have fewer local file system limitations, so they 
are by default. But it costs more memory.
+      #
+      # The physical file mode will use less memory when parsing and is more 
friendly to parsing large files.
+      # However, if the storage of the tmp directory in the container is 
insufficient, the oap server instance may crash.
+      # It is recommended to use physical file mode when volume mounting is 
used or the tmp directory has sufficient storage.
+      memoryParserEnabled: 
${SW_RECEIVER_ASYNC_PROFILER_MEMORY_PARSER_ENABLED:true}
 ```
 
 ## Async Profiler Task with Analysis
@@ -45,18 +58,18 @@ When the Agent receives a Async Profiler task from OAP, it 
automatically generat
 
 ### Wait the agent to collect data and upload
 
-At this point, async-profiler will trace the following kinds of events:   
+At this point, Async Profiler will trace the events you selected when you 
created the task:
 
-1. CPU cycles
-2. Hardware and Software performance counters like cache misses, branch 
misses, page faults, context switches etc.
-3. Allocations in Java Heap
-4. Contented lock attempts, including both Java object monitors and 
ReentrantLocks
+1. CPU,WALL,ITIMER,CTIMER: CPU cycles
+2. ALLOC: Allocations in Java Heap
+3. LOCK: Contented lock attempts, including both Java object monitors and 
ReentrantLocks
 
-Finally, java agent will upload the jfr file produced by async-profiler to the 
oap server for online performance analysis.
+Finally, the agent will upload the jfr file produced by Async Profiler to the 
oap server for online performance analysis.
 
 ### Query the profiling task progresses
 
-Wait for async-profiler to complete data collection and upload successfully,We 
can query the execution log of the async-profiler task and the successful and 
failed instances,which includes the following information:
+Wait for Async Profiler to complete data collection and upload successfully.
+We can query the execution logs of the Async Profiler task and the task 
status, which includes the following information:
 
 1. **successInstanceIds**: SuccessInstanceIds gives instances that have 
executed the task successfully.
 2. **errorInstanceIds**: ErrorInstanceIds gives instances that failed to 
execute the task.
diff --git a/docs/menu.yml b/docs/menu.yml
index 3a5e7492d4..39b0d7d052 100644
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@ -260,8 +260,8 @@ catalog:
             path: "/en/setup/backend/backend-ebpf-profiling"
           - name: "Continuous Profiling"
             path: "/en/setup/backend/backend-continuous-profiling"
-          - name: "Async Profiler"
-            path: "/en/setup/backend/backend-async-profiler"
+          - name: "Java App Profiling"
+            path: "/en/setup/backend/backend-java-app-profiling"
       - name: "Event"
         path: "/en/concepts-and-designs/event/"
       - name: "Extension"

Reply via email to