어떤 프로세스로 인해 디스크 I / O가 많이 발생합니까?


19

이 질문을 보았습니다 : 디스크에 대량 쓰기를 식별하는 방법은 무엇입니까?

그리고 내가 사용했습니다 dstat꼭대기 전에 ... 그러나 그들은 디스크 I / O의 원인이 무엇 과정 핀 포인트 있지 않은 것 같습니다. 예를 들어, dstat에서 :

dstat -ta --top-bio
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----most-expensive----
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw |  block i/o process
14-12 16:16:25| 22   3  49  26   0   0|2324k    0 |  17k 6144B|   0     0 |1324     0 |
14-12 16:16:26| 24   3  30  43   0   0|4960k 8192B|1498B 4322B|   0     0 |1494     0 |wget          0  4096B
14-12 16:16:27| 25   4  38  33   0   0|4612k  548k|5011B   27k|   0     0 |1582     0 |kjournald     0    24k
14-12 16:16:28| 23   3  42  32   0   0|5072k    0 |  24k 4368B|   0     0 |1495     0 |

dsk / total의 높이가 2에서 5MB / 초 사이인지 확인하십시오. 그러나 '가장 비싼'열을 살펴보십시오. 여기에는 몇 바이트, 몇 KB, 때로는 아무것도 없습니다. '아탑'과 같은 종류입니다. 전반적인 디스크 사용량은 많지만 개별 프로세스의 사용량은 낮습니다. CentOS 5, 커널 2.6.18-53을 실행 중입니다.

최신 커널 버전이 필요합니까? 어쩌면 일부 시스템 구성 설정이 어딘가에 있습니까? '맨 위'홈페이지는 일부 커널 패치 설치를 권장하지만, 직접 커널을 구성하고 컴파일하는 번거 로움을 피하고 싶지는 않습니다.

답변:


26

iotop ( link ) for starter;) 출력을 게시하는 것을 보지 못했습니다.

1 : 로깅 파일 시스템 및 시간과 거의 동일한 상황을 경험했지만 더 많은 쓰기 작업을 수행했습니다.

noatime으로 다시 마운트하고 파일 시스템 로깅이 꺼져 있는지 (나중에 테스트 용으로 만) 파일 시스템 기반인지, 프로세스 기반 인 경우 iotop인지 확인하십시오.

2 :이 파티션은 방금 재건하는 레이드 어레이의 일부가 아닌 것 같습니다.

3 : 매우 작은 파일이 많고 (실제 블록 장치 블록 크기 및 / 또는 파일 시스템 블록 크기보다 훨씬 작음) 작은 파일을 읽는 경우 시스템에서 전체 블록을 읽게됩니다. 그 블록 중 아무것도 읽을 수 없습니다.

4 : 위의 내용이 도움이되지 않으면 다음을 실행하여 액세스 한 파일 목록을 항상 얻을 수 있습니다.

echo 1 > /proc/sys/vm/block_dump

시스템 성능이 많이 저하됩니다. 이전 게시물 에서 지침을 확인할 수 있습니다.


1
약 5 초로 나를 이길;) +1
pehrs

방금 운이 좋았지 만 질문에 대한 정확한 답변이 아니기 때문에 거의 즉시 답변을 확장했습니다.)
asdmin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.