Owait 문제 해결
Owait 문제 해결
Troubleshooting High I/O Wait in Linux | Benjamin Cane
The reason I/O Wait is difficult to troubleshoot is due to the fact that by default there are plenty of tools to tell you that your system is I/O bound, but not as many that can narrow the problem to a specific process or processes.
이 페이지는 아주 좋아요.명령
★ 지령이 좋은 녀석.
# io waitが全体でどれくらいあるのかわかる
top
# io waitが起こってるdiskがどれかわかる。(HDDが1つしかなければたぶん意味ない)
iostat -x 2 5
# io waitを起こしているprocessがわかる(が、dockerdって言われても意味なし)
iotop
# ★kernelからsleepしてろや、って言われてるprocessを表示!
ps -eo state,pid,cmd | grep "^D"
# プロセスのr/wスピードを表示
cat /proc/$PID/io
# ★プロセスが書き込んでるファイル名を表示
lsof -p $PID
# ディレクトリがどのdiskに属するのか(disk 1つなら意味なし)
df 書込み対象ディレクトリ
# disk groupを表示(lvmしてなければ意味ないかな)
pvdisplay
우선, 나는 ioop이 쓸모가 없다고 확신한다.$ iotop
dockerd에 있는 프로세스의 이름을 알고 싶습니다.적어도 docker-contaained를 내게 주면 나는tree 표지에 걸 것이다.
마찬가지로 디스켓이 하나밖에 없어서 iostat도 소용없어요.
최고는 ps-eo 지령.
ps -eo state,pid,cmd | grep "^D"
# 2sおきに更新
watch -n2 "ps -eo state,pid,cmd | grep '^D'"
케너를 기다리고 있나?과정을 알다.이 점을 잘 확신했다.
근데 해결이 안 됐어요.
D
로 변하는 과정kill -SIGKILL
도 죽지 않아...이 경우 리부트를 기다릴 수밖에 없다.
process - What if 'kill -9' does not work? - Unix & Linux Stack Exchange
However kill -9 is not guaranteed to work immediately. All signals, including SIGKILL, are delivered asynchronously: the kernel may take its time to deliver them
···2h 등도 떨어지지 않는다.리부트밖에 없나...조금만 더 기다려... → 결국 리부트야.
무거운 프로세스 찾기
다른 현상.서버가 하나 있는데, 서버가 느려 죽을 지경이다.
[root@zzz:~]# top
top - 18:22:32 up 522 days, 21:48, 7 users, load average: 84.00, 84.03, 84.02
ps 지령도 중도 정지.중도 정지 명령이 있는 경우
strace
명령을 사용하면 어디에 멈추는지 알 수 있다.[root@zzz:~]# strace ps -ef
...
...
stat("/proc/61428", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/61428/stat", O_RDONLY) = 6
read(6, "61428 (java) D 101527 101527 101"..., 2048) = 335
close(6) = 0
open("/proc/61428/status", O_RDONLY) = 6
read(6, "Name:\tjava\nUmask:\t0022\nState:\tD "..., 2048) = 1154
close(6) = 0
open("/proc/61428/cmdline", O_RDONLY) = 6
read(6, <--------ここから返ってこない
이 자바 프로세싱 61428은 안 될 것 같은데.top에 모든 프로세스의 r/w를 표시할 수 있는 방법
덤
hard drive - Linux disk IO load breakdown, by filesystem path and/or process? - Server Fault
yum install -y htop
htop
F5 (Tree view)
F2 (Setup)
Select columns
Select RBYTES WBYTES
F10 (Done)
총결산
내가 알고 싶은 것은 IO wait의 높은 프로세스보다kerner를 기다리는 과정일 수도 있다. (r/w의byte수는 보아도 전혀 알 수 없다.)
/prooc/$PID/io의 한 단락도 리눅스에 대한 기초 지식이 있으면 자연히 떠오르는 부분이다.주말 LPIC101 파이팅.
Reference
이 문제에 관하여(Owait 문제 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uturned0/items/159599bf5e1191091f10
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Owait 문제 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uturned0/items/159599bf5e1191091f10텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)