Troubleshooting Hardware Bottlenecks: "What to Upgrade First?"
Posted on October 18, 2012
Systems die. They get old, run slow, are plagued with dust-invoked disease, and are inevitably retired. It's not always necessary to retire a gaming rig, though, despite being a fun excuse to play with new components; given a strong enough core, it's often easy to troubleshoot bottlenecks and replace the limiting hardware, potentially luring out another year or two of use.
Ignoring OS bloat and software failures that amount over years, as long as interfaces remain relatively unchanged, hardware swapping is the cheapest way to extend the life of your PC. This guide will explore what should be upgraded first and how to troubleshoot PC performance, bottlenecks, gaming and professional applications, and general testing techniques.
A more systematic approach to benchmarking your PC can be found in our pro benchmarking guide.
Finding bottlenecks in PCs and gaming rigs can be boiled down into a relatively easy-to-follow process:
- Define the problem: What is your cause for concern? Frame-stuttering? Slow application/game load times? Lower than desired settings? Poor multitasking?
- Check the Specs: Look up the software's recommended requirements, games especially. Simple.
- Deduce the most likely root-cause: Logically, does this problem seem like it's related to your GPU, CPU, memory, or HDD? We have laid-out the layered interactions in a logical format (below) that should provide insight for this process.
- Collect data: Run synthetic and real-world benchmarks. Determine the frequency with which the issue occurs (all the time, occasionally, almost never, etc.).
- Evaluate your options: Would it ultimately save more money to make a single replacement, or is an entire overhaul/new build in order? Does the cost-to-lifespan seem worth it for your financial situation?
Let's explore these steps further. This guide is written with high-end users in mind, to include gamers, professional developers, enthusiasts, and hobbyists who use intense applications (video production, code, 3D work, so on). Should any of these steps intimidate or confuse you, please don't hesitate to ask in our hardware forums, where our experts will provide detailed input on these topics.
Define the Problem - Troubleshooting PC Performance
This is the easiest step in the process. The goal is simple: What is it that you're unhappy about? That's it. There might be more to it than "X application loads slowly," though, so to expedite your discovery of underlying issues, I've compiled a short list of common issues (below). It's important that you list out all of the items that you'd like to improve - no matter how small - as there's no point in dropping $250 on a new GPU, then discovering that, in fact, there were hidden issues with the CPU. Be thorough in your definition of the problem.
This will focus more heavily on high-end applications and gaming. One final note -- your mileage may vary. Different programs will behave, well, differently, so take these as guidelines and not preeminent truths.
Guidelines to Problem Definition
Issues that are commonly indicative of storage device bottlenecking:
- Poor application load times.
- Dissatisfactory read/write speeds when performing large I/O operations or rendering operations.
- Slow boot times.
- Noisy clunking/sputtering when performing I/O operations.
Issues that are commonly indicative of video processing (GPU) bottlenecking:
- Dropped frames, stuttering, texture flickering, visual artifacts in gameplay or video production pipelines.
- Lower-than-desired settings.
- Delayed input response when using professional-grade 3D manipulation applications.
- "Lag" when recording desktop applications or games.
- It's too hot! If you've followed our benchmark like a pro guide, your temp read-outs may have been unnervingly high. Longer gaming sessions can provoke catastrophic failures or thermal shutdowns, if this is the case.
- Unable to use new technology (like Dx11).
Issues that are commonly indicative of CPU bottlenecking:
- Slow encoding, transcoding, compiling, or frame rendering times.
- Poor multitasking capability.
- Noticeable slowness when calculating dynamic, real-time events, like physics events (re: games, simulation software).
- Frequently high core utilization and core temps.
- Visible input lag when under load (see also: RAM, GPU).
Issues that are commonly indicative of memory bottlenecking:
- As above, slow encoding, transcoding, compiling, or frame render times.
- Overall sluggishness of the system (see also: CPU).
- Brief freezes or "out-of-nowhere" input lag.
Again, it's a bit more complex than these items, but that will give us a solid starting point. Understanding basic computer hardware interactions will also help, but for the most part, you'll be bouncing things between the CPU, memory, and storage device (and for graphics uses, the GPU is also in the mix), so the motherboard and PSU can be mostly left to the side. Motherboard upgrades should mostly happen when new (required-by-you) interfaces or technology (USB3.0, IRST, SSD Caching) become available. PSU upgrades are best reserved for when the efficiency curve is breached on your PSU, as discussed in our Power Supply Specs Dictionary.
You'll find direct upgrade advice in component-specific sections below, after we go through the logical deduction phase.
Logically Deduce the Root Cause (A Crash Course in Hardware-Software Interactions)
In order to properly identify the root cause of dissatisfaction in a system, a top-level, simplistic understanding of hardware-software interactions is required. This section will give an overview of how common software archetypes (video editing, gaming and simulation, art and modeling) utilize hardware in different ways, hopefully helping pinpoint the bottlenecks in the chain.
First, a public service announcement: Mechanical hard drives severely limit read-write transactions when compared against now-affordable SSDs, like the HyperX we reviewed, Corsair's FORCE series, or Intel's excellent solid-state devices. A reliable mid-range SSD will, on average, easily write in excess of 10x faster than a stable (non-bursted) "standard" HDD (7200RPM, 16-32MB cache, SATA II/III) write can. We explored these numbers in our "do I need an SSD for gaming?" article, which mentioned that our tests found HDDs averaging 40MB/s - 60MB/s, depending on specs, as they are limited to the speed at which the header and platters can interact. SSDs, on the other hand, use electrons, NAND gates, and flash processing units (controllers) to read and write data significantly faster; it's not uncommon to see a consumer-grade SSD perform I/O operations in the range of 500MB/s, for instance.
What's the point of this PSA? Well, it's likely that you'll be upgrading to an SSD if you don't already have one, considering storage devices are undeniably the slowest component in the chain.
Down to business. First, a top-level understanding of chipset architecture is always beneficial, though not 100% necessary. To facilitate this, we've included a block diagram of Intel's popular Z77 chipset (above) and a flowchart of interactions (below); what you're looking at is a break-down of bridges, interfaces, and their communication lanes (buses) with regard to the Z77 chipset. The important bit here is to learn about how these components communicate, which will consequently inform your analysis of bottlenecked pipelines.
For instance, the CPU and high-speed memory communicate directly, constantly swapping, caching, and fetching data that user actions have demanded. You'll see that the CPU also connects to the PCH equivalent (what used to be the north bridge and south bridge) through DMI lanes, where it can send requests to be handled and dispatched; once the requests reach the PCH, they are shipped off to the appropriate devices. Let's follow that logic in a flow chart:
Each additional bus the data has to travel through is added time. How much added time? Well, for the most part, fractions of fractions of seconds. Really small. Infinitesimal. The only exception is magnetic storage devices, which have milliseconds-long seek times due to mechanical components. Those milliseconds are an eternity in computer hardware interactions (CPU: "Why are you taking me all day, hard drive?"), and even with as fast as SSDs are, they're still many-fold slower than the other devices in the system.
This is the exact reason Linus Torvalds recently referred to HDDs as "Satan."
HDDs aren't necessarily the root of all evil, though, so to clear that up: That's not it at all. They're the root of slow software interactions, but not necessarily the root of all bottlenecking. GPU performance will define graphics computations, RAM and the CPU will impact just about everything, especially computation- and buffer-heavy actions.
What about video production and professional application usage?
In general, video production pipelines will operate in a fairly universal manner: Encoding a video requires massive amounts of CPU power, and as most rendering utilities (like Adobe Media Encoder) will utilize all the CPU that you give to it, that means a stronger CPU will almost always directly benefit encoding. This is one of the few places where more cores, threads, and GHz will have a noticeable impact (unlike gaming, where 2-4 physical cores will do just fine). Next, it also requires banks upon banks of memory -- if you've noticed your RAM and CPU utilization spike to near-max when rendering, it's because the RAM is acting as a sort-of buffer for the impending write operations, which the storage device is likely struggling to keep up with. Having a reasonable supply of RAM (YMMV), for this reason, will also be beneficial, but SSD caching can also help to expedite the encoding process.
With regard to GPU upgrade requirements...
It's too complex to get into GPU specs here (we've done that before, though), but there are a lot of factors that could play into dissatisfaction with digital visuals. Access to new features that require hardware compatibility -- like DirectX 11, for example -- will hinge upon the GPU installed, as will 3D capabilities and advanced shading or complex real-time technologies.
If this type of information interests you, our "how to read a CPU die" article contains similarly-intriguing direction.
General Hardware Performance Troubleshooting Techniques
With some of this basic knowledge, it's time to poke around for the issues. Before throwing new components at the problem, try some of these troubleshooting steps:
- Swap-out suspected problem-causers with higher-end options (perhaps loaned by friends).
- If you're faced with multitasking or overall speed issues and suspect the CPU, try overclocking it (within reason), then benchmark your performance against the stock version. Is there a noticeable improvement? Your theory might be on the money.
- Make use of MSI Afterburner's logging functionality to chart your GPU's performance, and after reading our overclocking primer, see if increased clocks help.
- Run CoreTemp and use CPU-Z to monitor temperatures and CPU performance. This is important to ensure you're not overstressing the components when testing.
- Experiencing gaming issues? To deduce whether it is the CPU or GPU, run games that place heavier emphasis on one component or the other. Civilization V and Shogun 2 are examples of games that will heavily strain the CPU, where games like Metro 2033 will beat up the GPU.
Think through your problem. Given the information we've provided you in the previous sections, try to think about what would be related to or causing the issue that you're unhappy with. Is it slow file I/O? Slow graphics computing? Flickering visuals? Slow rendering? These might be indicative of storage, GPU, and CPU/RAM bottlenecks (respectively).
Evaluate Your Options: "Is an upgrade worth it, or should I build a new system?"
This is the easy part, but we will deal in non-specifics since everyone's build and budgeting options will be so widely varied.
Once the root cause is pinpointed, you've figured out what to upgrade first. The question, though, is whether it's worth it (in your situation) to upgrade that component or not. Here's how you can work through those two options:
- Are you missing out on any modern featuresets that would imminently and directly impact your performance? SSD caching and PCI-e 3.0 are examples of newer technologies and interfaces that were not available until recently.
- Are you fairly happy with your system as it stands? Would you rather avoid re-configuring your software?
- Are multiple components at fault, or is it a simple upgrade?
- If you were to go through with the upgrade, would you be able to adapt that component (e.g.: A new GPU) to your next build, thus reducing cost of the next system?
Hopefully this helps. It'll all come down to money at the end of the day, but post comments and questions below or in our hardware forums -- we'll help you out on these topics.
-Steve "Lelldorianx" Burke.