Condividi tramite


Risolvere i problemi di prestazioni per Microsoft Defender per endpoint in Linux

Si applica a:

Si desidera provare Microsoft Defender per endpoint? iscriversi a una versione di valutazione gratuita.

Questo articolo descrive come limitare i problemi di prestazioni correlati a Defender per endpoint in Linux. Sono disponibili strumenti di diagnostica che consentono di comprendere e attenuare le carenze di risorse e i processi esistenti che influiscono sulle prestazioni. Questi strumenti di diagnostica possono essere usati anche per migliorare la visibilità all'interno del portale di Microsoft Defender. I colli di bottiglia in uno o più sottosistemi hardware causano principalmente problemi di prestazioni, a seconda del profilo di utilizzo delle risorse nel sistema. A volte le applicazioni sono sensibili alle risorse di I/O su disco e possono richiedere una maggiore capacità della CPU, a volte alcune configurazioni non sono sostenibili e possono attivare troppi nuovi processi e aprire troppi descrittori di file.

A seconda delle applicazioni in esecuzione e delle caratteristiche del dispositivo, è possibile che si verifichino prestazioni non ottimali durante l'esecuzione di Defender per endpoint in Linux. In particolare, le applicazioni o i processi di sistema che accedono a molte risorse, ad esempio CPU, disco e memoria in un breve intervallo di tempo, possono causare problemi di prestazioni in Defender per endpoint in Linux.

Avviso

Prima di iniziare, assicurarsi che altri prodotti di sicurezza non siano attualmente in esecuzione nel dispositivo. Più prodotti di sicurezza possono essere in conflitto e influire sulle prestazioni dell'host.

Esistono tre modi diversi per risolvere i problemi relativi a processi e directory rumorosi usando gli strumenti di diagnostica di Microsoft Defender per endpoint in Linux:

  • Uso delle statistiche di protezione in tempo reale
  • Uso di origini eventi ad accesso frequente
  • Uso delle statistiche eBPF

Risolvere i problemi di prestazioni usando statistiche di protezione in tempo reale

Si applica a:

  • Solo problemi di prestazioni correlati all'antivirus

La protezione in tempo reale (RTP) è una funzionalità di Defender per endpoint in Linux che monitora e protegge continuamente il dispositivo dalle minacce. È costituito dal monitoraggio di file e processi e da altre euristiche.

I passaggi seguenti possono essere usati per risolvere e attenuare questi problemi:

  1. Disabilitare la protezione in tempo reale usando uno dei metodi seguenti e osservare se le prestazioni migliorano. Questo approccio consente di limitare se Defender per endpoint in Linux contribuisce ai problemi di prestazioni. Se il dispositivo non è gestito dall'organizzazione, la protezione in tempo reale può essere disabilitata dalla riga di comando:

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

    Se l'organizzazione gestisce il dispositivo, l'amministratore può disabilitare la protezione in tempo reale usando le istruzioni in Impostare le preferenze per Defender per endpoint in Linux.

    Nota

    Se il problema di prestazioni persiste mentre la protezione in tempo reale è disattivata, l'origine del problema potrebbe essere anche il componente edr (endpoint detection and response). In questo caso, è necessario aggiungere esclusioni globali da Antivirus ed EDR. In questo caso, seguire la procedura descritta nella sezione Risolvere i problemi di prestazioni usando origini eventi ad accesso frequente.

  2. Per trovare le applicazioni che attivano il maggior numero di analisi, è possibile usare le statistiche in tempo reale raccolte da Defender per endpoint in Linux.

    Nota

    Questa funzionalità è disponibile nella versione 100.90.70 o successiva.

    Questa funzionalità è abilitata per impostazione predefinita nei Dogfood canali e InsiderFast . Se si usa un canale di aggiornamento diverso, questa funzionalità può essere abilitata dalla riga di comando:

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

    Questa funzionalità richiede l'abilitazione della protezione in tempo reale. Per controllare lo stato della protezione in tempo reale, eseguire il comando seguente:

    mdatp health --field real_time_protection_enabled
    

    Verificare che la real_time_protection_enabled voce sia true. In caso contrario, eseguire il comando seguente per abilitarlo:

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

    Per raccogliere le statistiche correnti, eseguire:

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

    Nota

    L'uso --output json di (si noti il doppio trattino) garantisce che il formato di output sia pronto per l'analisi.

    L'output di questo comando mostra tutti i processi e l'attività di analisi associata.

  3. Digitare i comandi seguenti:

    mdatp diagnostic real-time-protection-statistics --sort --top 4
    

    L'output è un elenco dei primi quattro collaboratori ai problemi di prestazioni. Ad esempio, l'output del comando è simile al seguente:

    =====================================
    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
    =====================================
    

    Per migliorare le prestazioni di Defender per endpoint in Linux, individuare quello con il numero più alto sotto la Total files scanned riga e aggiungervi un'esclusione antivirus (valutare attentamente se è sicuro escludere). Per altre informazioni, vedere Configurare e convalidare le esclusioni per Defender per endpoint in Linux.

    Nota

    L'applicazione archivia le statistiche in memoria e tiene traccia solo dell'attività dei file dall'avvio e la protezione in tempo reale è stata abilitata. I processi avviati prima o durante i periodi in cui la protezione in tempo reale era disattivata non vengono conteggiati. Vengono inoltre conteggiati solo gli eventi che hanno attivato le analisi.

