共用方式為


針對 Linux 上 適用於端點的 Microsoft Defender 的效能問題進行疑難排解

本文說明如何縮小與 Linux 上適用於端點的 Defender 相關的效能問題。 診斷工具可協助您瞭解及減輕影響效能的現有資源短缺和程序。 這些診斷工具也可用於增強 Microsoft Defender 入口網站內的可見性。 一或多個硬體子系統中的瓶頸主要會導致效能問題,視系統上資源使用率的設定檔而定。 有時應用程式對磁碟 I/O 資源敏感,可能需要更多 CPU 容量,有時某些設定不可持續,可能會觸發太多新進程,並開啟太多檔案描述元。

視您執行的應用程式和裝置特性而定,在 Linux 上執行適用於端點的 Defender 時,可能會遇到次佳效能。 特別是,在短時間跨度內存取許多資源 (例如 CPU、磁碟和記憶體) 的應用程式或系統進程,可能會導致適用於 Linux 的端點 Defender 中的效能問題。

警告

開始之前, 請確定裝置上目前未執行其他安全產品。 多個安全產品可能會發生衝突並影響主機效能。

有三種不同的方式,可針對 Linux 上適用於端點的 適用於端點的 Microsoft Defender 的診斷工具,針對嘈雜的進程和目錄進行疑難排解:

  • 使用即時保護統計資料
  • 使用熱門事件來源
  • 使用 eBPF 統計資料

使用即時保護統計資料疑難排解效能問題

適用於:

  • 僅與防病毒相關的性能問題

RTP) (即時保護是 Linux 上適用於端點的 Defender 的一項功能,可持續監視並保護您的裝置免受威脅。 它包含檔案和進程監控以及其他啟發式方法。

下列步驟可用來疑難排解和緩解這些問題:

  1. 使用下列其中一種方法停用即時保護,並觀察效能是否改善。 此方法有助於縮小 Linux 上的適用於端點的 Defender 是否會導致效能問題。 如果您的裝置不是由貴機構管理,您可以從命令列停用即時保護:

    mdatp config real-time-protection --value disabled
    
    Configuration property updated
    

    如果您的組織管理您的裝置,您的系統管理員可以使用設定 Linux 上適用於端點的 Defender 喜好設定中的指示來停用即時保護。

    注意事項

    如果效能問題在即時保護關閉時持續存在,則問題的根源也可能是端點偵測和回應 (EDR) 元件。 在此情況下,您需要從防毒軟體和 EDR 中新增全域排除。 在此情況下,請遵循使用 熱門事件來源疑難排解效能問題一節中的步驟。

  2. 若要尋找觸發最多掃描的應用程式,您可以使用適用於端點的 Defender 在 Linux 上收集的即時統計資料。

    注意事項

    此功能在 100.90.70 版或更新版本中可用。

    預設情況下,此功能會在 和 InsiderFast 頻道上Dogfood啟用。 如果您使用不同的更新通道,可以從命令列啟用此功能:

    mdatp config real-time-protection-statistics --value enabled
    

    此功能需要啟用即時保護。 若要檢查即時保護的狀態,請執行下列命令:

    mdatp health --field real_time_protection_enabled
    

    確認項目 real_time_protection_enabledtrue。 否則,請執行下列命令來啟用它:

    mdatp config real-time-protection --value enabled
    
    Configuration property updated
    

    若要收集目前的統計資料,請執行:

    mdatp diagnostic real-time-protection-statistics --output json
    

    注意事項

    使用 --output json (注意雙破折號) 可確保輸出格式已準備好進行解析。

    此指令的輸出會顯示所有處理程序及其相關聯的掃描活動。

  3. 輸入下列命令:

    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 數字最高的一個,並為其新增防病毒軟體排除項目, (仔細評估排除) 是否安全。 如需詳細資訊,請參閱 設定和驗證 Linux 上適用於端點的 Defender 的排除專案

    注意事項

    該應用程式將統計資料儲存在記憶體中,並且僅追蹤自啟動並啟用即時保護以來的檔案活動。 在即時保護關閉之前或期間啟動的程序不會計算在內。 此外,只會計算觸發掃描的事件。

使用熱門事件來源疑難排解效能問題

適用於:

  • 檔案和可執行檔中的效能問題,這些問題會耗用整個檔案系統中大部分的 CPU 週期。

熱門事件來源是一項功能,可讓客戶識別哪個處理程序或目錄負責高資源耗用量。 若要調查哪個進程/可執行檔產生最多的雜訊,請遵循下列步驟。

注意事項

這些命令需要您具有 root 權限。 確保可以使用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

此命令會產生熱事件來源報告,該報告儲存在本機資料夾中,可進一步調查。 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 (擴展的 Berkeley Packet Filter) statistics 命令可讓您深入了解生成最多檔案事件的頂級事件/進程及其系統呼叫 ID。 從系統進行系統呼叫時,您的系統上會產生大量工作負載。 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 排除項目。 如果您仍然有效能問題,請聯絡支援人員以取得進一步的指示和緩解措施。

另請參閱

提示

想要深入了解? 在我們的技術社區中與Microsoft安全社區Engage:適用於端點的 Microsoft Defender技術社區