어떤 프로세스가 모든 디스크 IO를 사용하고 있습니까?
"top"을 사용하면 어떤 CPU가 사용 중인지, 어떤 프로세스가 모든 CPU를 사용하고 있는지 확인할 수 있습니다.
"iostat -x"를 사용하면 어떤 드라이브가 사용 중인지 알 수 있습니다.
그러나 어떤 프로세스가 모든 드라이브 처리량을 사용하고 어떻게 알 수 있습니까?
찾고 있습니다 iotop
(커널> 2.6.20 및 Python 2.5가 존재 가정). 실패하면 파일 시스템에 연결하는 것입니다. 나는 전자를 추천한다.
상태가 'D'(디스크 응답을 기다리는 중) 인 프로세스를 현재 확인하려는 다음을 수행하십시오.
while true; do date; ps aux | awk '{if($8=="D") print $0;}'; sleep 1; done
또는
watch -n1 -d "ps axu | awk '{if (\$8==\"D\") {print \$0}}'"
Wed Aug 29 13:00:46 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:47 CLT 2012
Wed Aug 29 13:00:48 CLT 2012
Wed Aug 29 13:00:49 CLT 2012
Wed Aug 29 13:00:50 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:51 CLT 2012
Wed Aug 29 13:00:52 CLT 2012
Wed Aug 29 13:00:53 CLT 2012
Wed Aug 29 13:00:55 CLT 2012
Wed Aug 29 13:00:56 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:57 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:58 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:59 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:01:00 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:01:01 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:01:02 CLT 2012
Wed Aug 29 13:01:03 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
jdb2 / dm-0-8 (ext4 저널 프로세스) 및 kdmflush는 계속해서 Linux를 차단합니다.
자세한 내용은이 URL이 도움이 될 수 있습니다. Linux Wait-IO 문제
atop 은 또한 잘 작동하며 iotop을 사용하지 않는 구형 CentOS 5.x 시스템에는 쉽게 사용할 수 있습니다. 히트 d
, 디스크 세부 정보를 표시하는 ?
도움을.
ATOP - mybox 2014/09/08 15:26:00 ------ 10s elapsed
PRC | sys 0.33s | user 1.08s | | #proc 161 | #zombie 0 | clones 31 | | #exit 16 |
CPU | sys 4% | user 11% | irq 0% | idle 306% | wait 79% | | steal 1% | guest 0% |
cpu | sys 2% | user 8% | irq 0% | idle 11% | cpu000 w 78% | | steal 0% | guest 0% |
cpu | sys 1% | user 1% | irq 0% | idle 98% | cpu001 w 0% | | steal 0% | guest 0% |
cpu | sys 1% | user 1% | irq 0% | idle 99% | cpu003 w 0% | | steal 0% | guest 0% |
cpu | sys 0% | user 1% | irq 0% | idle 99% | cpu002 w 0% | | steal 0% | guest 0% |
CPL | avg1 2.09 | avg5 2.09 | avg15 2.09 | | csw 54184 | intr 33581 | | numcpu 4 |
MEM | tot 8.0G | free 81.9M | cache 2.9G | dirty 0.8M | buff 174.7M | slab 305.0M | | |
SWP | tot 2.0G | free 2.0G | | | | | vmcom 8.4G | vmlim 6.0G |
LVM | Group00-root | busy 85% | read 0 | write 30658 | KiB/w 4 | MBr/s 0.00 | MBw/s 11.98 | avio 0.28 ms |
DSK | xvdb | busy 85% | read 0 | write 23706 | KiB/w 5 | MBr/s 0.00 | MBw/s 11.97 | avio 0.36 ms |
NET | transport | tcpi 2705 | tcpo 2008 | udpi 36 | udpo 43 | tcpao 14 | tcppo 45 | tcprs 1 |
NET | network | ipi 2788 | ipo 2072 | ipfrw 0 | deliv 2768 | | icmpi 7 | icmpo 20 |
NET | eth0 ---- | pcki 2344 | pcko 1623 | si 1455 Kbps | so 781 Kbps | erri 0 | erro 0 | drpo 0 |
NET | lo ---- | pcki 423 | pcko 423 | si 88 Kbps | so 88 Kbps | erri 0 | erro 0 | drpo 0 |
NET | eth1 ---- | pcki 22 | pcko 26 | si 3 Kbps | so 5 Kbps | erri 0 | erro 0 | drpo 0 |
PID RDDSK WRDSK WCANCL DSK CMD 1/1
9862 0K 53124K 0K 98% java
358 0K 636K 0K 1% jbd2/dm-0-8
13893 0K 192K 72K 0% java
1699 0K 60K 0K 0% syslogd
4668 0K 24K 0K 0% zabbix_agentd
이것은 분명히 자바 pid 9862가 범인임을 보여줍니다.
TL; DR
을 사용할 수 iotop
있습니다. 명명 된 도움이 될 수 있습니다.
사용한를 top
후 다음 단축키를 사용 하십시오 .
d 1 = set refresh time from 3 to 1 second
1 = show stats for each cpu, not cumulated
이것은 > 1.0 wa
하나의 코어에 대한 값을 표시해야합니다. 디스크 대기가없는 경우 더 이상 볼 필요가 없습니다. 상당한 하중이 일반적으로 시작 > 15.0 wa
됩니다.
x = highlight current sort column
< and > = change sort column
R = reverse sort order
프로세스 상태 열인 'S'를 선택하십시오. 'R'(실행 중) 프로세스가 맨 위에 표시됩니다. 'D'프로세스를 발견 할 수 있으면 (디스크 대기 중) 범인이 무엇인지 알 수 있습니다.
KDE 사용자의 경우 'ctrl-esc'를 사용하여 시스템 활동 모니터를 호출 할 수 있으며 프로세스 ID와 이름이있는 I / O 활동 차트가 있습니다.
'신규 사용자 상태'로 인해 이미지 업로드 권한이 없지만 아래 이미지를 확인하실 수 있습니다. IO 읽기 및 쓰기를위한 열이 있습니다.
lsof
(열린 파일 나열) 을 고려해 보셨습니까 ?
-a 플래그가있는 iotop :
-a, --accumulated show accumulated I/O instead of bandwidth
참고 URL : https://stackoverflow.com/questions/488826/what-process-is-using-all-of-my-disk-io
'IT' 카테고리의 다른 글
기본 키가 아닌 외래 키 (0) | 2020.07.22 |
---|---|
IFS = $ '\ n'의 정확한 의미는 무엇입니까? (0) | 2020.07.22 |
리플렉션을 통해 사유 재산을 접근 할 수 있습니까? (0) | 2020.07.22 |
SLF4J / Logback에서 마커 사용에 대한 모범 사례 (0) | 2020.07.22 |
String.valueOf () 대 Object.toString () (0) | 2020.07.22 |