linux audit審計(8)--開啟audit對系統性能的影響


我們使用測試性能的工具,unixbench,它有一下幾項測試項目:

Execl Throughput                每秒鍾執行 execl 系統調用的次數
Pipe Throughput                 一秒鍾內一個進程向一個管道寫 512 字節數據然后再讀回的次數
Pipe-based Context Switching    兩個進程(每秒鍾)通過一個管道交換一個不斷增長的整數的次數
Process Creation                每秒鍾一個進程可以創建子進程然后收回子進程的次數(子進程一定立即退出)
Shell Scripts (1 concurrent)    一秒鍾一個進程可以並發地開始一個 shell 腳本的 1 個拷貝的次數
Shell Scripts (8 concurrent)    一秒鍾內一個進程可以並發地開始一個 shell 腳本的 8 個拷貝的次數
System Call Overhead            進入和離開操作系統內核的代價

測試結果類似如下:

Benchmark Run: Wed Apr 18 2018 14:54:55 - 15:23:15
16 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       24249307.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2867.3 MWIPS (10.0 s, 7 samples)
Execl Throughput                               2447.9 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        547726.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          149186.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1297448.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                              946343.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 186950.1 lps   (10.0 s, 7 samples)
Process Creation                               7092.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5631.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2726.4 lpm   (60.0 s, 2 samples)
System Call Overhead                         905666.4 lps   (10.0 s, 7 samples)

測試了/boot/grub2/grub.cfg 中audit=0,和去除audit=0,以及開啟auditd服務等的性能數據:

1、內核參數去掉audit=0,auditd服務默認不啟動:這種情況性能沒有太大變化;

2、服務開啟,auditctl -D刪除所有可配置規則:這種情況Pipe Throughput下降近20%,System Call Overhead下降35%,其他下降%2-10%左右;

3、刪除所有規則,配置 -a never,task取消系統調用的審計:性能沒有太大變化;

4、配置-a never,task,配置audit目錄訪問,提權,賬戶變更等基本規則:性能變化不大;

5、audit服務開啟,配置pci-dss規則,沒有取消系統調用審計:Pipe Throughput下降近30%,System Call Overhead下降近50%,Pipe-based Context Switching下降10%,其他下降%2-10%左右;

從性能結果可以看到,開啟內核參數,這個對性能影響不大,但是開啟auditd服務后對性能影響就比較明顯。

這里需要注意的是,如果auditd服務開啟后,再服務停止,auditctl –e 0,性能也沒有上升,依然比較差,是因為在audit內核處理中,會判斷是否曾經開啟過即auditctl -s查詢的enabled項,只要開啟了,即使后面設置auditctl –e 0后,系統調用依然會走audit流程,這就會影響系統性能。具體代碼在arch/x86/kernel/entry_64.S,copy_process()中 ,int audit_alloc函數。

另外,如果配置 -a never,task后,所有的審計 type類型為SYSCALL的都不會記錄了,一般情況下是要對系統調用進行審計的。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM