A execução de `yes> / dev / null` pode prejudicar um Mac?

36

Recentemente, corri yes > /dev/nullpor 3 minutos para esgotar a bateria do meu Mac. Durante esse período, a temperatura subiu para 72 ° C e os ventiladores giraram até 4000 RPM. Eu encerrei imediatamente o processo.

Devo temer que este hardware danificado ou a placa lógica?

bmike
fonte
9
Você acha que os Macs são projetados para serem danificados jogando jogos em 3D, compilando grandes projetos de software ou assim por diante?
user253751
3
Gostaria de acrescentar aqui que um amigo meu conseguiu derreter o teclado de seu pequeno notebook da apple (não me pergunte o modelo exato) compilando alguns projetos grandes. Depois, a tecla A foi ligeiramente deformada. Ainda funcional, mas você pode ver a diferença.
Byte Commander
3
Você acabará desgastando o orifício na /dev/nullporta e precisará de pistões grandes, mas espere até ver a fumaça do escapamento antes de correr para um mecânico.
user207421
@EJP - Isso é definitivamente verdade, mas a injeção de um bom lubrificante sintético diretamente na porta pode ajudar a prolongar a vida útil. Também ouvi dizer que uma pseudo-tty da Seafoaming tem benefícios significativos.
Allan
O que você quer dizer com seu comentário? @EJP

Respostas:

3

Certamente, como outros já disseram: a CPU e o kernel têm suas próprias estratégias de autopreservação.

Vou adicionar um pouco de sabor sobre como yes usa os recursos do computador.

Vale a pena distinguir entre o comportamento do BSD yese do GNU yes.
O macOS é um BSD, portanto, usará uma distribuição (antiga) do BSD yes.

Existe uma boa discussão sobre as diferenças em Como o GNU é yestão rápido?

E uma discussão dessa discussão existe no segmento Hacker News de mesmo nome .

O BSD / macOS yesrealmente roda puts("y");em um loop apertado.
GNU yesé ... um pouco mais sério. Possui otimizações muito além do mero buffer de E / S.

Birchlabs
fonte
55

As instruções para yester esta pequena jóia na página de manual :

O uso de yes resulta em 100% de uso do processador; por esse motivo, raramente é usado, exceto em testes, por exemplo, para maximizar a CPU de um computador.

O que significa que não, você não terá danificado seu hardware. Usar o yescomando é uma maneira de usar todo (ou seja, 100%) da sua CPU. Os sintomas que você experimentou (ou seja, um aumento da temperatura e o aumento resultante na rotação do ventilador) são esperados nessas circunstâncias. Além disso, sua CPU "acelera" e, por fim, é desativada se seu limite térmico for excedido para evitar danos.

Allan
fonte
2
Concordo plenamente. As máquinas podem funcionar a 100 graus da CPU por horas e têm muitas salvaguardas para diminuir o agendamento da CPU, se o resfriamento não estiver acompanhando.
bmike
11
Mas ouvi dizer que durante a execução de loop durante a execução pode derreter algumas partes. E quanto tempo devo ter deixado o comando yes em execução para que meu Mac atinja 105 ° C?
3
É sempre melhor usar dados empíricos documentados em vez de boatos. Por exemplo, consulte: Intel - Como funciona o desligamento por superaquecimento? Quanto ao tempo necessário, 1) depende do seu ambiente operacional físico e 2) o que você está tentando realizar? Essa, porém, é uma pergunta diferente da que foi originalmente colocada.
Allan
3
Essa é uma afirmação bastante surpreendente da página de manual! Embora executá-lo por conta própria seja, bastante inútil, canalizá-lo para outro comando pode ser bastante útil de tempos em tempos.
Muzer
8

O yescomando simplesmente grava repetidamente uma string em stdout, o caractere y por padrão. Redirecionar ( >) para /dev/nullsimplesmente fazer com que os dados do fluxo sejam esquecidos. Em outras palavras, isso não tem efeito duradouro no estado persistente do seu computador, não é um comando prejudicial através dessa lente.

Como o comando yes grava uma string no stdout sem nenhuma restrição na velocidade de saída, isso fará com que a CPU alcance a utilização máxima em um núcleo. Essa é a causa do aumento da temperatura do processador e do aumento da velocidade do ventilador associado.

