부팅 직후 프로세스 계정을 켰 /usr/sbin/accton on
는데 아무 것도 기록되지 않았습니다.
기본 파일 사용:/var/log/account/pacct
파일이 비어 있으므로 이 파일에서 출력을 가져오는 모든 명령은 비어 있습니다.
dump-acct /var/log/account/pacct
비어 있는. lastcomm
및 에도 마찬가지입니다 sa -a
. 비어 있는.
5.8 커널이 CONFIG_BSD_PROCESS_ACCT
시작 되었습니다/boot/config*
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
무엇이 빠졌나요?
이것은 Mate 데스크탑과 함께 Ubuntu 20.04.2를 새로 설치한 것입니다.
답변1
이 accton
명령의 주요 목적은 단일 시스템 호출을 실행하는 것입니다.acct(2)
명령을 추적할 때 볼 수 있듯이:
acct("/var/log/account/pacct") = 0
나머지는 커널에 의해 처리됩니다. 프로세스 회계는 많은 양의 로그를 생성하므로커널은 주기적으로 파일 시스템의 여유 공간 비율을 확인합니다.충분한 공간이 확보될 때까지 계정을 일시 중지합니다. 일부는kernel.acct
이를 위해 sysctl을 사용합니다. 기본적으로 트리거 값은 다음과 같습니다.
4 2 30
즉, 30초 동안 유효한 여유 공간에 대한 정보를 고려하여 여유 공간이 2% 미만으로 떨어지면 과금을 일시 중지하고, 4% 이상 증가하면 다시 청구합니다.
OP에서논평, 4.8Gb가 비어 있는 것처럼 보이지만 파일 시스템의 1%만 차지합니다. 즉, 커널 프로세스 수가 일시 중지됩니다.
그래서 이것은 파일 시스템이 거의 꽉 찬 상황입니다.
여유 공간이 ~9.6Gb(~4%)에 도달하면 다음 30초 이내에 계정 관리가 재개됩니다. 아니면 그냥 새로운 시스템 호출을 사용하고 >2%를 사용할까요?
OP의 사례가 <2.4Gb까지 작동하도록 하려면 비율을 1%로 절반으로 줄이는 것이 가능하지만 그 이상은 아닙니다. 0%를 사용하는 것은 현명하지 않습니다.
OP는 문제를 해결하기 위해 파일 시스템 크기를 늘리기로 결정했습니다.