디스크에 지속적으로 쓰는 프로세스를 찾는 방법은 무엇입니까?
나는 내 워크스테이션이 거의 조용하다는 것을 좋아합니다. 방금 조용한 팬 등을 갖춘 새 시스템(P8B75-M + Core i5 3450s - 최대 TDP가 낮기 때문에 's')을 구축하고 위에 Debian Wheezy 64비트를 설치했습니다.
뭔가 불안합니다. 하드 드라이브가 무언가를 쓰고 있거나 찾고 있는 것과 같은 패턴을 들을 수 있습니다(확인...확인...확인...trrrrrr1초마다 헹구고 반복하세요.)
나는 과거(수년 전)에도 비슷한 문제를 겪었고 그것이 CUPS 로그 같은 것으로 밝혀졌고 이 (중요하지 않은) 로그 기록을 (실제) RAM 디스크로 리디렉션했습니다.
하지만 여기서는 잘 모르겠습니다.
나는 다음을 시도했다:
ls -lR /var/log > /tmp/a.tmp && sleep 5 && ls -lR /var/log > /tmp/b.tmp && diff /tmp/?.tmp
그러나 거기에는 아무것도 바뀌지 않았습니다.
이제 이상한 점은 LVM 암호 해독 암호를 입력하라는 메시지가 나타날 때에도 이 패턴을 듣는다는 것입니다.
방금 설치한 커널/시스템에 문제가 있는 걸까요, 아니면 하드 드라이브에 결함이 있는 걸까요?
hdparm -tT /dev/sda
올바른 HD 속도(캐시되지 않은 130GB/s, SATA 6GB)를 보고하고 문제 없이 대규모 소스(Emacs)에서 설치하고 컴파일했기 때문에 시스템이 나쁘다고 생각하지 않습니다.
(Seagate Barracude 500GB용 HD)
답변1
비슷한 프로그램을 확인해 보셨나요?iotop
전시? 현재 디스크에 쓰고 있는 프로세스 유형을 정확하게 알려줍니다.
예제 출력:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
8 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1]
1033 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [flush-8:0]
10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1]
답변2
IO 디버깅을 활성화 echo 1 > /proc/sys/vm/block_dump
한 다음 디버그 메시지를 볼 수 있습니다./var/log/시스템 로그. 이는 과거 활동을 포함하지만 현재 활동만 표시하는 일부 유형의 로그 파일을 얻을 수 있다는 장점이 있습니다 iotop
.
답변3
디스크 소음이 쓰기로 인한 것이 아니라 쓰기를 유발하는 프로세스로 인해 발생한다고 가정합니다.일부 디스크 회전 문제,당신은 그것을 사용할 수 있습니다감사 하위 시스템(설치하다auditd
팩). sync
통화 및 친구 모니터링 :
auditctl -S sync -S fsync -S fdatasync -a exit,always
로그를 보십시오 /var/log/audit/audit.log
. 감사 로그 자체가 플러시되는 경우에는 이 작업을 수행하지 않도록 주의하세요! /etc/auditd.conf
이 flush
옵션이 으로 설정되어 있는지 확인하세요 none
.
파일이 자주 플러시되는 경우 원인은 시스템 로그일 가능성이 높습니다. 예를 들어, 실패한 들어오는 연결 시도를 기록하고 누군가가 컴퓨터를 조사하는 경우 많은 수의 항목이 생성되어 디스크에서 기관총 소음이 발생할 수 있습니다. 기본 로깅 데몬 sysklogd를 사용하여 다음 사항을 확인하십시오 /etc/syslog.conf
. 로그 파일 이름 앞에 sysklogd가 없으면 -
각 쓰기 후에 로그가 디스크로 플러시됩니다.
답변4
조금 시도해 볼 수 있습니다. 대부분의 사람들에게는 범위가 좁아져야 합니다.
find / -mount -newer /proc -print
부팅 이후 /filesystem의 물리적 장치에서 수정된 파일을 제공합니다. 이러한 문서에 대한 지식은 저자를 식별하는 데 도움이 될 수 있습니다.