Thursday, November 25, 2021

Why is my hard drive making noises?

Now that I've built my computer to the specifications outlined in my previous article, I am ready to write a series of articles reflecting on the experience. Spoiler: This was the most frustrating build of my life. These articles will outline specific hardware problems and their solutions (if any).

This first article will discuss issues with hard drives. My next article will review the Fractal case I used. I might also prepare some benchmark figures. 

The problem

At one time, hard drives were large clanky things. Then they became more efficient and significantly quieter. Now, to my surprise, they appear to be noisy and annoying once again. 

Despite the gains made by solid state drives (SSD), the most affordable solution for mass storage remains a good old hard drive. My system uses a mix of both, to optimise cost and performance. 

The motherboard has two M.2 SSD drives installed. The first is 2 TB storage as a boot partition, hosting the operating system and all applications. A second is a 1 TB Samsung 980 Pro for maximum speed, reserved as a video cache and render location.

Media, documents, and project work are stored on two hard drives. I purchased a Seagate BarraCuda 10 TB to supplement a Western Digital 6 TB drive I already owned. The issue I have is with the Seagate drive. It's noisy and seemingly never stops performing disk seeks... even when the computer is doing absolutely nothing. 

Defrag those drives

Over time, hard drive file structures become fragmented, different portions of files become scattered in noncontiguous regions of the physical platters. This chaos slows file retrieval and other operations. The solution is to defragment the drive. Since I began with newly-formatted naked drives, I didn't necessarily think that this would be a problem. Fragmentation generally occurs over time, after many disk operations.

But I had already copied several terabytes of data from my previous computer. It turns out that this was enough to seriously fragment the drives. So I went into the defrag tool to optimise them. 

You do this by tapping the Windows key and typing "optimise". Clicking on the resulting application runs the "Defragment and Optimise Tool", seen above. (You can click on all screenshots to get a larger version.) Select each drive in turn and click Analyse. If it turns out you need to improve performance, click Optimise. Then go do something else, because this process can take a long time. 

(To be clear, you don't actually defrag an SSD; this operation only applies to a hard drive. But this tool takes care of applying the correct type of optimisation to the correct type of storage drive, so you can't make a mistake.)

Turn off automatic defragging

The reason that Windows doesn't present the above tool front and centre is that it will instead defragment on a regular basis, in increments. The result is that your drive might start crunching file parts at random times. I suppose it's "convenient", but it's the worst sort of annoyance to someone who prefers to control their tools (and not vice versa). What if I was recording a voice-over and the hard drive suddenly started clanking away? Not good. 

But we can turn off this automated function, in the same way as all other background services. 

Tap the Windows key and type "services". Clicking on the result opens the application seen above. Highlight "Optimize Drives", right-click, then choose "Properties" from the context menu. 

From the "Startup type" drop box, choose "Disabled", so this service won't be launched when you start Windows. Then click "Stop" to terminate the current instance. 

We have now taken control from Windows, but with this comes a certain responsibility. We now need to remember to occasionally defrag the drives. I plan on doing this as part of my regular backup sessions. 

Power options

Next, we can save power by spinning down disks when we don't need them. Tap that Windows key, click the Settings icon (the gear) and choose "System". Then click on "Power & sleep" in the left column. This shows you the current plan settings, but we are not where we want to be yet. Click the link for "Additional power settings" on the right-hand side of the window.

You will be gifted with the dialogue shown above. You can set up multiple power plans for different scenarios. For each plan, you can choose when the display will turn off and when the computer will sleep. 

But you will need to click "Change advanced power settings" to control your drives. I don't think this option should be hidden away, but there you go. 

Finally we are at the dialogue above. I changed the hard drive setting to one minute because I am not using a hard drive for common tasks (operating system functions and applications), only for data storage. Once working files are loaded into memory (and I have a lot of RAM... 64 GB) the drive won't need to do anything. 

This gives me a quieter computer that also consumes less energy. When I save a file I might need to wait two seconds for the drive to spin up; that's ok by me. This is obviously not an ideal situation: I would prefer allowing the disk to stay active. But it is an essential step because of the power management limitations that I will cover in the next section. 

By the way, one Microsoft minute doesn't seem to mean one real world minute, but rather "a few minutes".  In fact, sometimes it takes ten minutes or more for the drive to sleep, even with no disk activity. Go figure!

OK, now we have a drive that will go to sleep when it isn't needed. And which will not wake up to perform random defrags. Funny thing is, when the drive is spun up, it will still make an erratic clicking noise for no reason. What the heck is going on?

Aside to Microsoft: Please take a few minutes to redesign these labyrinthine power settings into one friendly tool. It's 2021 and we are still faced with interfaces that force us to click six times to complete a simple task. That's simply not good enough. 

The APM headache

It turns out that these Seagate drives have a "feature" named Advanced Power Management (APM) that causes the drive head to spin every few seconds, resulting in a recurring clicking noise. Why does it do this? How can this possibly save power? I honestly don't know.

The behaviour appears to be a combination of the drive's firmware and features built into Windows itself. So, in theory at least, we should be able to change this outcome using settings in one (or both) of those places.

To diagnose this problem, I grabbed the free utility CrystalDiskInfo. Running this reveals every technical specifications of your hard drive, including whether it's healthy or not.

This programme told me that all my drives were "Good". Well, that's super fantastic.

After investigation, I noticed that in the "Function" menu under "Advanced features" there's an item called "AAM/APM Control." Looks promising!

But unfortunately every option is greyed out... the entire panel. Nothing to see here!

At this point I turned to the Seagate website. Actually, I had already downloaded their SeaTools, but these did nothing for me. This time I located SeaChest, a series of command-line programs designed for only the most technical user. OK, fine. (Whoever named this toolkit deserves an award, but that's the only prize I am handing out today.)

Reading the voluminous documentation revealed that the program that controls APM is named "SeaChest_PowerControl". Yes! I am getting excited! We are only moments away from solving the problem. 

The first thing to do is to display all drives and their handles using the command "SeaChest_PowerControl -s". The results are as follows:

A handle is a designation in the form PD0, PD1, etc. So now we know how to interrogate a specific drive. 

I try the command "SeaChest_PowerControl -d PD0 --showAPMLevel". The result? "Showing APM Level is not supported on this device."

So I try "SeaChest_PowerControl -d PD0 --disableAPM" which gives me "Disabling APM Level is not supported on this device."

Finally, I try "SeaChest_PowerControl -d PD0 --setAPMLevel 1" and receive the standard salutation "Setting APM Level is not supported on this device."

Great. Even the low-level tech tools can't help me. 


Searching for APM issues will reveal a number of forum threads, YouTube video, and articles going back some years. There many suggested solutions include making registry changes, using other disk utilities, booting into completely different environments to hack your drive, even writing your own C code

None of these methods work for the newer drives, because they have locked in the APM features. This is the key problem. Seagate, stop selling drives with key features disabled!

I am dumbfounded that reviewers completely ignore this problem. As a result, most consumers, like me, will only find out about noisy drives once they are installed and running in their computer. it could be that many people don't find it annoying to hear a small chirp every few seconds. Perhaps this is covered up by other sounds in the environment. But for any of us working in audio, it will be difficult to ignore. 

Even if I don't have a perfect solution, I trust that this article goes some way towards highlighting the issue. 

Thanks to Robbie Corrigan for useful comments.


No comments:

Post a Comment