У мене була точно така ж проблема, вона мене тривалий час тривожила. Це особливо дратує, коли працюєш віддалено над SSH або граєш у багатокористувацькі ігри. Ось моє довгострокове рішення:
Діагностика
Запустіть пінг із частотою 10 сканувань в секунду, щоб побачити, коли відбувається збій:
ping 8.8.8.8 -i 0.1
Послуги сканування та локації
Як зазначають інші, спайки WiFi зазвичай викликаються демоном WiFi, який сканує інші мережі WiFi навколо. Сканування проходить через усі канали, тому якщо поточний канал прийому не такий, як передає ваша AP, у вас є шип пінг.
Сканування зазвичай ініціюється службами локації. Ви можете переглянути розташування послуг в: System Preferences -> Security & Privacy -> Privacy tab -> Location Services
.
Якщо ви перейдете до Advanced
перевірки, Show location icon in the menu bar...
щоб побачити, коли програми запитують місцеположення, скануючи околиці Wi-Fi.
Служби локації все ще активні через System services
. В основному Time Zone & System Customisation
і Significant Locations
. Але після вимкнення цього режиму у мене все-таки виникла помилка Wi-Fi, незважаючи на те, що вікно налаштування Місцеположення не показало жодної іншої програми, яка отримує місцезнаходження.
Пошук винуватця
Потрібно ввімкнути ведення протоколу WiFi, щоб дізнатися, чому демон демонструє сканування WiFi.
Утримуйте option/alt
клавішу (поруч із командною клавішею) та натисніть значок WiFi у верхній панелі інструментів. Клацніть Enable Wi-Fi Logging
.
Після цього відкрийте новий термінал:
tail -f /var/log/wifi.log
Ви повинні побачити щось подібне:
Mon Jan 14 20:01:21.353 AutoJoin: <airportd[83093]> Successful cache-assisted scan request for texstudio with channels {(
Mon Jan 14 20:01:21.353 <CWChannel: 0x7fbcfadc5b20> [channelNumber=56(5GHz), channelWidth={40MHz(-1)}, active, DFS],
Mon Jan 14 20:01:21.353 <CWChannel: 0x7fbcfadcbfb0> [channelNumber=60(5GHz), channelWidth={40MHz(+1)}, active, DFS],
Mon Jan 14 20:01:21.353 <CWChannel: 0x7fbcfd44c790> [channelNumber=64(5GHz), channelWidth={40MHz(-1)}, active, DFS],
Mon Jan 14 20:01:21.353 <CWChannel: 0x7fbcfadc6ba0> [channelNumber=149(5GHz), channelWidth={80MHz}, active],
Mon Jan 14 20:01:21.353 <CWChannel: 0x7fbcfad2be90> [channelNumber=153(5GHz), channelWidth={80MHz}, active],
Mon Jan 14 20:01:21.353 <CWChannel: 0x7fbcfadf4870> [channelNumber=157(5GHz), channelWidth={80MHz}, active]
Mon Jan 14 20:01:21.353 )} took 0.0005 seconds, returned 2 results
Mon Jan 14 20:01:21.353 Scan: <airportd[83093]> Cache-assisted scan request for texstudio on channel 161 does not require a live scan
Mon Jan 14 20:01:21.353 Scan: <airportd[83093]> Cache-assisted scan request for texstudio on channel 165 does not require a live scan
Mon Jan 14 20:01:21.353 Scan: <airportd[83093]> Cache-assisted scan request for texstudio on channel 100 does not require a live scan
Mon Jan 14 20:01:21.353 Scan: <airportd[83093]> Cache-assisted scan request for texstudio on channel 104 does not require a live scan
Mon Jan 14 20:01:21.353 Scan: <airportd[83093]> Cache-assisted scan request for texstudio on channel 108 does not require a live scan
Mon Jan 14 20:01:21.353 Scan: <airportd[83093]> Cache-assisted scan request for texstudio on channel 112 does not require a live scan
Mon Jan 14 20:01:21.353 Scan: <airportd[83093]> Cache-assisted scan request for texstudio does not require a live scan
Тепер спостерігайте за терміналом ping та терміналом журналу wifi поруч. Ви можете чітко бачити проблеми, які виникають, коли саме WiFi виконує сканування.
У моєму випадку винуватцем була програма texstudio
, як ви бачите з журналу. Він отримував місце розташування кожні 5 секунд (мас.?), Що підтверджується також цим хлопцем: https://justus.berlin/2016/04/reducing-cpu-load-and-energy-consumption-of-texstudio- on-the-mac /
Це вирішило мою проблему. Texstudio не згадувався у списку послуг локації, тому такий розширений підхід був необхідним.
Підсумок:
- Винуватець - послуги локації та сканування через wifi
- Перевірте ввімкнені служби локації
- Утримуйте клавішу клавіатури Option, натисніть значок WiFi у верхній панелі інструментів, натисніть Увімкнути журнал Wi-Fi
- Виконати в терміналі: ping 8.8.8.8 -i 0.1
- Виконати в терміналі: tail -f /var/log/wifi.log, у новому вікні. Поспостерігайте пліч-о-пліч, чекайте глюків.
- Перевірте журнал, коли спостерігався глюк, вбийте програму.