Em uma máquina moderna, particularmente bem projetada como um laptop da Apple, o hardware se protege contra danos por superaquecimento. Primeiro, aumentando a velocidade do ventilador, depois diminuindo a velocidade do clock do processador e, finalmente, interrompendo o processador. Sem contornar intencionalmente esses recursos, seu hardware não superaqueceu. A máquina está bem.

Você mencionou uma temperatura de 72 ° C especificamente. Esta não é uma temperatura muito alta para uma matriz de CPU. Uma CPU móvel modesta, a i5-7260U, especifica uma temperatura máxima permitida de 100 ° C. Você pode ver a especificação como T_Junction na seção de especificações do pacote desta página: http://ark.intel.com/products/97539/Intel-Core-i5-7260U-Processor-4M-Cache-up-to-3_40- GHz

reconhecedores
fonte
-2

A triste verdade é: isso pode "prejudicar um Mac ".

O exemplo real dado no corpo para a pergunta: isso provavelmente não causou danos ao dispositivo. Concedido.

Mas, como resposta geral à pergunta no título: depende de qual tipo de Mac estamos falando. Os conselhos e raciocínios dados até agora sobre esta questão ou nos comentários não são universalmente verdadeiros e podem ser bastante perigosos! Existe muita confiança e fé na mera crença de que o hardware da Apple é o melhor que existe.

Simplesmente não é verdade que a Apple projete agora ou projetou no passado todos os seus sistemas para realmente não se prejudicar por superaquecimento. Embora seja verdade que isso não deva acontecer , também é verdade que isso acontece . E fez:

O principal exemplo disso são os profissionais do MacBook, especialmente os de 2010-2012. Enquanto o chip Intel estressado principalmente yesem todos os threads por um tempo prolongado diminui, ele aguenta altas temperaturas muito bem e até o sistema operacional entra em ação e aumenta o kernel_task para não fazer nada útil, exceto ajudar a esfriar a máquina, o discreto chip no mesmo heatpipe é o correspondente vulnerável lá.

Estressar esses sistemas desnecessariamente, como yesacontece com , acelera a falha do chip gráfico RadeonGate. Existem inúmeros exemplos de perguntas para o mais afetado 2011 8,2 neste mesmo site. Essa falha na GPU é um problema térmico. Existem até guias por aí sobre como matar a máquina simplesmente executando renderizações ou benchmarks 3D pesados ​​por um tempo. Esses sistemas foram anunciados, mas não adequados para, por exemplo, renderização ou jogos. Ações judiciais coletivas (apenas ameaçadas) e Programas de Extensão de Reparação falam por si.

LÁngLаngС
fonte
11
Eu possuo um MacBook no início de 2015 com a tela Retina e não um MacBook 2011 para o vídeo info.Nice.
Esta resposta é fundamentalmente incorreta. yesde maneira alguma interage com uma GPU. A fonte para yesapenas chama as bibliotecas mais básicas; nenhum deles sendo as bibliotecas de matemática (no mínimo necessário para acessar a GPU). Em segundo lugar, o vídeo que você vinculou não vincula de forma alguma yesàs GPUs com falha. Os links de Rossman falharam na GPU com a má fabricação.
Allan
Não é fundamentalmente incorreto nos dispositivos fornecidos. Minha resposta é sobre a diferenciação entre dispositivos. E trata-se de má fabricação e design inerentemente ruim. yessalienta a CPU. Uma CPU estressada esquenta. A temperatura é aumentada no dissipador de calor e esse mesmo dissipador de calor precisa resfriar as GPUs vulneráveis. Esse dissipador de calor / design térmico falha em fazê-lo regularmente na maioria dos 8,2 MBP.
LаngLаngС
@LangLangC - Esse dissipador de calor / design térmico falha. Isso é uma falácia lógica. Não há evidências de que uma CPU quente (er) prejudique as propriedades de dissipação de energia do dissipador de calor, causando a falha da GPU e você fornece evidências para apoiar a reivindicação. O vídeo que você vinculou (todos os 17 minutos) não faz menção a temperaturas mais altas da CPU ou estressa a CPU.
Allan
A evidência está na taxa de falha nessas unidades. Você já olhou para esses dissipadores de calor? É física simples.
LаngLаngС