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 -sk
sdd , 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://www.golinuxhub.com/2018/05/how-to-disable-or-enable-hyper/
답변1
로드 평균은 순수한 CPU 로드가 아니며 공유 컴퓨터의 사용자가 컴퓨터가 얼마나 "바쁨"인지 빠르게 이해할 수 있도록 일반적인 측정 기준으로 도입되었습니다. 이것이 바로 많은 디스크 활동을 유발하는 프로세스가 CPU를 사용하는 프로세스와 동일한 방식으로 계산되는 이유입니다.
따라서 이는 튜닝에 사용하려는 측정항목이 아닙니다.
D
파일 시스템이 제대로 프로그래밍되지 않으면 프로세스 상태가 발생할 수 있는데, 이는 1990년대 NFS의 지속적인 골칫거리였습니다. 성능 측면에서 신호 후 정리 기능을 제공하지 않는 파일 시스템과 제공하는 파일 시스템 간에는 차이가 없습니다.
이 D
상태는 적절한 정리 메커니즘이 없는 파일 시스템에만 적용되며 해당 프로그램이 중단되거나 종료된 경우에도 정상적인 요청 흐름을 따라야 합니다.