sysmon — это фоновая горутина, которая запускается периодически (обычно каждые 10 мс). Он выполняет несколько важных задач, связанных со средой выполнения и планировщиком:
-
Вытеснение: Он помогает вытеснять горутины, которые выполнялись слишком долго, без прерывания выполнения, обеспечивая справедливость.
-
Опрос сети. На поддерживаемых платформах он обрабатывает опрос сетевых событий (например, готовности данных к сокету) с помощью неблокирующего сетевого опросчика. Когда происходят события, он разблокирует горутины, ожидающие этих сетевых операций.
-
Сборка мусора: помогает сборщику мусора, отмечая неиспользуемые M как безопасные точки для GC.
-
Обработка системных вызовов. Он идентифицирует M, которые были заблокированы в системных вызовах в течение длительного времени, и отсоединяет их P.
-
Управление холостыми M/P: Очищает или паркует неработающие M и P.
-
Отношение к планировщику: Sysmon гарантирует, что планировщик остается отзывчивым, не позволяя горутинам монополизировать P, обрабатывая разблокировку ввода-вывода и помогая в управлении ресурсами времени выполнения (M и P).
Итог
sysmon — это фоновая горутина, которая запускается периодически (обычно каждые 10 мс).