36

I recently ran yes > /dev/null for a 3 minutes to drain my Mac's battery. During that time, the temperature rose to 72 °C and fans spun up to 4000 RPM. I immediately quit the process.

Should I fear that has this damaged hardware or the logic board?

  • 8
    Do you think that Macs are designed to be damaged by playing 3D games, compiling big software projects, or so on? – immibis Aug 16 '17 at 3:56
  • 3
    Would like to add here that a friend of mine managed to melt the keyboard of his small apple notebook (don't ask me for the exact model) by compiling some large projects. Afterwards the A key was slightly deformed. Still functional, but you could see the difference. – Byte Commander Aug 16 '17 at 10:47
  • 3
    You will wear out the bore on the /dev/null port eventually so you will need oversized pistons, but wait until you see smoke from the exhaust before rushing to a mechanic. – user207421 Aug 17 '17 at 5:08
  • @EJP - That's definitely true, but injecting a good synthetic lubricant directly into the port can help extend the life. I've also heard that Seafoaming a pseudo tty has significant benefits. – Allan Aug 18 '17 at 15:12
  • What do you mean by your comment?@EJP – user244378 Aug 19 '17 at 15:47
2

Certainly as others have said: the CPU and kernel both have their own self-preservation strategies.

I'll add some flavour concerning how yes uses computer resources.

It's worth distinguishing between the behaviour of BSD yes and GNU yes.
macOS is a BSD, so will use an (old) distribution of BSD yes.

A good discussion of the differences exists at How is GNU yes so fast?

And a discussion of that discussion exists on the Hacker News thread of the same name.

BSD/macOS yes really does just run puts("y"); in a tight loop.
GNU yes is… somewhat more serious. It has optimizations far beyond mere buffering of I/O.

55

The instructions for yes have this little gem from the man page :

Using yes results in 100% processor usage, for this reason it is rarely used other than for testing e.g. to max out a computer's CPU.

Which means, no, you will not have damaged your hardware. Using the yes command is a way of using all (i.e. 100%) of your CPU. The symptoms you experienced (i.e. a rise in temperature and the resulting increase in fan RPM) are to be expected under these circumstances. Additionally, your CPU will "throttle back" and ultimately shut down if its thermal threshold is exceeded to prevent damage.

  • 2
    Totally agree. The machines can run at 100 degrees CPU for hours and have many safeguards to lower cpu scheduling if cooling isn’t keeping up. – bmike Aug 15 '17 at 11:23
  • 1
    But I've heard that while running loop while execution can melt some parts.And how much time should have I left the yes command running so that my Mac reaches 105 C? – user244378 Aug 15 '17 at 13:30
  • 3
    It's always best to go with documented, empirical data rather than hearsay. For example, see: Intel - How does the shutdown on overheating work? As for the time required, 1) it depends on your physical operating environment, and 2) what are you trying to accomplish? That, however is a different question that what was originally posited. – Allan Aug 15 '17 at 13:35
  • 3
    That's quite a surprising statement from the manpage! While running it on its own is, I agree, pretty useless, piping it into another command can be quite useful from time to time. – Muzer Aug 15 '17 at 15:57
  • 3
8

The yes command simply repeatedly writes a string to stdout, the character y by default. Redirecting (>) it to /dev/null simply causes for the stream data to be forgotten. In other words this has no lasting effect on the persistent state of your computer, it is not a harmful command through this lens.

Since the yes command writes a string to stdout without any constraint on the output speed, this will cause for the CPU to reach maximal utilization on one core. This is the cause of the processor temperature increase and associated fan speed increase.

In a modern machine, particularly a well designed one like an Apple laptop, the hardware will protect its self from overheating damage. First by increasing fan speed, then by decreasing processor clock speed, and ultimately by halting the processor. Without intentionally circumventing these features, your hardware did not overheat. The machine is fine.

You mentioned a temperature of 72 °C specifically. This is not a very high temperature for a CPU die. A modest mobile cpu, the i5-7260U, specifies a maximum permissible temperature of 100 °C. You can see the specification as T_Junction in the package specifications section of this page: http://ark.intel.com/products/97539/Intel-Core-i5-7260U-Processor-4M-Cache-up-to-3_40-GHz

-2

The sad truth is: this can "Harm a Mac".

The actual example given in the body for the question: this very likely did not harm the device. Granted.

But as a general answer to the question in the title: It depends on which type of Mac we are talking about. The advice and reasoning given so far on this question or in the comments is not universally true and can be quite dangerous! There is too much trust and faith put into the mere belief that Apple hardware is just the best there is.

It is simply not true that Apple designs now or designed in the past all its systems to really not harm themselves through overheating. While it is true that this should not happen it is also true that it does happen. And did:

The prime example for this are the MacBook Pros, especially those from 2010-2012. While the Intel chip that is primarily stressed with yes on all threads for a prolonged time will throttle down, will handle high temperatures quite well and even the OS will kick in and ramp up kernel_task to do nothing useful except help cool down the machine, the discrete chip on the same heatpipe is the vulnerable counterpart there.

Stressing these systems needlessly, like with yes, hastens the RadeonGate graphics chip failure. There are numerous examples of questions to the most heavily effected 2011 8,2 on this very web-site. This GPU failure is a thermal issue. There are even guides out there on how to kill the machine by simply running heavy 3D rendering or benchmarks for a time. These systems were advertised for but not suited for e.g. rendering or gaming. Class action lawsuits (only threatened) and Repair Extension Programs speak for themselves.

  • 1
    I own a MacBook early 2015 with Retina display not a MacBook 2011 for the info.Nice video though. – user244378 Aug 26 '17 at 14:05
  • This answer is fundamentally incorrect. yes does not in anyway interact with a GPU. The source for yes only calls the most basic libraries; none of them being the math libraries (at min. required to access GPU). Secondly, the video you linked does not in any way link yes to failed GPUs. Rossman links failed GPU with poor manufacturing. – Allan Aug 26 '17 at 21:05
  • It is not fundamentally incorrect on the devices given.My answer is about differentiating among devices. And it is about poor manufacturing and inherently poor design. yes stresses the CPU. A stressed CPU gets warm. Temperature is then increased on the heat sink and that same heat sink has to cool vulnerable GPUs. That heat sink/thermal design fails to do so regularly on most 8.2 MBP. – LangLangC Aug 26 '17 at 21:07
  • @LangLangC - That heat sink/thermal design fails. That's a logical fallacy. There is zero evidence that a warm(er) CPU hinders the energy dissipation properties of the heat sink causing the GPU to fail and you supply evidence to support the claim. The video you linked (all 17 mins of it) makes no mention to higher CPU temps or stressing the CPU. – Allan Aug 26 '17 at 21:27
  • The evidence is in the rate of failure in these units. Have you looked at these heatsinks? It's simple physics. – LangLangC Aug 26 '17 at 22:06

You must log in to answer this question.