38

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?

6
  • 9
    Do you think that Macs are designed to be damaged by playing 3D games, compiling big software projects, or so on?
    – user253751
    Aug 16, 2017 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. Aug 16, 2017 at 10:47
  • 4
    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, 2017 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, 2017 at 15:12
  • What do you mean by your comment?@EJP
    – user244378
    Aug 19, 2017 at 15:47

4 Answers 4

5

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.

59

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.

6
  • 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, 2017 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, 2017 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, 2017 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, 2017 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.

6
  • 1
    I own a MacBook early 2015 with Retina display not a MacBook 2011 for the info.Nice video though.
    – user244378
    Aug 26, 2017 at 14:05
  • 2
    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, 2017 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. Aug 26, 2017 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, 2017 at 21:27
  • The evidence is in the rate of failure in these units. Have you looked at these heatsinks? It's simple physics. Aug 26, 2017 at 22:06

You must log in to answer this question.