좋은 아침입니다, *nix 애호가 여러분!
나는 한동안 Debian 7을 사용해 왔으며 최근 업그레이드 후에 루트 파티션의 공간이 지속적으로 부족하다는 것을 알았습니다. 디스크에 "0"바이트가 남아 있다는 뜻입니다! 그래서,많은검색하는 동안 /var/log 폴더를 0으로 만들 수 있었습니다. 한번은 ls -s -S
이 폴더에서 파일을 크기별로 정렬한 후 GB 크기(예: 13-15GB)의 파일 3개를 찾았습니다.
- 시스템 로그
- 정보
- 커널 로그
예, logrotate
잘 작동합니다. 로그를 회전시키는 중입니다. 예를 들어 /var/log에 kern.log.1 등이 있습니다. 문제는 로그가 너무 빨리 채워져서 logrotate가 아무 것도 할 수 없다는 것입니다.
분명히 운영 체제의 일부 로깅 프로세스는 지속적인 버그나 다른 이유(??)로 인해 많은 양의 데이터를 기록하고 있습니다. 나는 모른다. 내가 아는 건 처리량이 너무 많아서 내 노트북이 과열되고 있다는 것뿐이다.항상이 끊임없는 글쓰기 과정으로 인해. 따라서 CPU 성능과 디스크 공간이 손실됩니다.
내 질문은: 이 문제를 일으키는 프로세스/데몬을 어떻게 확인할 수 있습니까? 문제의 근본 원인을 찾아 해결하려면 어떻게 해야 합니까?이러한 거대한 로그 파일을 읽는 것은 선택 사항이 아닙니다. 제발. 이미 사용량이 많은 노트북에서 Leafpad나 Notepad 같은 텍스트 편집기를 사용하여 15GB 로그 파일을 추출하려고 하면 여는 데 시간이 오래 걸립니다.. 그건 비현실적이에요.
이 문제를 일으키는 프로세스/데몬이 있을 수 있으므로 이 질문이 광범위하다는 것을 알고 있지만, 이전에 이 문제를 경험한 사람이 있는지, 그리고 내가 볼 수 있는 일반적인 용의자가 있는지 궁금합니다.
고쳐 쓰다:
Eric의 제안에 따라 /var/log의 파일을 수정 시간별로 정렬했으며 "syslog"가 마지막 파일입니다. 그래서 tail
편집했습니다. 결과:
Apr 10 00:53:37 MyMachine kernel: [11608.690733] [<ffffffffa08e4005>] ? ath9k_reg_rmw+0x35/0x70 [ath9k_htc]
Apr 10 00:53:37 MyMachine kernel: [11608.690742] [<ffffffff81084f57>] ? process_one_work+0x147/0x3b0
Apr 10 00:53:37 MyMachine kernel: [11608.690750] [<ffffffff81085764>] ? worker_thread+0x114/0x480
Apr 10 00:53:37 MyMachine kernel: [11608.690756] [<ffffffff81556065>] ? __schedule+0x2e5/0x790
Apr 10 00:53:37 MyMachine kernel: [11608.690765] [<ffffffff81085650>] ? create_worker+0x1c0/0x1c0
Apr 10 00:53:37 MyMachine kernel: [11608.690772] [<ffffffff8108ae91>] ? kthread+0xc1/0xe0
Apr 10 00:53:37 MyMachine kernel: [11608.690780] [<ffffffff8108add0>] ? kthread_create_on_node+0x1c0/0x1c0
Apr 10 00:53:37 MyMachine kernel: [11608.690788] [<ffffffff8155a23c>] ? ret_from_fork+0x7c/0xb0
Apr 10 00:53:37 MyMachine kernel: [11608.690795] [<ffffffff8108add0>] ? kthread_create_on_node+0x1c0/0x1c0
Apr 10 00:53:37 MyMachine kernel: [11608.690800] ---[ end trace 12dc8d8439345c1d ]
불행히도 그것은 나에게 많은 힌트를 주지 못했습니다.
답변1
syslog
실제로 게시한 클립에 이에 대한 강력한 힌트가 있습니다. 줄 끝
Apr 10 00:53:37 MyMachine kernel: [11608.690733] [<ffffffffa08e4005>] ? ath9k_reg_rmw+0x35/0x70 [ath9k_htc]
표시된 스택 추적은 장치 드라이버의 예기치 않은 오류로 인해 발생합니다 ath9k_htc
. 커널이 당황하지 않기를 바라지만 반복되는 오류로 인해 파일 시스템이 가득 차고 있습니다.
그런 다음 ath9k_htc
이 명령을 사용하여 Wi-Fi 드라이버를 블랙리스트에 추가하고 재부팅합니다.
echo "blacklist ath9k_htc" | sudo tee -a /etc/modprobe.d/blacklist.conf
ath9k_htc
이렇게 하면 오류에도 불구하고 드라이버가 여전히 사용되고 제대로 작동하는 경우 Wi-Fi가 작동하지 않을 수 있습니다.
ath9k_htc
다음을 실행하여 드라이버가 예상한 Wi-Fi 장치가 컴퓨터에 있는지 확인할 수 있습니다 lsusb
.https://wiki.debian.org/ath9k_htc
답변2
로그 파일의 내용을 보기 위해 편집기에서 로그 파일을 열 필요는 없습니다. 마지막 몇 줄을 살펴보세요.
tail -n 999 /var/log/syslog | less
프로세스의 로그 파일에는 항상 프로세스 ID가 포함됩니다.
Apr 10 00:00:01 harfang /USR/SBIN/CRON[345]: (root) CMD ( /usr/local/bin/midnight-stuff )
Apr 10 00:00:01 darkstar wibbled[1234]: I'm bored
Apr 10 00:00:01 darkstar wibbled[1234]: I'm still bored
Apr 10 00:00:01 darkstar wibbled[1234]: I'm bored
Apr 10 00:00:02 darkstar wibbled[1234]: I'm still bored
Apr 10 00:00:02 darkstar wibbled[1234]: I'm bored
이는 프로세스 1234( wibbled
데몬의 인스턴스)가 많은 로그 메시지를 생성하고 있음을 알려줍니다. 이를 종료하고 구성을 확인할 수도 있습니다.
많이 커지면 kern.log
로그가 프로세스에서 나오는 것이 아니라 커널에서 나오는 것입니다. 커널 로그의 범람은 드물고 정확히 찾아내기가 어렵습니다. 이는 프로세스가 긴밀한 루프에서 다시 생성되고 즉시 충돌하여 발생할 수 있습니다(시스템 메모리 부족으로 인해 발생할 수 있음). 이는 오프로드 차량 운전자로 인해 발생할 수도 있습니다. 이유를 알아보려면 메시지를 확인해야 합니다.
귀하의 경우 드라이버의 추적이 표시됩니다. 드라이버에서 치명적이지 않은 오류가 계속 발생합니다. 제거해 보세요.
rmmod ath9k
(왜 ath9k
? 이것은 기능을 제공하는 드라이버이기 때문에 ath9k_reg_rmw
실제로 모듈 이름은 질문에 포함된 비트 몇 줄 뒤에 언급될 것이기 때문입니다.) 드라이버가 모듈에 없거나 제거할 수 없는 경우 다른 것을 찾으십시오. 이를 비활성화하거나 이를 유발하는 오류를 중지하는 방법, 이를 수행하는 방법은 드라이버가 무엇인지, 무엇이 문제인지에 따라 다릅니다.
답변3
지침에 따라 문제를 해결했습니다.여기.
방법 1
pci=noaer
커널 명령줄에 다음을 추가합니다 .
- 로 시작하는 줄을 편집
/etc/default/grub
하고 추가합니다 . 다음과 같습니다.pci=noaer
GRUB_CMDLINE_LINUX_DEFAULT
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer"
- 달리기
sudo update-grub
- 재시작
로그 파일 크기를 줄이고 엄청난 증가를 멈췄습니다.
방법 2
도움이 되지 않으면 동일하게 편집할 수 있습니다.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer pci=nomsi"
하지만 이것이 오류 메시지의 근본 원인을 해결하는지 모르겠습니다...