針對 Linux 上的 適用於端點的 Microsoft Defender 效能問題進行疑難解答
適用於:
- 適用於端點的 Microsoft Defender 伺服器
- 伺服器的 Microsoft Defender
想要體驗適用於端點的 Microsoft Defender 嗎? 注册免費試用版。
本文說明如何縮小與Linux上適用於端點的Defender相關的效能問題。 診斷工具可用來協助您了解並減輕影響效能的現有資源擷取和程式。 這些診斷工具也可以用來增強 Microsoft Defender 入口網站內的可見度。 一或多個硬體子系統中的瓶頸主要會造成效能問題,視系統上的資源使用量配置檔而定。 有時候應用程式會對磁碟 I/O 資源敏感,而且可能需要更多 CPU 容量,有時某些組態無法持續,而且可能會觸發太多新進程,並開啟太多檔案描述元。
根據您執行的應用程式和裝置特性,在 Linux 上執行適用於端點的 Defender 時,可能會遇到效能低於最佳的狀況。 特別是,在短時間內存取許多資源的應用程式或系統進程,例如 CPU、磁碟和記憶體,可能會導致 Linux 上適用於端點的 Defender 效能問題。
警告
開始之前, 請確定裝置上目前未執行其他安全性產品。 多個安全性產品可能會發生衝突,並影響主機效能。
有三種不同的方式可以使用 Linux 上 適用於端點的 Microsoft Defender 的診斷工具,針對雜訊處理程式和目錄進行疑難解答:
- 使用即時保護統計數據
- 使用作用中事件來源
- 使用 eBPF 統計數據
使用即時保護統計數據對效能問題進行疑難解答
適用於:
- 僅限與防病毒軟體相關的效能問題
RTP) (實時保護是 Linux 上適用於端點的 Defender 功能,可持續監視及保護您的裝置免於遭受威脅。 它包含檔案和進程監視及其他啟發學習法。
下列步驟可用來疑難解答並減輕這些問題:
使用下列其中一種方法停用即時保護,並觀察效能是否改善。 這種方法有助於縮小 Linux 上適用於端點的 Defender 是否造成效能問題。 如果您的裝置不是由您的組織管理,則可從命令行停用即時保護:
mdatp config real-time-protection --value disabled
Configuration property updated
如果您的組織管理您的裝置,您的系統管理員可以使用設定 Linux 上適用於端點的 Defender 喜好設定中的指示來停用即時保護。
注意事項
如果即時保護關閉時效能問題持續發生,問題來源可能是端點偵測和回應 (EDR) 元件。 在此情況下,您需要從防病毒軟體和 EDR 新增全域排除專案。 在此情況下,請遵循 使用經常性事件來源針對效能問題進行疑難解答一節中的步驟。
若要尋找觸發最多掃描的應用程式,您可以使用 Linux 上適用於端點的 Defender 所收集的即時統計數據。
注意事項
此功能適用於 100.90.70 版或更新版本。
這項功能預設會在和
InsiderFast
通道上Dogfood
啟用。 如果您使用不同的更新通道,可以從命令行啟用此功能:mdatp config real-time-protection-statistics --value enabled
這項功能需要啟用即時保護。 若要檢查即時保護的狀態,請執行下列命令:
mdatp health --field real_time_protection_enabled
確認項目
real_time_protection_enabled
為true
。 否則,請執行下列命令加以啟用:mdatp config real-time-protection --value enabled
Configuration property updated
若要收集目前的統計數據,請執行:
mdatp diagnostic real-time-protection-statistics --output json
注意事項
使用
--output json
(記下雙虛線) 可確保輸出格式已準備好進行剖析。此命令的輸出會顯示所有進程及其相關聯的掃描活動。
輸入下列命令:
mdatp diagnostic real-time-protection-statistics --sort --top 4
輸出是效能問題的前四個參與者清單。 例如,命令的輸出如下所示:
===================================== Process id: 560 Name: NetworkManager Path: "/usr/sbin/NetworkManager" Total files scanned: 261 Scan time (ns): "3070788919" Status: Active ===================================== Process id: 1709561 Name: snapd Path: "/snap/snapd/23545/usr/lib/snapd/snapd" Total files scanned: 247 Scan time (ns): "19926516003" Status: Active ===================================== Process id: 596 Name: systemd-logind Path: "/usr/lib/systemd/systemd-logind" Total files scanned: 29 Scan time (ns): "716836547" Status: Active ===================================== Process id: 1977683 Name: cupsd Path: "/usr/sbin/cupsd" Total files scanned: 20 Scan time (ns): "985110892" Status: Active =====================================
若要改善 Linux 上適用於端點的 Defender 的效能,請找出數據列下
Total files scanned
數位最高的 Defender,並為其新增防病毒軟體排除 (仔細評估是否可安全地排除) 。 如需詳細資訊, 請參閱在Linux上設定及驗證適用於端點的Defender排除專案。注意事項
應用程式會將統計數據儲存在記憶體中,並且只追蹤檔案活動啟動後,並啟用即時保護。 未計算即時保護關閉之前或期間啟動的進程。 此外,只會計算觸發掃描的事件。
使用經常性事件來源對效能問題進行疑難解答
適用於:
- 檔案和可執行檔中的效能問題,會耗用整個文件系統中大部分的 CPU 週期。
經常性事件來源是一項功能,可讓客戶識別哪些程式或目錄負責高資源耗用量。 若要調查哪一個進程/可執行文件產生最多雜訊,請遵循下列步驟。
注意事項
這些命令需要您擁有根許可權。 請確定可以使用 sudo。
首先,檢查您電腦上的記錄層級。
mdatp health --field log_level
如果它不在「偵錯」中,您必須針對有關經常性存取檔案/可執行檔的詳細報告變更它。
sudo mdatp log level set --level debug
Log level configured successfully
若要收集檔案) 的目前統計數據 (,
sudo mdatp diagnostic hot-event-sources files
在控制臺上,輸出看起來如下所示 (這隻是整個輸出) 的代碼段。 在這裡,第一個數據列會顯示發生) 的計數 (頻率,而第二個數據列會顯示檔案路徑。
Total Events: 11179 Time: 12s. Throughput: 75.3333 events/sec.
=========== Top 684 Hot Event Sources ===========
count file path
2832 /mnt/RamDisk/postgres_data/pg_wal/0000000100000014000000A5
632 /mnt/RamDisk/postgres_data/base/635594/2601
619 /mnt/RamDisk/postgres_data/base/635597/2601
618 /mnt/RamDisk/postgres_data/base/635596/2601
618 /mnt/RamDisk/postgres_data/base/635595/2601
616 /mnt/RamDisk/postgres_data/base/635597/635610
615 /mnt/RamDisk/postgres_data/base/635596/635602
614 /mnt/RamDisk/postgres_data/base/635595/635606
514 /mnt/RamDisk/postgres_data/base/635594/635598_fsm
496 /mnt/RamDisk/postgres_data/base/635597/635610_fsm
此命令會產生 Hot 事件來源報告,並儲存在可進一步調查的本機資料夾中。 json 檔案上的輸出如下所示;
{
"startTime": "1729535104539160",
"endTime": "1729535117570766",
"totalEvent": "11373",
"eventSource": [
{
"authCount": "2832",
"csId": "",
"notifyCount": "0",
"path": "/mnt/RamDisk/postgres_data/pg_wal/0000000100000014000000A5",
"pidCount": "1",
"teamId": ""
},
{
"authCount": "632",
"csId": "",
"notifyCount": "0",
"path": "/mnt/RamDisk/postgres_data/base/635594/2601",
"pidCount": "1",
"teamId": ""
}
]
}
在此範例中,我們可以看到 /mnt/RamDisk/postgres_data/pg_wal/0000000100000014000000A5 檔案會產生最多的活動。 同樣地,針對可執行檔,
sudo mdatp diagnostic hot-event-sources executables
在控制臺上,輸出看起來如下所示。
Total Events: 47382 Time: 18s. Throughput: 157 events/sec.
=========== Top 23 Hot Event Sources ===========
count executable path
8216 /usr/lib/postgresql/12/bin/psql
5721 /usr/lib/postgresql/12/bin/postgres (deleted)
3557 /usr/bin/bash
378 /usr/bin/clamscan
88 /usr/bin/sudo
70 /usr/bin/dash
30 /usr/sbin/zabbix_agent2
10 /usr/bin/grep
8 /usr/bin/gawk
6 /opt/microsoft/mdatp/sbin/wdavdaemonclient
4 /usr/bin/sleep
這是以 json 儲存在作用中事件來源報表中的輸出;
{
"startTime": "1729534260988396",
"endTime": "1729534280026883",
"totalEvent": "48165",
"eventSource": [
{
"authCount": "8126",
"csId": "",
"notifyCount": "0",
"path": "/usr/lib/postgresql/12/bin/psql",
"pidCount": "2487",
"teamId": ""
},
{
"authCount": "5127",
"csId": "",
"notifyCount": "0",
"path": "/usr/lib/postgresql/12/bin/postgres",
"pidCount": "2144",
"teamId": ""
}
]
}
在此範例中,在18秒之後,命令會顯示可執行檔;/usr/lib/postgresql/12/bin/psql 和 /usr/lib/postgresql/12/bin/postgres 會產生最多的活動。
完成調查之後,您可以將記錄層級變更回「資訊」。
sudo mdatp log level set --level info
Log level configured successfully
若要改善 Linux 上適用於端點的 Defender 效能,請找出計數數據列中數位最高的路徑,並新增全域進程排除 (如果是可執行檔) 或全域檔案/資料夾排除 (,如果是檔案) , (仔細評估是否可安全排除) 。 如需詳細資訊, 請參閱在Linux上設定及驗證適用於端點的Defender排除專案。
使用 eBPF 統計數據對效能問題進行疑難解答
適用於:
- 所有檔案/處理事件,包括以系統呼叫為基礎的效能問題。
eBPF (擴充的許可權封包篩選器) 統計數據命令可讓您深入了解產生最多檔案事件的最上層事件/進程,以及其 Syscall 標識符。 從系統進行系統呼叫時,系統上會產生大量的工作負載。 eBPF 統計數據可用來識別這類問題。
若要使用 eBPF 統計數據收集目前的統計數據,請執行:
mdatp diagnostic ebpf-statistics
輸出會直接顯示在控制臺上,看起來會類似下列 (這隻是整個輸出) 的代碼段:
Top initiator paths:
/usr/lib/postgresql/12/bin/psql : 902
/usr/bin/clamscan : 349
/usr/sbin/zabbix_agent2 : 27
/usr/lib/postgresql/12/bin/postgres : 10
Top syscall ids:
80 : 9034
57 : 8932
60 : 8929
59 : 4942
112 : 4898
90 : 179
87 : 170
119 : 32
288 : 19
41 : 15
此命令會監視系統 20 秒,並顯示結果。 以下是 postgresql/12/bin/psql (頂端啟動器路徑,) 顯示產生最多系統呼叫的進程路徑。
若要改善 Linux 上適用於端點的 Defender 效能,請找出數據列中Top initiator path
最高的count
端點,併為其新增全域進程排除 (仔細評估是否可安全地排除) 。 如需詳細資訊, 請參閱在Linux上設定及驗證適用於端點的Defender排除專案。
設定全域排除專案以提升效能
在Linux上設定 適用於端點的 Microsoft Defender,並排除造成效能問題的進程或磁碟位置。 如需詳細資訊,請參閱設定及驗證 Linux 上適用於端點的 Microsoft Defender 排除項目。 如果您仍有效能問題,請連絡支持人員以取得進一步的指示和緩和措施。
另請參閱
提示
想要深入了解? 在我們的技術社群中 Engage Microsoft安全性社群:適用於端點的 Microsoft Defender 技術社群。