How to lower the HDD temperature

I have 4 hard disk drives that have temperatures which go beyond the recommended 50 degrees (Celsius). (I have several Samsung Spinpoint F3 which are 1Tb each and they do have good temps, between 32 and 35 degrees. That's normal for me. But in this case, 50+ is not normal.)

I have already read the question and answer provided here, but none of the solutions helped. What tools can I use or what terminal commands should I execute to lower the temperature of these drives?

And on a similar note, if I were to use a method similar to this one, how would I know which hard drive I am reading? Where can I check to see which HDD is related to, for example, /sys/class/scsi_host/host0/link_power_management_policy ?

I have already tested powertop, hddtemp, disks and others to check and try to lower the temp with no luck.


Solution 1:

Well found a way to lower the hard drive temperature, had to stay up all night.

(Gave a +1 to Ringtail's comment ;) )

Open Dash and type disks. You will see the Disks Utility pop up. Open it.

enter image description here

Now select the Hard Drive you wish to work with and then, in the green circle above, there is a button, click on it and select Drive Settings...

enter image description here

Depending on the hard drive you will get more settings or less settings. In this case I got Standby Timeout and Automatic Acoustic Management. So I changed the Acoustic from the Default to the lowest one which is 128 (As seen in the image above).

The temperature did not change for at least 2 to 3 minutes, but then it suddenly lowered itself by 1 degree. I then waited 5 minutes, 10 minutes, and the more I waited, the lower it went. It literally went from 53 degrees to 39 degrees. That's 14 degrees lower than the one I was used to.

I then added, just for a bonus the Standby Timeout, cause I was actually not going to use the hard drive all the time, basically only about 50% of the time I was on the computer. That lowered the temperature 2 to 3 degrees more. He is an image of hddtemp:

enter image description here

So hey, did not know Disks had this feature. The curious part is this. After searching a lot for this, I came to know that many HDDs do not have Automatic Acoustic Management (AAM), mainly because of lawsuits and patents (Go figure). But one of this is the same one I have, a Seagate Barracuda which has been mentioned to not have AAM support. So I wonder how did this option help the drive if it was not supported in this case.

Another helpful hint was found in this link which also helped.

They mention there the use of powertop, terminal commands and kernel options. It covers a lot, but the ones I took and used were:

Sata Power Management

This are mentioned in relation to the /sys/class/scsi_host/host0/link_power_management_policy line I was asking about. It just so happens the host0 part depends on which Sata motherboard connection you connected the hard drive to. For laptops, most of the time is host0. In my case with 6 sata connections I get host0 through host6. should be noted that this features will work on a newer kernel (At least 2.6.x an above, but since we are all into the 3.x then it does not matter), have an Intel AHCI compatible chipset and use a SATA drive. If you meet all of this requirements then you can use the line above in the following way:

  1. First check if you are using that host at Maximum Performance:

    sudo cat /sys/class/scsi_host/host0/link_power_management_policy

  2. if it says max_performance then do the following:

    echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

    Repeat for any other HDD that has that problem (Need to double check which HDD is connected in what SATA port to know which host it is). I also do not recommend using this on an SSD because... why?.. What heat can a SSD make.. none.

This is not permanent since when you reboot you will have to do it again. You can added in some runtime file to make sure it is always activated.

Nota that adding the Standby Timeout will make your HDD take a little bit longer to mount if in standby. Also lowering the AAM a lot will lower the speed of Read/Writes by a little bit. This depends if is worth it or not. In my case it is, to lower the temperature of it.

UPDATE: After about 12 hours of testing, the HDD is normal again. In standby it stays between 33 and 35 degrees. When in use it goes to 39 degrees max. Still, it is 10 degrees less than what it had when not in used and almost 15 when it was in used. Am really happy and relief about it. Also this is without the air conditioning unit turned on. Simply on normal room temperature.

UPDATE: With air conditioning on, the HDD is finally able to get to 30 degrees. Before it simply stayed in the 50+ range. An image of how happy I am:

enter image description here

UPDATE: With exactly a month of testing I can say that the temperature has stayed under 30. Right now am in 26 degrees which is very good (50% less than the "normal" temperature it had before).

Solution 2:

maybe you can try hdparm -S180 /dev/sda - to put HDD idle (low-power) mode after 15 min idle time

Solution 3:

There are two ways to do this:

  1. Put the drive to sleep, for example, with hdparm -y
  2. Add more fans blowing cool air across the drive.