Может ли запуск `yes> / dev / null` навредить Mac?


36

Я недавно побежал yes > /dev/nullв течение 3 минут, чтобы разрядить аккумулятор моего Mac. За это время температура повысилась до 72 ° C, и вентиляторы вращались до 4000 об / мин. Я немедленно ушел из процесса.

Стоит ли бояться, что это поврежденное оборудование или логическая плата?


9
Считаете ли вы, что компьютеры Mac могут быть повреждены при игре в 3D-игры, при компиляции больших программных проектов и т. Д.?
user253751

3
Хотелось бы добавить, что моему другу удалось расплавить клавиатуру своего маленького яблочного блокнота (не спрашивайте меня о точной модели), скомпилировав несколько крупных проектов. После этого клавиша A была слегка деформирована. Все еще функционально, но вы могли видеть разницу.
Byte Commander

3
В /dev/nullконце концов, вы изнашиваете отверстие в отверстии, поэтому вам понадобятся негабаритные поршни, но подождите, пока не увидите дым из выхлопной трубы, прежде чем мчаться к механику.
user207421

@EJP - Это действительно так, но впрыскивание хорошей синтетической смазки непосредственно в порт может продлить срок службы. Я также слышал, что Seafoaming для псевдотерминала имеет значительные преимущества.
Аллан

Что вы подразумеваете под своим комментарием? @EJP

Ответы:


3

Конечно, как говорили другие: и у процессора, и у ядра есть свои собственные стратегии самосохранения.

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

Стоит различать поведение BSD yesи GNU yes.
macOS является BSD, поэтому будет использовать (старый) дистрибутив BSD yes.

Хорошее обсуждение различий существует на Как GNU yesтак быстро?

И обсуждение этого обсуждения существует в одноименной ветке Hacker News .

BSD / macOS yesдействительно работает просто puts("y");в тесном цикле.
GNU yes... несколько серьезнее. У него есть оптимизации, выходящие далеко за рамки простой буферизации ввода / вывода.


55

Инструкции для yesэтого маленького драгоценного камня со страницы руководства :

Использование yes приводит к 100% использованию процессора, по этой причине он редко используется, кроме как для тестирования, например, для максимальной загрузки ЦП компьютера.

Это значит, нет, вы не повредите свое оборудование. Использование yesкоманды - это способ использования всего (т.е. 100%) вашего процессора. Симптомы, которые вы испытали (например, повышение температуры и результирующее увеличение оборотов вентилятора), следует ожидать в этих обстоятельствах. Кроме того, ваш процессор будет «дросселировать» и в конечном итоге выключится, если его тепловой порог будет превышен, чтобы предотвратить повреждение.


2
Полностью согласен. Машины могут работать при 100 градусах процессора в течение нескольких часов и имеют множество мер предосторожности, чтобы снизить планирование работы процессора, если охлаждение не поддерживается.
bmike

1
Но я слышал, что во время выполнения цикла, когда выполнение может растопить некоторые части. И сколько времени мне нужно было оставить команду yes для выполнения, чтобы мой Mac достигал 105 C?

3
Всегда лучше использовать документированные, эмпирические данные, а не слухи. Например, см .: Intel - Как работает отключение при перегреве? Что касается необходимого времени, 1) это зависит от вашей физической операционной среды, и 2) что вы пытаетесь достичь? Это, однако, другой вопрос, чем тот, который был первоначально поставлен.
Аллан

3
Это довольно удивительное утверждение из справочной страницы! Хотя запускать его самостоятельно, я согласен, довольно бесполезно, передача его в другую команду может время от времени быть весьма полезной.
Музер


8

Команда yesпросто многократно записывает строку в стандартный вывод, по умолчанию это символ y. Redirecting ( >) /dev/nullпросто вызывает потерю данных потока. Другими словами, это не оказывает длительного влияния на постоянное состояние вашего компьютера, это не вредная команда через этот объектив.

Поскольку команда yes записывает строку в стандартный вывод без каких-либо ограничений на скорость вывода, это приведет к тому, что ЦП достигнет максимальной загрузки на одном ядре. Это является причиной повышения температуры процессора и увеличения скорости вращения вентилятора.

