Поделиться через


Устранение проблем с производительностью Microsoft Defender для конечной точки в Linux

Применимо к:

Хотите попробовать Defender для конечной точки? Зарегистрироваться для бесплатной пробной версии.

В этой статье описывается, как сузить проблемы с производительностью, связанные с Defender для конечной точки в Linux. Доступны средства диагностики, помогающие понять и устранить нехватку ресурсов и процессы, влияющие на производительность. Эти средства диагностики также можно использовать для улучшения видимости на портале Microsoft Defender. Узкие места в одной или нескольких аппаратных подсистемах в основном вызывают проблемы с производительностью в зависимости от профиля использования ресурсов в системе. Иногда приложения чувствительны к ресурсам операций ввода-вывода на диске и могут нуждаться в большей емкости ЦП, а иногда некоторые конфигурации не являются устойчивыми, могут активировать слишком много новых процессов и открыть слишком много дескрипторов файлов.

В зависимости от выполняемых приложений и характеристик устройства производительность может быть неоптимальной при запуске Defender для конечной точки в Linux. В частности, приложения или системные процессы, которые обращаются ко многим ресурсам, таким как ЦП, диск и память, за короткий промежуток времени, могут привести к проблемам с производительностью в Defender для конечной точки на Linux.

Предупреждение

Перед запуском убедитесь, что другие продукты безопасности в настоящее время не запущены на устройстве. Несколько продуктов безопасности могут конфликтовать и влиять на производительность узла.

Существует три способа устранения неполадок в шумных процессах и каталогах с помощью средств диагностики из Microsoft Defender для конечной точки в Linux:

  • Использование статистики защиты в режиме реального времени
  • Использование горячих источников событий
  • Использование статистики eBPF

Устранение проблем с производительностью с помощью статистики защиты в режиме реального времени

Область применения:

  • Только проблемы с производительностью, связанные с антивирусной программой

Защита в режиме реального времени (RTP) — это функция Defender для конечной точки в Linux, которая постоянно отслеживает и защищает устройство от угроз. Он состоит из мониторинга файлов и процессов и другой эвристики.

Для устранения и устранения этих проблем можно выполнить следующие действия.

  1. Отключите защиту в режиме реального времени с помощью одного из следующих методов и проверьте, повысится ли производительность. Этот подход помогает сузить, влияет ли Defender для конечной точки на Linux на проблемы с производительностью. Если устройство не управляется вашей организацией, в командной строке можно отключить защиту в режиме реального времени:

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

    Если ваша организация управляет устройством, администратор может отключить защиту в режиме реального времени, следуя инструкциям в разделе Настройка параметров Defender для конечной точки в Linux.

    Примечание.

    Если проблема с производительностью сохраняется, а защита в режиме реального времени отключена, источником проблемы может быть также компонент обнаружения и реагирования на конечные точки (EDR). В этом случае необходимо добавить глобальные исключения из антивирусной программы и EDR. В этом случае выполните действия, описанные в разделе Устранение проблем с производительностью с помощью горячих источников событий.

  2. Чтобы найти приложения, запускающие большинство проверок, можно использовать статистику в режиме реального времени, собираемую Defender для конечной точки в Linux.

    Примечание.

    Эта функция доступна в версии 100.90.70 или более поздней.

    Эта функция включена по умолчанию в каналах Dogfood и InsiderFast . Если вы используете другой канал обновления, эту функцию можно включить из командной строки:

    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 (обратите внимание на двойную тире) гарантирует, что выходной формат готов к синтаксическому анализу.

    В выходных данных этой команды показаны все процессы и связанные с ними действия сканирования.

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

    Чтобы повысить производительность Defender для конечной точки в Linux, найдите объект с наибольшим числом в Total files scanned строке и добавьте для него исключение антивирусной программы (тщательно оцените, безопасно ли исключить его). Дополнительные сведения см. в статье Настройка и проверка исключений для Defender для конечной точки в Linux.

    Примечание.

    Приложение хранит статистику в памяти и отслеживает только активность файлов с момента запуска и включения защиты в режиме реального времени. Процессы, которые были запущены до или в периоды, когда защита в режиме реального времени была отключена, не учитываются. Кроме того, учитываются только события, которые вызвали сканирование.

Устранение проблем с производительностью с помощью горячих источников событий

Область применения:

  • Проблемы с производительностью в файлах и исполняемых файлах, которые потребляют большую часть циклов ЦП во всей файловой системе.

Горячие источники событий — это функция, которая позволяет клиентам определить, какой процесс или каталог отвечает за высокое потребление ресурсов. Чтобы определить, какой процесс или исполняемый файл создает наибольшее количество помех, выполните следующие действия.

Примечание.

Для выполнения этих команд требуются разрешения 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 создают наибольшее количество действий.

Завершив исследование, вы можете изменить уровень журнала обратно на "info".

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

Чтобы повысить производительность Defender для конечной точки в Linux, найдите путь с наибольшим числом в строке счетчика и добавьте для него глобальное исключение процесса (если это исполняемый файл) или глобальное исключение файла или папки (если это файл) (тщательно оцените, безопасно ли исключить его). Дополнительные сведения см. в статье Настройка и проверка исключений для Defender для конечной точки в Linux.

Устранение проблем с производительностью с помощью статистики 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) показывает путь к процессу, который создал большинство системных вызовов.

Чтобы повысить производительность Defender для конечной точки в Linux, найдите экземпляр с самым высоким count значением в Top initiator path строке и добавьте для него глобальное исключение процесса (тщательно оцените, безопасно ли исключить его). Дополнительные сведения см. в статье Настройка и проверка исключений для Defender для конечной точки в Linux.

Настройка глобальных исключений для повышения производительности

Настройте Microsoft Defender для конечной точки в Linux с исключениями для процессов или расположений дисков, которые приводят к проблемам с производительностью. Дополнительные сведения см. в статье Настройка и проверка исключений Microsoft Defender для конечной точки в Linux. Если у вас по-прежнему возникают проблемы с производительностью, обратитесь в службу поддержки для получения дополнительных инструкций и устранения неполадок.

См. также

Совет

Хотите узнать больше? Engage с сообществом Microsoft Security в нашем техническом сообществе: Microsoft Defender для конечной точки Техническое сообщество.