Kernel

為什麼核心程序記帳不起作用?

  • June 28, 2021

/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.acctsysctl。預設情況下,觸發器值為:

4 2 30

即,如果可用空間低於 2%,則暫停記賬;如果它增加到至少 4%,則恢復它;考慮有關可用空間量的資訊,有效期為 30 秒。

從 OP 的評論來看,似乎 4.8Gb 是免費的,但這些僅占文件系統的 1%:核心程序記帳被暫停。

所以這是一個文件系統接近滿的情況。

一旦可用空間達到〜9.6Gb(〜4%),會計將在接下來的30秒內恢復。或者也許只是一個新的系統呼叫和> 2%?

仍然有可能將百分比減半到 1%,以使 OP 的案例核算工作到 <2.4Gb,但不能做更多。不建議使用 0%。

OP 選擇增加文件系統大小來解決問題。

引用自:https://unix.stackexchange.com/questions/656018