Kernel
為什麼核心程序記帳不起作用?
我
/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 的全新安裝。
該
accton
命令的主要作用是執行單個系統呼叫:acct(2)
如跟踪命令時所見:acct("/var/log/account/pacct") = 0
其餘的由核心處理。由於程序記帳可以生成大量日誌,核心會定期檢查文件系統中可用空間的百分比並暫停記帳,直到出現足夠的空間。有用於此的
kernel.acct
sysctl。預設情況下,觸發器值為:4 2 30
即,如果可用空間低於 2%,則暫停記賬;如果它增加到至少 4%,則恢復它;考慮有關可用空間量的資訊,有效期為 30 秒。
從 OP 的評論來看,似乎 4.8Gb 是免費的,但這些僅占文件系統的 1%:核心程序記帳被暫停。
所以這是一個文件系統接近滿的情況。
一旦可用空間達到〜9.6Gb(〜4%),會計將在接下來的30秒內恢復。或者也許只是一個新的系統呼叫和> 2%?
仍然有可能將百分比減半到 1%,以使 OP 的案例核算工作到 <2.4Gb,但不能做更多。不建議使用 0%。
OP 選擇增加文件系統大小來解決問題。