Risolvere i problemi di prestazioni usando origini eventi ad accesso frequente

Si applica a:

  • Problemi di prestazioni nei file e nei file eseguibili che utilizzano la maggior parte dei cicli della CPU nell'intero file system.

Le origini eventi ad accesso frequente sono una funzionalità che consente ai clienti di identificare il processo o la directory responsabile dell'utilizzo elevato delle risorse. Per analizzare il processo o l'eseguibile che genera più rumore, seguire questa procedura.

Nota

Questi comandi richiedono autorizzazioni radice. Assicurarsi che sudo possa essere usato.

Prima di tutto, controllare il livello di log nel computer.

mdatp health --field log_level

Se non è in corso il "debug", è necessario modificarlo per un report dettagliato relativo a file/eseguibili ad accesso frequente.

sudo mdatp log level set --level debug
Log level configured successfully

Per raccogliere le statistiche correnti (per i file),

sudo mdatp diagnostic hot-event-sources files

L'output è simile al seguente nella console (si tratta solo di un frammento di codice dell'intero output). In questo caso, la prima riga mostra il conteggio (frequenza di occorrenza) e la seconda mostra il percorso del file.

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

Questo comando genera un report origine eventi hot salvato nella cartella locale che può essere ulteriormente analizzato. L'output è simile al seguente nel file 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": ""
        }
    ]
}

Nell'esempio è possibile notare che il file /mnt/RamDisk/postgres_data/pg_wal/0000000100000014000000A5 genera la maggior parte delle attività. Inoltre, analogamente per i file eseguibili,

sudo mdatp diagnostic hot-event-sources executables

L'output è simile al seguente nella console.

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

Si tratta dell'output salvato nel report dell'origine eventi ad accesso frequente in 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": ""
        }
    ]
}

In questo esempio, dopo 18s il comando mostra che i file eseguibili; /usr/lib/postgresql/12/bin/psql e /usr/lib/postgresql/12/bin/postgres generano la maggior parte dell'attività.

Dopo aver completato l'indagine, è possibile ripristinare il livello di log in "info".

sudo mdatp log level set --level info
Log level configured successfully

Per migliorare le prestazioni di Defender per endpoint in Linux, individuare il percorso con il numero più alto nella riga count e aggiungere un'esclusione di processo globale (se si tratta di un eseguibile) o un'esclusione globale di file/cartelle (se si tratta di un file) (valutare attentamente se è sicuro escludere). Per altre informazioni, vedere Configurare e convalidare le esclusioni per Defender per endpoint in Linux.

Risolvere i problemi di prestazioni usando le statistiche eBPF

Si applica a:

  • Tutti gli eventi di elaborazione/file, inclusi i problemi di prestazioni basati sulle chiamate di sistema.

Il comando delle statistiche eBPF (filtro di pacchetti Berkeley esteso) fornisce informazioni dettagliate sull'evento/processo principale che genera la maggior parte degli eventi file, insieme ai relativi ID syscall. Quando vengono effettuate chiamate di sistema dal sistema, nel sistema viene generata una quantità elevata di carico di lavoro. Le statistiche eBPF possono essere usate per identificare tali problemi.

Per raccogliere le statistiche correnti usando le statistiche eBPF, eseguire:

mdatp diagnostic ebpf-statistics

L'output viene visualizzato direttamente nella console e sarà simile al seguente (si tratta solo di un frammento dell'intero output):

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

Questo comando monitora il sistema per 20 secondi e mostra i risultati. Qui il percorso dell'iniziatore superiore (postgresql/12/bin/psql) mostra il percorso del processo che ha generato la maggior parte delle chiamate di sistema.

Per migliorare le prestazioni di Defender per endpoint in Linux, individuare quello con il più alto count nella Top initiator path riga e aggiungervi un'esclusione del processo globale (valutare attentamente se è sicuro escluderlo). Per altre informazioni, vedere Configurare e convalidare le esclusioni per Defender per endpoint in Linux.

Configurare le esclusioni globali per migliorare le prestazioni

Configurare Microsoft Defender per endpoint in Linux con esclusioni per i processi o i percorsi del disco che contribuiscono ai problemi di prestazioni. Per ulteriori informazioni, vedere Configurare e convalidare le esclusioni per Microsoft Defender per endpoint su Linux. Se si verificano ancora problemi di prestazioni, contattare il supporto tecnico per ulteriori istruzioni e mitigazione.

Vedere anche

Consiglio

Per saperne di più, Engage con la community Microsoft Security nella community tech: Microsoft Defender per endpoint Tech Community.