Revision: 9-09-08
Introduction
About a month ago (April 07), I decided I would use Motherboard Monitor's logging feature to help me find trends in how effective my system's air cooling is. Air cooling can be affected by many factors, some of which we have no control over. But despite its susceptibility to these factors, air cooling is still the most popular way to keep your delicate hardware from incinerating itself as it's cheaper, simpler, and safer than any other solution.
When I began this experiment, I had hypothesized that I would be able to match up changes in outside temperature with those of my system temperatures. But I also wanted to see to what extent outside temperature influenced system temperature. I lack any direct air conditioning in my computer room because I'm frankly a warm-natured person; I think 80°F (27°C) is the most comfortable temperature. But because of this, none of the system temperatures will drop below 80°F and my system will have a lowered tolerance for heat.
But outside temperature alone does not affect system temperatures. I also wanted to see what other factors there were and to what extent their effect was. As I analyze the data below, I will point out as many of these as I can. Hopefully, with this data, I can make some meaningful findings that may change how we regard air cooling.
Setup
This is an overview of the various hardware and software components I used for this column. It is basically a snapshot of my current system specs with an accompanying image showing airflow and sensor locations.
Procedure
I've been using Motherboard Monitor for the life of my system to keep an eye on its health, but I've found its Achilles' heel is the inability to graph trends in temperatures (and thus use it to find problems). However it does have some powerful logging options. I figured I could set up MBM to add to a High/Low log every hour with a maximum of 1000 entries (as high as it allows), which would allow me to log for 41.6 day (1000/24) periods.
Unfortunately, none of the log format options are very friendly for my favorite spreadsheet program, Excel. HTML and XML are too heavily formatted to import; even the plaintext format has too much formatting to easily get it into Excel. In fact, a comma-separated values plaintext file had too much formatting as well, but was at least something I could work with. I made a simple, dirty program in Java to parse the entries into rows and the sensors into columns and output the data into a true CSV format file, something Excel can open naturally. You can download the program here, if desired.
It only took a few fixes here and there in Excel to get the data into correct type formatting, and then I was able to start building some charts--my final purpose. I ended up with about 662 entries (27.5 days worth), which proved to be about as much as I could clearly display at my screen resolution. I used pretty much every temperature sensor that my computer is equipped with in the graph: the CPU core, the CPU socket (area below the CPU), the motherboard (a thermistor in the general region of the nForce south-bridge chipset), and two Western Digital hard drives. For one chart, I also included temperatures from the video card sensor, which I added to the repertoire halfway through courtesy of ATITool. Additionally, I thought CPU Usage was important to know, so it is added as well but on a separate scale obviously.
Fortunately, our house is a veritable weather station in itself, so I have easy access to temperature data. I used a program called WeatherLink to graph the outside and inside temperatures for the last month.
Analysis
Now for the fun part: looking at the graphs and making inferences. I found it most helpful to look at the average system temperatures first to get a rough idea.
You may already have noticed something about this graph: the sudden spikes, especially with the CPU usage. These occur as a result of system restarts; thus MBM restarts, resetting the averages for all sensors. The problem with this graph is that the averages are taken over the entire period since the last restart, thus making it less responsive as time goes on. Let's see if a graph of the current readings can tell us better how changes occurred.
This graph is even more interesting than the last. For one, you can tell when I way playing games by where the GPU and CPU temperatures rise with the CPU usage. Also, the sensors seem to react in sync for most of the graph, except for some funny business around May 3rd and 13th, which we will examine later. However, this graph also has a problem: there's too much noise. What we really need is a moving average of these current temperatures, which can hopefully calm the lines down some.
This is more like it. The 10 hour moving average smooths out the readings so that we see more precise changes. One of those changes occurs later in the day on May 12, when I had been experiencing unavoidable system locks due to increased outdoor temperature. When trying to play a mere Rise of Nations, my CPU got up to a surprisingly hot 141°F (60.5°C). That's when I broke down and went about cleaning the inside of the case. Mainly, I wanted to get the CPU temperature under control, so I removed the fan from my Heatsink/Fan combo (HSF) and went about cleaning all the many nooks in heatsink. My heatsink collects clumps of dust around the central open copper core area, in the corners where the mounting apparatus connects to the heatsink, and in the gaps on two sides of the core. The numerous fins also hold the dust in place quite well, unfortunately. I imagine most CPU HSFs are also susceptible to dust collection, though not necessarily as much as mine is.
I also cleaned off the dust filter tray that is built into my case, just as a "while I'm at it" thing. After the system warmed back up, it was quite obvious that the CPU temperature had been brought down from an average of 120°F to 100°F, and the ambient system temperature (motherboard sensor) came down from 95°F to 80°F. It was quite a remarkable drop and the system was now perfectly stable.
One other aspect of this graph that you may notice is the lack of change in the socket sensor temperature compared to some of the other sensors. The best answer I've come up with to explain this is that the location of the sensor, the void beneath the CPU, does not get any air flow. The air gets warmed up by the CPU but then stays stagnant, only dissipating through the motherboard itself. Thus, it is not so much airflow that affects the socket temperature but the ambient temperature of the room. As we will be able to see in the next graph, the socket sensor indeed responded more to a change in outside temperature than to my aforementioned cleaning efforts.
This is a graph of the data I obtained from our rooftop weather equipment. It shows outdoor and indoor temperatures as well as highs and lows; however the indoor temperatures were taken from an air conditioned room. The room where I keep my computer is typically up to 5°F warmer.
There are a few changes in outdoor/indoor temperature which we can compare to the system temperatures; one in particular occurs on May 3rd. It is a rapid enough drop of 35°F (from an almost 90°F high to a 55°F high) that the system's temperatures came down on average 10°F; even the stubborn socket sensor cooled off. Other changes in outdoor temperature cause system temperature changes of comparable magnitude.
- April 19-26: gradually increasing outdoor temperatures cause gradual increases in system temperatures
- May 2: was trying to get into Stalker, resulting in several system lockups due to the unstable game engine
- May 3: rapid outdoor temperature drop of 35°F causes 5-10°F drop in system temperatures
- May 8-11: was camping; only CPU usage came from eMule
- May 12: cleaned intake fan filter and CPU HSF, causing ~20°F drop in CPU temperature and ~15°F drop in ambient system temperature
Conclusions
I learned a few things from this project: the importance of cleaning out one's PC, how to visualize the effects of airflow, and the nature of the affects of outside temperatures.
The ambient case temperature should be within 5°F of the ambient room temperature (at idle). If it isn't, then you need to clean out your intake filters, remove dust bunnies, arrange cables better, etc. Even if your motherboard, CPU, video card, and hard drives aren't equipped with temperature sensors, you can still tell if you have bad airflow by feeling the exhaust air (general exhaust, not PSU). It should be only slightly warmer than room temperature.
Cleaning the CPU cooling apparatus is crucial maintenance. As we've seen, a HSF clogged with dust in brutally ineffective, allowing the CPU to heat up into the dangerous 140°F+ (60°C+) zone. If you have the means to monitor its temperature accurately, figure out an idle temperature that indicates a cleaning is needed. The gradual dust buildup and resultant gradual temperature increases may go unnoticed until the system starts to fail, making troubleshooting a hassle.
From what I've seen here, outside temperatures' effect on systems is only an issue when there is inadequate conditioning of the air--an obvious conclusion. When necessary or convenient, locate your PC in a place where there is good airflow and/or cooling; make sure the computer can be as comfortable as you are. Even with proper air conditioning, outside temperatures will cause some harmless fluctuations on system temperatures.
Other Thoughts
In the future, I may investigate fan speed affects on system temperatures. With my variable speed controller, I can dial in a few different configurations. However, what I've seen so far is that RPMs and CFMs don't really matter that much to keeping the ambient temperatures equalized.
The Excel spreadsheet I used for this column is available for download here for your further scrutinization, complete with the 662 MBM sensor readings.