В современной машине, особенно хорошо спроектированной, такой как ноутбук Apple, аппаратная часть защитит себя от перегрева. Сначала путем увеличения скорости вращения вентилятора, затем путем уменьшения тактовой частоты процессора и, в конечном итоге, путем остановки процессора. Без преднамеренного обхода этих функций ваше оборудование не перегревалось. Машина в порядке.

Вы упомянули температуру 72 ° C конкретно. Это не очень высокая температура для кристалла процессора. Скромный мобильный процессор i5-7260U определяет максимально допустимую температуру 100 ° C. Вы можете увидеть спецификацию как T_Junction в разделе спецификаций пакетов на этой странице: http://ark.intel.com/products/97539/Intel-Core-i5-7260U-Processor-4M-Cache-up-to-3_40- ГГц


-2

Печальная правда в том, что это может «навредить Mac ».

Фактический пример приведен в теле вопроса: это, скорее всего, не повредило устройству. Предоставляется.

Но как общий ответ на вопрос в заголовке: это зависит от того, о каком типе Mac идет речь. Советы и рассуждения, приведенные до сих пор по этому вопросу или в комментариях, не всегда верны и могут быть довольно опасными! Слишком много доверия и веры вкладывают в простое убеждение, что аппаратное обеспечение Apple - это лучшее, что есть.

Это просто неправда, что Apple разрабатывает сейчас или разработала в прошлом все свои системы, чтобы действительно не навредить себе из-за перегрева. Хотя это правда, что этого не должно происходить, это также правда, что это происходит . И сделал:

Ярким примером этого являются MacBook Pro, особенно те, что были в 2010-2012 годах. В то время как микросхема Intel, которая yesв течение длительного времени подвергается основной нагрузке на все потоки, будет дросселировать, будет хорошо справляться с высокими температурами, и даже ОС включит и увеличит kernel_task, чтобы ничего не делать, кроме как помочь охладить машину, дискретный микросхема на той же тепловой трубке является уязвимым аналогом.

Напряжение этих систем без необходимости, как с yes, ускоряет отказ графического чипа RadeonGate. На этом сайте есть множество примеров вопросов к наиболее сильно затронутым 2011 годам 8,2. Этот сбой графического процессора является тепловой проблемой. Есть даже руководства о том, как убить машину , просто запустив какое-то время рендеринг или тесты. Эти системы рекламировались, но не подходили, например, для рендеринга или игр. Групповые иски (только под угрозой) и ремонтные программы расширения говорят сами за себя.


1
В начале 2015 года у меня был MacBook с дисплеем Retina, но не MacBook 2011 для видео.

Этот ответ в корне неверен. yesв любом случае не взаимодействует с графическим процессором. Источник на yesвызовы только самые основные библиотеки; ни одна из них не является математической библиотекой (минимум для доступа к графическому процессору). Во-вторых, видео, которое вы связали, никоим образом не связывается yesс неисправными графическими процессорами. Россман связывает вышедшие из строя GPU с плохим производством.
Аллан

Это не принципиально неверно на данных устройствах. Мой ответ о разнице между устройствами. И речь идет о плохом производстве и плохом дизайне. yesподчеркивает процессор. Нагруженный процессор нагревается. Затем температура на радиаторе повышается, и этот же радиатор должен охлаждать уязвимые графические процессоры. Такой дизайн радиатора / теплообменника не позволяет делать это регулярно на большинстве 8,2 МБТ.
LаngLаngС

@LangLangC - этот радиатор / тепловой дизайн терпит неудачу. Это логическая ошибка. Нет никаких доказательств того, что теплый (эр) процессор препятствует рассеиванию энергии радиатором, что приводит к отказу графического процессора, и вы предоставляете доказательства в поддержку претензии. Видео, которое вы связали (все 17 минут), не упоминает о более высокой температуре процессора или нагрузке на процессор.
Аллан

Свидетельство тому - частота отказов в этих единицах. Вы смотрели на эти радиаторы? Это простая физика.
LаngLаngС
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.