У меня была точно такая же проблема, она беспокоила меня довольно долго. Это особенно раздражает, когда вы работаете удаленно через SSH или играете в многопользовательские игры. Вот мое долгосрочное решение:
диагностика
Запустите ping с частотой 10 сканирований в секунду, чтобы увидеть, когда происходит сбой:
ping 8.8.8.8 -i 0.1
Услуги сканирования и определения местоположения
Как уже упоминалось, шипы WiFi обычно вызваны тем, что демон WiFi сканирует другие сети WiFi вокруг. Сканирование проходит по всем каналам, поэтому, если текущий принимающий канал не совпадает с тем, что передает ваша точка доступа, у вас есть пинг пинга.
Сканирование обычно запускается службами определения местоположения. Вы можете просмотреть расположение услуг в: System Preferences -> Security & Privacy -> Privacy tab -> Location Services
.
Если вы идете, чтобы Advanced
проверить, Show location icon in the menu bar...
когда приложения запрашивают местоположение, сканируя окрестности WiFi.
Службы определения местоположения были все еще активны из-за System services
. В основном Time Zone & System Customisation
и Significant Locations
. Но после выключения у меня все еще был сбой Wi-Fi, несмотря на то, что окно настройки местоположения не показывало никакое другое приложение, получающее местоположение.
Нахождение виновника
Вам нужно включить ведение журнала WiFi, чтобы понять, почему демон WiFi выполняет сканирование.
Удерживайте option/alt
клавишу (рядом с клавишей Command) и нажмите значок Wi - Fi в верхней панели. Нажмите 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/reduc-cpu-load-and-energy-consump-of-texstudio- на-макинтош /
Это решило мою проблему. Texstudio не была упомянута в списке служб определения местоположения, поэтому этот продвинутый подход был необходим.
Резюме:
- Виновником является определение местоположения и сканирование Wi-Fi.
- Проверьте сервисы определения местоположения, которые вы включили
- Удерживайте клавишу клавиатуры Option, нажмите значок WiFi на верхней панели инструментов, нажмите «Включить ведение журнала Wi-Fi».
- Выполнить в терминале: ping 8.8.8.8 -i 0.1
- Выполните в терминале: tail -f /var/log/wifi.log, в новом окне. Наблюдай бок о бок, жди сбоев.
- Проверь логи, когда глюк наблюдался, убей программу.