I Love You Apple, But Sometimes…

Lately I noticed that the fan on my Mac­Book Air wasn’t ever shut­ting off. I ignored it as long as I could, know­ing that it’s one of the Mac­Book Air’s (1st gen) known trou­blespots. I wasn’t see­ing too much of a slow­down in the machine, though some­times the CPU would spike. And, I know Fire­fox was the cause of at least some of this by pay­ing atten­tion to the machine’s dis­po­si­tion through the course of the day.

Last week, I got totally hosed on an online con­fer­ence, my machine totally unable to keep up. Frus­trated, I decided to dig in… two hours later I had a quiet machine with­out CPU spikes, and I’m going to share exactly what I did. I’m not a hacker, so hope­fully my expla­na­tion in layman’s terms will help peo­ple who aren’t nearly so technical.

First, I wanted to see what was going on, and the seem­ingly best way to get that done was with iStat. iStat installs eas­ily, is free, and with rel­a­tively lit­tle tech­ni­cal knowl­edge can tell you all sorts of things about your machine with­out ever open­ing a ter­mi­nal. It also has links to Activ­ity Mon­i­tor and Con­sole apps, which give you quick access to impor­tant log files. I know these apps exist, but never remem­ber what they’re called, so hav­ing them just a click away really helps.

Tells me my CPU is run­ning very high, due to kernel_task. I look into this, and it basi­cally means some­thing is not behav­ing well… A quick google search turns up noth­ing spe­cific so I go with my gut, and turn off Fire­fox. Turns out, it’s the cul­prit. CPU goes down when I quit it, and up when I start it. I often keep a lot of tabs open, per­haps that’s it. But… know­ing that a lot of other peo­ple run Fire­fox on their Mac with­out any trou­ble at all, I start by delet­ing all my add-ons.

Nor­mally, it would have been smart to dis­able one-by-one until a cul­prit could be iden­ti­fied, but I just wanted to get it done. I’ll go back later and enable them one at a time to see how the machine likes each. Add-ons can eas­ily do some­thing wrong; unlike the Apple App store, there is no one gov­ern­ing qual­ity of fire­fox add-ons. (Of course, it also means there is no one telling us all what we can or can’t do either… two sides of the same coin.)

So, I deleted/disabled all my add-ons. And, sur­prise, fire­fox is bet­ter. I’ll have to go back later and re-enable the plug-ins I really want, and see if it’s one of them that were muck­ing with things.

That said, my fan is still run­ning high, and loud. Con­stantly. And, restart­ing the machine qui­ets it down, but it’s not long before the fan kicks up again.

By the way, the machine is not sit­ting in the sun, and I’m in an air con­di­tioned room of about 73 degrees.

I pur­chased and installed cool­book. Cool­book is an app that lets you under­volt your machine so the CPU runs cooler. This is a great arti­cle on using Cool­book, and also turned me onto SMC­fan­con­trol. I used the set­tings in the arti­cle but for the high­est fre­quency, because the test failed. So, I’m run­ning 1.8Mhz at 9.875. In gen­eral, each CPU is dif­fer­ent, and the arti­cle rec­om­mends how to test dif­fer­ent volt­age lev­els, but I’m lazy. If it works for him, .9v seems quick a good number.

If you’re inter­ested in what Cool­book really does, there’s a great arti­cle on Macru­mors.

I’m start­ing to think I might have two prob­lems… first is it runs hot, then the fan turns on. Sec­ond is that once on, the fan doesn’t turn off with­out the machine get­ting unrea­son­ably cool. I read some­where that the fan doesn’t turn down until under 50 degrees C. Even now, not doing any­thing with no periph­er­als or sec­ond mon­i­tor attached, I’m run­ning at 52 degrees.

Based on my read­ing, when the CPU isn’t being used (like it was for the fire­fox prob­lem), it might be any num­ber of things… could be my desk sur­face is not dis­si­pat­ing heat well (I’m writ­ing on the desk right now and it’s stay­ing cool, so that doesn’t seem to be it). It could be “all” the periph­er­als I attach. I’m going to need to see if this is the case… the key ones are the mon­i­tor, key­board, and exter­nal hard drive. I’ve got blue­tooth mouse now and no prob­lems. Run­ning with an exter­nal mon­i­tor and doing reg­u­lar work seems to bump the temp up to about 70 degrees.

I also installed SMC­Fan­Con­trol:  (if that link dis­ap­pears, might want to look here: http://www.eidac.de/?page_id=6)

And, using the arti­cle above, I’ve set the min­i­mum fan speed to 3800, since the arti­cle said that he chose his set­ting of 3810 which still had no audi­ble noise… this way, the fan runs and cools things, keep­ing it cooler over­all longer, before the higher fan rate kicks in. (After a few days of this, I see it doesn’t make a dif­fer­ence for me, for the most part, my fan just kicks up).

Read­ing the forum link above, it does look like pow­er­ing an exter­nal mon­i­tor is a heavy load for the machine, and makes it run hot. I’m not will­ing to give that up. Though, it makes a huge dif­fer­ence, seem­ingly about 15 degrees C.

Once installing Cool­book, keep an eye out for weird behav­ior. Even though it works well ini­tially, it may cause some insta­bil­ity to under­volt too much, and you want to keep an eye on that.

I need to look at max fan speed — because I’m now work­ing on this an hour, and not run­ning any­thing but Ever­note and the Browser, and my temp is still below 49 degrees, but my fan is back up to 6000 rpm. I was hes­i­tant to muck with the max­i­mum fan speed, but this thing won’t shut up.

In one of the arti­cles, one of the smart sound­ing guys said that he found “4000rpm to be absolutely suf­fi­cient on my machine and with my work­ing habits”. That’s enough for me… though I’ll keep an eye on the temp to make sure I don’t fry anything.

I’ve just set max temp to 4000, and the fan went right down. Now, I’ll just keep an eye on the tem­per­a­ture. This needs to be man­u­ally set after each reboot, though it can be automated.

And, here’s a thread on the script to run it auto­mat­i­cally (post #35/36 cov­ers it, for boot and com­ing out of sleep).

I cre­ated Set­Max­Fan app in automa­tor, put in Appli­ca­tions folder. Set it to run at startup, hid­den, in Accounts/LoginItems. Works like a champ.

Installed Sleep­Watcher 2.0.5, and set the .wakeup script to the fol­low­ing:
#!/bin/bash/Applications/smcFanControl.app/Contents/Resources/smc –k F0Mx –w 3e80

Can’t seem to get Sleep­Watcher work­ing, but for now, it seems quite easy to pop a ter­mi­nal and run the script man­u­ally when I hear the fan (which I always do if I work­ing with the mon­i­tor attached).

In the end, I sus­pect it’s my exter­nal mon­i­tor that’s caus­ing the heat in the machine. it’s a View­sonic that’s about 3–4 years old.

I hope this is help­ful. Enjoy the silence!