CPU LOAD AVRG + D 상태의 프로세스 처리 방법

CPU LOAD AVRG + D 상태의 프로세스 처리 방법

RHEL 7.6서버(커널 버전 - 3.10.0-957.el7.x86_64)에서 다음 프로세스의 상태를 확인할 수 있습니다 D(사용자에서 실행됨 HDFS).

노트 -D 상태 코드는 프로세스가 중단할 수 없는 절전 상태에 있음을 나타냅니다.

ps -eo s,user,cmd | grep ^[RD]
D hdfs     du -sk /grid/sdj/hadoop/hdfs/data/current/BP-1018134753-10.3.6.170-1530088122990
D hdfs     du -sk /grid/sdm/hadoop/hdfs/data/current/BP-1018134753-10.3.6.170-1530088122990
R root     ps -eo s,user,cmd

참고 - 디스크 sdj및 바이트 크기 sdm는 '다른 디스크 등에서도 발생하며 디스크에는 ext4 파일 시스템이 있습니다.3T"du -sksdd , sdf

CPU 로드 avrg가 높다는 사실은 "du -sk"가 실제로 디스크에서 실행되고 있기 때문인 것으로 의심됩니다.

그래서 다음 동작에 대해 우리가 무엇을 할 수 있는지 궁금했습니다.

한 가지 옵션은 " du -sk" 유효성 검사 를 비활성화하는 것일 수 있지만 HDFS이를 수행하는 방법은 확실하지 않습니다.

D두 번째 옵션은 이 상태의 원인이 정확히 무엇인지 생각해 보는 것입니다 .

잘 모르겠지만...커널 버전을 업그레이드하면 D 상태를 피하는 데 도움이 될까요? 그렇지 않으면? (예: CPU 스레드 비활성화) 등?

자세한 내용은

lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 48
On-line CPU(s) list: 0-47
Thread(s) per core: 2
Core(s) per socket: 12
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6

CPU 로드 평균은 약 42-45(15분 평균)입니다.

인용하다:

https://community.cloudera.com/t5/Support-Questions/Does-hadoop-run-dfs-du-automatically-when-a-new-job-starts/td-p/231297

https://community.cloudera.com/t5/Support-Questions/Can-hdfs-dfsadmin-and-hdfs-dsfs-du-be-taxing-on-my-cluster/mp/182402

https://community.pivotal.io/s/article/Dealing-with-Processes-in-State-D---Uninterruptible-Sleep-Usually-IO?언어=en_US

https://www.golinuxhub.com/2018/05/how-to-disable-or-enable-hyper/

답변1

로드 평균은 순수한 CPU 로드가 아니며 공유 컴퓨터의 사용자가 컴퓨터가 얼마나 "바쁨"인지 빠르게 이해할 수 있도록 일반적인 측정 기준으로 도입되었습니다. 이것이 바로 많은 디스크 활동을 유발하는 프로세스가 CPU를 사용하는 프로세스와 동일한 방식으로 계산되는 이유입니다.

따라서 이는 튜닝에 사용하려는 측정항목이 아닙니다.

D파일 시스템이 제대로 프로그래밍되지 않으면 프로세스 상태가 발생할 수 있는데, 이는 1990년대 NFS의 지속적인 골칫거리였습니다. 성능 측면에서 신호 후 정리 기능을 제공하지 않는 파일 시스템과 제공하는 파일 시스템 간에는 차이가 없습니다.

D상태는 적절한 정리 메커니즘이 없는 파일 시스템에만 적용되며 해당 프로그램이 중단되거나 종료된 경우에도 정상적인 요청 흐름을 따라야 합니다.

관련 정보