>웹 프론트엔드 >JS 튜토리얼 >작업 일정 신뢰성 향상: DolphinScheduler에서 API 모니터링을 위해 Arthas 통합

작업 일정 신뢰성 향상: DolphinScheduler에서 API 모니터링을 위해 Arthas 통합

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-05 12:56:021076검색

이 기사에서는 Arthas를 Apache DolphinScheduler에 통합하여 API 호출을 실시간으로 모니터링하는 방법을 자세히 설명합니다. 강력한 Java 진단 도구인 Arthas는 개발자가 런타임 상태를 검사하고 성능 병목 현상을 식별하며 메서드 호출을 추적하는 데 도움을 줍니다. DolphinScheduler에 Arthas를 내장하면 작업 예약 중에 주요 통화 정보를 캡처할 수 있어 적시에 문제를 감지하고 해결할 수 있어 시스템 안정성이 향상됩니다. 여기서는 DolphinScheduler 환경 내에서 Arthas를 시작하고, 특정 API 호출을 모니터링하고, 수집된 성능 데이터를 분석하여 스케줄링 안정성과 유지 관리성을 향상시키는 단계를 간략하게 설명합니다.

수동 설치

https://arthas.aliyun.com/download/latest_version?mirror=aliyun
arthas-packaging-3.7.2-bin.zip

cp arthas-packaging-3.7.2-bin.zip /opt/arthas
cd /opt/arthas
unzip arthas-packaging-3.7.2-bin.zip

java -jar arthas-boot.jar

Select the corresponding process ID.

오류 문제 해결

오류 1

[ERROR] Start arthas failed, exception stack trace: 
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
        at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:106)
        at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:78)
        at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:250)
        at com.taobao.arthas.core.Arthas.attachAgent(Arthas.java:102)
        at com.taobao.arthas.core.Arthas.<init>(Arthas.java:27)
        at com.taobao.arthas.core.Arthas.main(Arthas.java:161)

해결책:
${DOLPHINSCHEUDLER_HOME}/api-server/bin에서 jvm_args_env.sh에 다음 줄을 추가합니다.

-XX:+StartAttachListener

오류 2

Picked up JAVA_TOOL_OPTIONS: 
java.io.IOException: well-known file /tmp/.java_pid731688 is not secure: file should be owned by the current user (which is 0) but is owned by 989
        at sun.tools.attach.LinuxVirtualMachine.checkPermissions(Native Method)
        at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:117)
        at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:78)
        at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:250)
        at com.taobao.arthas.core.Arthas.attachAgent(Arthas.java:102)
        at com.taobao.arthas.core.Arthas.<init>(Arthas.java:27)
        at com.taobao.arthas.core.Arthas.main(Arthas.java:161)
[ERROR] Start arthas failed, exception stack trace: 
[ERROR] attach fail, targetPid: 731688

해결책:
이 오류를 방지하려면 Arthas 서비스를 실행하는 사용자가 DolphinScheduler를 실행하는 사용자와 일치하는지 확인하세요.

보다

Watch는 매개변수, 반환값 등 메소드의 특정 실행 세부정보를 모니터링하는 데 사용됩니다.

watch org.apache.dolphinscheduler.api.controller.UsersController queryUserList returnObj
[arthas@731688]$ watch org.apache.dolphinscheduler.api.controller.UsersController queryUserList returnObj
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 126 ms, listenerId: 2
method=org.apache.dolphinscheduler.api.controller.UsersController.queryUserList location=AtExit
ts=2024-08-27 02:04:01; [cost=4.918943ms] result=@Result[
...

추적하다

Trace는 호출된 메서드와 각 메서드의 실행 시간을 포함하여 메서드 호출의 깊이를 모니터링합니다.

[arthas@973263]$ trace org.apache.dolphinscheduler.api.controller.UsersController queryUserList 
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 319 ms, listenerId: 1
`---ts=2024-08-27 10:33:08;thread_name=qtp1836984213-26;id=26;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@439f5b3d
    `---[13.962731ms] org.apache.dolphinscheduler.api.controller.UsersController:queryUserList()
        +---[0.18% 0.025123ms ] org.apache.dolphinscheduler.api.controller.UsersController:checkPageParams() #130
        +---[0.09% 0.012549ms ] org.apache.dolphinscheduler.plugin.task.api.utils.ParameterUtils:handleEscapes() #131
        `---[96.47% 13.469876ms ] org.apache.dolphinscheduler.api.service.UsersService:queryUserList() #132

덤프

힙 덤프 파일을 생성하려면 다음을 사용하세요.

[arthas@973263]$ heapdump arthas-output/dump.hprof
Dumping heap to arthas-output/dump.hprof ...
Heap dump file created

메모리 누수 진단을 위한 MAT와 같은 도구를 사용하여 덤프 파일을 분석합니다.

JVM 메모리 변경 사항 보기

메모리를 사용하여 JVM 메모리 사용량 검사:

[arthas@973263]$ memory 
Memory                                                         used                 total                max                  usage                
heap                                                           485M                 900M                 900M                 53.91%               
ps_eden_space                                                  277M                 327M                 358M                 77.61%               
...

CPU 사용량 보기

대시보드를 사용하여 CPU 사용량을 확인하고 thread -n thread_id를 사용하여 추가 검사를 위해 특정 스레드를 식별합니다.

Enhancing Task Scheduling Reliability: Integrating Arthas for API Monitoring in DolphinScheduler

위 내용은 작업 일정 신뢰성 향상: DolphinScheduler에서 API 모니터링을 위해 Arthas 통합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.