Эксперты обнаружили бомбу замедленного действия, действующую 49 дней, которая, вероятно, замедляет работу вашего Mac.
Если ваш Mac работает несколько недель без перезагрузки и при этом тормозит, этому есть вполне конкретная причина. Исследователи из Photon обнаружили ошибку в macOS , которая действует как бомба замедленного действия.
После 49 дней, 17 часов, 2 минут и 47 секунд непрерывной работы ваш Mac незаметно теряет способность устанавливать новые интернет-соединения. Приложения перестают работать, веб-сайты не загружаются, а процессор начинает работать значительно интенсивнее, чем должен.
Так что же именно происходит внутри вашего Mac?
Ошибка заключается в том, как macOS отслеживает время для управления сетевыми соединениями. Операционная система использует 32-битный счетчик, который может хранить значения до 4 294 967 295 миллисекунд. Этот предел точно соответствует 49,7 дням непрерывной работы.
Как только это число достигнуто, счетчик переполняется и откатывается назад, подобно тому, как одометр автомобиля переключается с максимального значения на ноль. В этот момент macOS теряет возможность корректно закрывать завершенные сетевые соединения. Эти неактивные соединения начинают накапливаться вместо того, чтобы очищаться.
На вашем Mac доступно около 16 384 портов подключения. Как только они заполняются соединениями, которые должны были быть разорваны, новые соединения установить невозможно. В результате процессор тратит всё больше усилий на управление тысячами бесполезных соединений, поэтому замедление работы ощущается так ощутимо.
Но почему ваш Mac до сих пор не перестал работать?
Самое странное, что не всё ломается. Пинги по-прежнему работают, и любые соединения, которые были открыты до переполнения, продолжают функционировать нормально. Сбои происходят только с новыми соединениями, что делает ошибку непоследовательной и сложной для диагностики, не зная, что именно искать.
Этот тип ошибок не нов. Windows 95 и Windows 98 печально известны тем, что зависали через 49,7 дней по той же причине. Некоторые системы Linux сталкиваются с аналогичной проблемой 19 января 2038 года , когда их собственный 32-битный счетчик времени достигает своего предела. Теперь подтверждено, что macOS также имеет подобную проблему.
Как предотвратить замедление работы вашего Mac?
Решение сейчас очень простое: перезагрузите свой Mac до истечения 49 дней. Перезагрузка обнулит счетчик и даст вам еще 49,7 дней до того, как проблема повторится.
Компания Photon заявляет, что работает над программным решением, которое не потребует полной перезагрузки системы, но до тех пор, пока оно не появится, периодическая перезагрузка — ваш лучший вариант.