Your graphics card sits at 55% usage while your CPU pegs at 100%, and the frame counter in the corner of your screen refuses to climb no matter what you change in the game’s video menu. That is a bottleneck, and as of September 2026 it is one of the most common support questions in PC building communities now that Nvidia’s RTX 5090 and AMD’s RX 9070 XT have pushed raw GPU horsepower well ahead of what a lot of older CPUs can feed them. This tutorial walks through a full diagnostic and fix process: how to measure the bottleneck, tell whether it is the CPU or the GPU dragging you down, and apply the specific settings, driver, and tuning changes that close the gap. Expect to spend about 45 minutes the first time through.
Don't miss new tech stories on Google
Add Tech Insider once in the Google app and our stories appear in your news suggestions.
What a CPU-GPU Bottleneck Actually Means for Your FPS
A bottleneck happens when one component in your gaming PC cannot keep up with another, so the faster part sits idle waiting for data. In practice this almost always shows up as a CPU that cannot prepare frames fast enough for a GPU that is ready and waiting, or a GPU that is maxed out rendering while the CPU has headroom to spare. Search interest in this exact problem is substantial: keyword research shows “bottleneck calculator” pulling roughly 27,100 monthly US searches and “pc bottleneck calculator” adding another 3,600, both with low competition, which tells you a lot of PC owners are staring at disappointing frame rates and trying to figure out why.
The RTX 5090 makes this problem more visible than previous generations did. Nvidia’s flagship Blackwell card has enough raw throughput that even a strong six-core or eight-core CPU from two or three years ago can become the limiting factor at 1080p and 1440p, where the GPU simply is not working hard enough to be the constraint. AMD’s Ryzen 9 9950X3D, the CPU most often paired with high-end RTX 50-series and RX 9070 XT builds in 2026 build guides, exists largely to solve this exact pairing problem with its large 3D V-Cache pool, and Intel is chasing the same gap from the laptop side: in January 2026 Intel said its new Panther Lake chips deliver over 50% higher multithreaded performance than Lunar Lake at equal power, according to Tom’s Hardware, which matters directly for thin gaming laptops struggling to keep a mobile GPU fed. If you are running an older Ryzen 5000-series or a mid-range Intel 12th or 13th-generation chip next to a new flagship GPU, a bottleneck is not a maybe, it is close to a certainty in CPU-heavy titles.
Not every uneven usage reading is a problem worth fixing. Menus, loading screens, and CPU-light scenes will always show a GPU sitting well under 100%, and that is normal, not a bottleneck. What you are hunting for is a sustained pattern during actual gameplay where one component tops out while the other has 15% or more headroom left, and your frame rate stays flat even when you lower the settings that should be taxing the maxed-out part. That distinction is the difference between a genuine fix-it project and chasing a number that was never actually broken.
The problem is not limited to desktop towers, either. Handheld gaming PCs and thin gaming laptops running RDNA4-based integrated graphics can hit the same wall in reverse: a capable APU paired with a power-limited, thermally throttled mobile CPU package, where the constraint is not raw core count but the sustained wattage the chassis allows the CPU to draw before the fan curve and skin-temperature limits kick in. That mobile landscape keeps shifting underneath this problem: CRN reported in January 2026 that Intel’s Panther Lake platform had already launched across more than 200 PC designs, so a growing share of the thin laptops and handhelds you are troubleshooting alongside RDNA4-based machines are now built on Panther Lake silicon rather than an AMD APU. The diagnostic steps below apply the same way on a handheld as they do on a full tower, though the fixes in Steps 9 and 10 lean more on power-limit and undervolt adjustments than on traditional overclocking headroom, since mobile silicon is usually already running close to its efficiency ceiling out of the box.
Prerequisites: Software Versions, Hardware, and Time Needed
You do not need to buy anything to complete this tutorial, but you do need a specific software stack installed and a clear 45 minutes without other GPU-heavy background tasks running (cloud sync, game downloads, or a second monitor playing video will all skew your readings). Here is what to have ready before Step 1.
- Windows 11 (23H2 or newer build) — the Task Manager GPU column and modern power plans referenced in this guide depend on a current build.
- MSI Afterburner 4.6.6 Final or newer, bundled with RivaTuner Statistics Server (RTSS) 7.3.7 — used for the on-screen usage overlay and, later, for the optional overclock/undervolt step. Download it from Guru3D’s official mirror if MSI’s own CDN is slow.
- HWiNFO64 (latest version) — for sensor logging, available through CPUID’s software suite if you prefer HWMonitor as an alternative.
- The current GPU driver for your card: the latest Game Ready or Studio driver from the Nvidia GeForce site, or the newest Adrenalin package from AMD’s software page.
- A benchmark you can repeat consistently: either a built-in in-game benchmark mode, or a synthetic tool like 3DMark Time Spy or Steel Nomad.
- Fifteen minutes of uninterrupted play time in the actual game where you noticed the problem, since synthetic benchmarks alone will not always reproduce a CPU-side bottleneck that only shows up in a crowded multiplayer lobby or a physics-heavy scene.
If you are still on last-generation hardware, this process works identically on an RTX 4000-series or RX 7000-series card, and on Ryzen 7000/9000 or Intel Core 13th/14th-gen CPUs — the tools and thresholds do not change generation to generation, only the specific clock and power numbers you will see on screen. This Windows-centric workflow does not extend to Apple Silicon, though: the M5 Max’s unified-memory design, which Apple shipped in March 2026 with up to an 18-core CPU paired with a 40-core GPU and which Apple’s own MacBook Pro testing used with 128GB of unified memory, sidesteps the discrete CPU-feeding-GPU problem entirely, so none of the usage-percentage math in this guide applies there.
Step 1: Record a Clean Performance Baseline
Before changing anything, you need a number to compare against later. Close every background application except your benchmark or game, disable overlays you are not actively using (Discord, Steam, GeForce Experience/Nvidia app overlays all cost a small amount of frame time), and run your chosen benchmark three times back to back. Record the average FPS, the 1% low, and the total run time for each pass. Throwing away the first run is common practice since Windows and the driver are still warming up caches, so treat runs two and three as your real baseline.
Write these numbers down somewhere you will not lose them — a text file on the desktop is enough. You are going to repeat this exact test at the very end of the tutorial, and without a documented “before” number you have no way to confirm whether any of the changes in Steps 5 through 11 actually helped or just felt like they helped.
# PowerShell: log a quick 60-second CPU/GPU utilization baseline to CSV
Get-Counter -Counter "\Processor(_Total)\% Processor Time","\GPU Engine(*)\Utilization Percentage" -SampleInterval 2 -MaxSamples 30 |
ForEach-Object {
$_.CounterSamples | Select-Object Path, CookedValue
} | Export-Csv -Path "$env:USERPROFILE\Desktop\baseline-log.csv" -NoTypeInformation
Run that snippet in an elevated PowerShell window while your benchmark plays in the background, then open baseline-log.csv afterward to see raw utilization samples over the full minute rather than relying on your eyes tracking a moving Task Manager graph.
Step 2: Build a Real-Time Monitoring Overlay
Numbers logged after the fact are useful, but you also want to watch usage live while you play, because bottlenecks often appear only in specific moments — a busy town hub in an MMO, a 100-player drop in a battle royale, a cutscene-heavy story sequence. Open MSI Afterburner, click the gear icon for settings, and switch to the Monitoring tab. Enable on-screen display for: GPU usage, GPU clock, GPU temperature, CPU usage (total and per-core if your panel supports it), CPU temperature, frame time, and framerate. Save the profile and confirm the overlay appears in-game with RTSS running in the system tray.
; RTSS on-screen display group example (Afterburner > Settings > Monitoring)
; Enable each line below by checking "Show in On-Screen Display" per sensor
GPU usage = ON
GPU clock = ON
GPU temperature = ON
CPU usage = ON
CPU clock = ON
Framerate = ON
Frametime = ON
If you have an Nvidia card, the Nvidia app’s built-in performance overlay covers similar ground and can run alongside Afterburner without conflict, though most enthusiasts still default to Afterburner and RTSS because the layout is more configurable and the tool has tracked new GPU generations, including Blackwell and RDNA4, since its 4.6.6 stable release.
Step 3: Run the Bottleneck Percentage Calculation
With the overlay running, play for five to ten minutes in the scenario where you noticed poor performance, and note the highest sustained usage percentage for both CPU and GPU (ignore brief one or two second spikes; you want the number that holds steady for at least several seconds). Then apply a simple formula that most bottleneck calculators use under the hood:
Bottleneck % = (Higher usage − Lower usage) ÷ Higher usage × 100
So if your GPU sits at 99% and your CPU sits at 68%, the math is (99 − 68) ÷ 99 × 100, which comes out to roughly 31%, meaning your CPU is bottlenecking the GPU by about that margin. As a rule of thumb followed across most PC building guides: under 10% is considered a well-balanced system and not worth chasing, 10–20% is a mild bottleneck you can usually tune away with software changes, and anything above 20% points toward either a genuine hardware mismatch or a background process quietly eating CPU cycles that you have not accounted for yet.
| Bottleneck % | Severity | Typical Cause | Recommended Action |
|---|---|---|---|
| 0–10% | Balanced | Normal engine variance, scene complexity | No action needed |
| 10–20% | Mild | Driver overhead, suboptimal settings, background apps | Steps 5–8 (drivers, ReBAR, settings, power plan) |
| 20–35% | Moderate | CPU generation gap, memory speed, core-parking issues | Steps 9–11 (OC/undervolt, CPU tuning, frame generation) |
| 35%+ | Severe | Genuine CPU/GPU tier mismatch | Tuning helps some; a CPU or platform upgrade is the real fix |
Step 4: Confirm Whether It’s the CPU or the GPU
The usage percentages from Step 3 already tell you which component is maxed out, but it helps to confirm the direction with a resolution test, since resolution changes affect the two components very differently. Drop your in-game resolution scale (not the settings preset, just the render resolution) by roughly 25%, keeping everything else identical, and re-run the same test scene. If your frame rate barely moves, your CPU is the limiting factor, because lowering resolution mostly reduces GPU work and does almost nothing for CPU work like AI, physics, and draw-call submission. If frame rate climbs noticeably, the GPU was your constraint and resolution-dependent settings are the lever to pull.
This single test resolves the ambiguous middle cases where usage percentages read close to each other, which happens more often than you would expect on modern multi-core CPUs where load is spread unevenly across cores and Task Manager’s aggregate CPU number can understate how pegged your busiest single thread actually is. Games are still heavily dependent on one or two “main” threads for game logic and rendering submission, so a CPU showing 55% total load can still be CPU-bottlenecked if one core is sitting at 100% while seven others idle.
Step 5: Update Every Driver in the Chain
Before tuning anything, rule out the simplest cause: stale drivers. This means three separate updates, not one. First, the GPU driver itself, downloaded directly from Nvidia or AMD rather than relying solely on Windows Update. Second, the motherboard chipset driver from AMD or Intel, which governs how efficiently the CPU talks to memory and the PCIe bus feeding the GPU. Third, if you are on a laptop or a handheld gaming PC, the OEM’s own driver package, since those often ship customized power and thermal profiles that override generic chipset settings.
Reviewers covering both Blackwell and RDNA4 launch windows have repeatedly noted that early driver builds for a new GPU generation show higher instability and, in some cases, measurably worse CPU-side overhead than the driver revisions that follow a few months later. If you built your RTX 5090 or RX 9070 XT system near launch and have not updated the driver since, that alone can account for a chunk of an apparent bottleneck, because inefficient driver-side CPU overhead shows up in your usage readings exactly like a genuine hardware bottleneck would.
Use Display Driver Uninstaller in safe mode before installing a new GPU driver if you are jumping between Nvidia and AMD hardware or coming off a driver that has been giving you TDR crashes — a clean install avoids leftover configuration conflicts far more reliably than installing over the top of an old driver.
Step 6: Enable Resizable BAR and Smart Access Memory
Resizable BAR (branded Smart Access Memory on AMD platforms) lets the CPU address the GPU’s full memory pool at once instead of in small windowed chunks, which reduces CPU-side overhead when feeding data to the GPU and can measurably shrink a CPU bottleneck in supported titles. It requires support from your motherboard BIOS, your CPU generation, and your GPU, and on many boards it ships disabled by default even when every piece of hardware supports it. Check Task Manager’s Performance tab under your GPU to see whether it already reads “Enabled,” and if not, head into your BIOS to turn it on alongside Above 4G Decoding, which ReBAR depends on.
Because the exact BIOS menu names and toggle order vary by motherboard vendor, and because this is a deep enough topic on its own, we cover the full walkthrough — including per-vendor BIOS screenshots and troubleshooting for boards where the option is missing — in our dedicated Resizable BAR setup guide. Come back here once it shows Enabled in Task Manager.
Step 7: Rebalance the Load With In-Game Settings
Once you know which component is maxed out, in-game settings become a scalpel rather than a guess. If Step 4 pointed at the GPU, lower resolution-dependent settings first: render resolution scale, shadow quality, ambient occlusion, ray tracing effects, and anti-aliasing method all scale primarily with GPU load and barely touch the CPU. If Step 4 pointed at the CPU, the opposite settings matter: draw distance, crowd/NPC density, simulation distance, physics quality, and view distance sliders all push more work onto the CPU regardless of resolution, so those are the ones to pull back first.
A mistake we see constantly in PC forums is someone with a confirmed CPU bottleneck lowering their resolution from 1440p to 1080p and being confused when frame rate barely improves — that is expected, not broken, because resolution is a GPU-side lever and does almost nothing to relieve CPU load. Match the lever to the bottleneck you actually measured in Step 3, not the lever that feels intuitive.
Step 8: Clean Up Windows Power Plans and Background Load
Windows’ default Balanced power plan actively throttles CPU clock speed to save power, and on a desktop gaming PC that is rarely what you want. Switch to the built-in High Performance plan, or better, enable the hidden Ultimate Performance plan, which removes several background power-saving micro-throttles that Balanced applies to CPU parking and clock ramp-up speed.
REM Show all available power plans
powercfg /list
REM Switch to the built-in High Performance plan
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
REM Unlock and switch to Ultimate Performance (hidden by default on most builds)
powercfg /duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61
Next, open Task Manager’s Details tab, sort by CPU, and look for anything you did not intentionally launch consuming more than 2-3% sustained: browser tabs running background scripts, cloud backup clients mid-sync, RGB control software polling frequently, or a second monitor’s video decode. None of these individually looks dramatic, but stacked together they can eat 10-15% of a CPU’s headroom exactly during the moments you are trying to measure, which will make an otherwise mild bottleneck look artificially severe.
Step 9: Overclock or Undervolt the GPU Safely
If Step 4 confirmed a GPU-side bottleneck rather than a CPU one, a modest, well-tested overclock can close part of the gap. Current guidance for 2026 flagship cards suggests conservative starting points rather than pushing straight to the limit of your silicon.
| GPU | TDP | Safe Core Offset | Safe Memory Offset | Typical FPS Gain |
|---|---|---|---|---|
| RTX 5090 | 575W (transients to ~700W) | +100 to +200 MHz | +500 to +1,500 MHz | 3–7% |
| RTX 5080 | ~360W | +75 to +175 MHz | +400 to +1,200 MHz | 2–6% |
| RTX 5070 | ~250W | +50 to +150 MHz | +300 to +1,000 MHz | 2–5% |
| RX 9070 XT | ~250–304W (varies by AIB/region) | +50 to +150 MHz | +250 to +750 MHz | 2–5% |
Raise offsets in small increments — 10-15 MHz on core, 25-50 MHz on memory — validating stability after each step with a stress tool such as 3DMark Time Spy, OCCT, FurMark, or Unigine Superposition. Keep core temperature under roughly 85°C and hotspot/VRAM temperature under roughly 95°C; back off immediately if either climbs past those marks. If you would rather trade a small amount of peak performance for lower heat and noise, undervolting via Afterburner’s curve editor is often the better move for a bottleneck that is really about thermal throttling rather than raw clock speed: dropping core voltage by 50-100 mV at your target boost clock typically cuts temperatures 5-10°C and power draw 5-15% with minimal FPS impact. We cover the full step-by-step curve editor walkthrough, including where to click and how to read the voltage/frequency graph, in our GPU overclocking guide.
If you push too far and see screen artifacts (sparkles, flickering textures, corrupted geometry), that is almost always a memory offset set too high — back it off in 25 MHz steps. Driver crashes or TDR resets point to an unstable core clock rather than memory; reduce the core offset by 15-30 MHz or add 10-20 mV back into the voltage curve. If you get an outright black screen or hard reboot, especially on a 575W card like the RTX 5090, check your power limit slider (it should not need to exceed roughly 110-120%) and confirm your PSU has enough headroom — 1,000W or more for a single RTX 5090, 750W for an RX 9070 XT.
Step 10: Tune the CPU Side (PBO, EXPO/XMP, Core Parking)
If your bottleneck reads CPU-heavy, three settings do more for real-world gaming performance than a manual core overclock, which has become less effective as a lever on modern chips with aggressive built-in boost algorithms. First, confirm your memory kit’s XMP (Intel) or EXPO (AMD) profile is actually enabled in BIOS — running at stock JEDEC speed instead of the kit’s rated speed is one of the most common, and easiest to fix, causes of an artificially inflated CPU bottleneck, since games are frequently more memory-latency-sensitive than raw CPU clock-sensitive.
Second, on AMD Ryzen chips, enable Precision Boost Overdrive (PBO) in BIOS or through Ryzen Master rather than manually setting a fixed all-core clock; PBO lets the CPU dynamically boost individual cores higher when thermal and power headroom allow, which suits the bursty, single-thread-heavy nature of most game engines better than a flat overclock does. Our CPU delidding guide is worth a look separately if PBO is pushing your chip into thermal-throttle territory and you want to chase lower temperatures directly rather than just backing off the boost settings.
Third, disable core parking for gaming sessions. Windows’ power management will “park” idle cores to save energy, and on CPUs with a mix of performance and efficiency cores (or with 3D V-Cache split across chiplets, as on the 9800X3D and 9950X3D), aggressive parking can shuffle game threads onto the wrong cores mid-session, causing stutter that reads as a bottleneck even when raw utilization numbers look fine. AMD’s chipset driver and Ryzen Master both expose a game-mode toggle that addresses this directly on X3D chips.
Step 11: Use DLSS/FSR Frame Generation to Buy Back Headroom
Frame generation technology takes a different approach from every step so far: instead of reducing the workload on the bottlenecked component, it has the GPU synthesize additional frames between the ones your CPU and GPU actually rendered, which can mask a CPU-side bottleneck effectively in single-player and less latency-sensitive titles. This is genuinely useful when Steps 5 through 10 have closed most of the gap but you are still a bit short of your target frame rate, particularly in CPU-bound scenarios like city-builders, grand strategy games, or crowded open-world hubs where the CPU workload is unavoidable.
It is worth being direct about the tradeoff: frame generation does not reduce input latency the way a genuine hardware fix does, and in fast competitive shooters the added latency from generated frames can feel worse than the lower base frame rate did, even though the on-screen counter reads higher. Reach for it in narrative and simulation-heavy games where smoothness matters more than frame-perfect input response, and skip it for anything where you are relying on split-second reactions.
Step 12: Re-Test and Confirm the Fix
Repeat the exact benchmark from Step 1 — same scene, same settings baseline before your changes, same three-run average approach — and compare directly against your original numbers. Also re-run the usage-percentage math from Step 3 to see whether your bottleneck percentage actually shrank, not just whether raw FPS went up, since a higher frame rate driven by frame generation can mask a bottleneck that is technically still there underneath it.
# Quick GPU-side confirmation via nvidia-smi (Nvidia cards only)
nvidia-smi --query-gpu=utilization.gpu,utilization.memory,temperature.gpu,power.draw,clocks.sm --format=csv -l 2
If your bottleneck percentage dropped from, say, 28% down to 12%, you have made real, measurable progress and the remaining gap is likely just the natural ceiling of your current CPU generation paired against your GPU. If it barely moved despite going through every step, that is a meaningful signal in itself: it usually means the mismatch between your CPU and GPU tier is large enough that software tuning has limited room to work, and a CPU or full platform upgrade is the more honest fix than further tweaking.
5 Pitfalls That Waste Your Diagnostic Time
- Testing in menus or loading screens. Usage readings from anywhere other than active gameplay are close to meaningless — GPU load in a menu can sit at 20% purely because there is nothing demanding to render, which looks exactly like a severe CPU bottleneck but is not one.
- Judging from a single frame-rate glance instead of a sustained reading. A one or two-second usage spike does not indicate a real bottleneck; you need several seconds of sustained high usage on one component with clear headroom on the other before drawing a conclusion.
- Changing multiple settings at once. Adjusting resolution, driver, power plan, and overclock simultaneously means you will never know which change actually helped, or worse, whether one change canceled out an improvement from another.
- Ignoring per-core load in favor of aggregate CPU usage. Total CPU usage sitting at 50% can hide a single thread pinned at 100%, since most game engines still lean heavily on one or two primary threads regardless of how many cores your CPU has.
- Assuming resolution scaling fixes every bottleneck. Lowering resolution only relieves GPU-side load; if Step 4 showed a CPU bottleneck, resolution changes will do almost nothing and the settings you actually need to touch are draw distance, simulation quality, and crowd density instead.
8 Troubleshooting Scenarios and Fixes
| Symptom | Likely Cause | Fix |
|---|---|---|
| GPU usage stuck under 90% at max settings | CPU bottleneck, or a game engine frame-rate cap | Check in-game FPS cap/V-Sync settings first, then run the Step 4 resolution test to confirm CPU vs GPU |
| Both CPU and GPU show under 80% usage, FPS still low | Storage bottleneck (texture streaming stalls) or thermal throttling on either part | Check drive read speed during gameplay and confirm neither component is throttling on temperature |
| Usage numbers fine, but frame times spike randomly | Background process interference or core parking shuffling threads | Revisit Step 8 (background load) and Step 10 (core parking) |
| Overlay shows no GPU reading at all | RTSS/Afterburner not detecting the correct GPU (common on laptops with switchable graphics) | Manually select the discrete GPU in Afterburner’s hardware detection settings |
| System crashes to desktop after enabling overclock | Core offset too aggressive for your specific silicon | Reduce core offset by 15-30 MHz and re-test with a stress tool before raising anything else |
| Screen artifacts appear only in certain games | Memory offset unstable under specific VRAM access patterns | Lower memory offset in 25 MHz steps until artifacts disappear |
| Resizable BAR shows “Disabled” even after enabling in BIOS | Above 4G Decoding not enabled, or GPU driver needs a clean reinstall | Confirm Above 4G Decoding is on, then reinstall the GPU driver with Display Driver Uninstaller in safe mode |
| Bottleneck percentage did not improve after every step | Genuine CPU/GPU tier mismatch beyond what tuning can fix | Treat the result as confirmation that a CPU or platform upgrade is the real next step, not another round of tuning |
Advanced Tips for Enthusiast Tuners
Once the basics are dialed in, a few less obvious adjustments can shave off the last few percentage points of a stubborn bottleneck. Setting your game process to “High” priority in Task Manager’s Details tab can occasionally help on systems with a lot of background services competing for scheduler time, though the effect is usually small and worth testing rather than assuming. If your motherboard supports it, disabling unused PCIe lanes or onboard controllers you are not using (extra SATA controllers, unused M.2 slots sharing lanes with your GPU slot) can free up bandwidth on boards where the primary GPU slot drops to x8 when certain other slots are populated — check your motherboard manual’s lane-sharing diagram, since this varies significantly between chipsets.
For CPU-bound strategy and simulation games specifically, look at whether the title supports multi-threaded AI/pathfinding calculation in its settings menu — several 2025-2026 releases added toggles for this that are off by default because the multi-threaded path was historically less stable, and turning it on can meaningfully reduce single-core dependency. Finally, if you are chasing the absolute last bit of headroom on an X3D-series Ryzen chip, confirm Windows is scheduling game threads onto the V-Cache-equipped chiplet rather than the higher-clocked, cache-light chiplet; AMD’s chipset driver handles this automatically on current builds, but a stale chipset driver is a common reason this scheduling silently breaks.
It is also worth building a habit of checking the Windows Event Viewer’s System log after any session where you suspected a bottleneck but the usage numbers looked ambiguous. Whea-Logger warnings, unexpected kernel-power events, or repeated display driver timeout entries all point toward a stability issue masquerading as a performance problem, and no amount of settings tuning will fix a bottleneck that is actually a hardware fault or a marginal overclock left over from a previous tuning session. Clearing out old, forgotten Afterburner or Ryzen Master profiles before starting a fresh diagnostic pass avoids this exact trap, since a stale +200 MHz core offset from six months ago can silently sit active in the background and skew every result you collect today.
Complete Project: The Bottleneck Audit Checklist
Bringing every step together into one repeatable script makes future audits — after a driver update, a new game release, or a hardware swap — much faster than starting from scratch. Save the following as a simple batch file you can run before and after any change.
@echo off
REM bottleneck-audit.bat — run this before AND after any tuning change
echo Starting bottleneck audit...
echo Setting High Performance power plan...
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
echo Logging GPU stats for 60 seconds (Nvidia only)...
nvidia-smi --query-gpu=utilization.gpu,utilization.memory,temperature.gpu,power.draw,clocks.sm --format=csv -l 2 > gpu-log-%DATE:~-4%%DATE:~4,2%%DATE:~7,2%.csv
echo.
echo Now launch your benchmark or test scene for 5-10 minutes.
echo When finished, press Ctrl+C to stop logging, then review the CSV.
pause
The complete working project for this tutorial is the pairing of that script with your saved Afterburner OSD profile (Step 2), your documented baseline numbers (Step 1), and the bottleneck-percentage formula from Step 3. Together they form a five-minute repeatable audit you can run any time your frame rate feels off, rather than re-deriving the whole diagnostic process from memory every time.
Frequently Asked Questions
What counts as a “normal” amount of bottleneck on a gaming PC?
Most PC builders consider anything under 10% difference between CPU and GPU usage to be balanced and not worth chasing. Every system has some imbalance depending on the game and scene; the goal is minimizing it in the titles and moments you actually care about, not hitting a perfect 0%.
Can a bottleneck damage my CPU or GPU?
No. A bottleneck is a performance limitation, not a hardware fault, and running with one causes no damage. The component that is not maxed out is simply idling more than it could be; nothing is being overworked or stressed as a result of the imbalance itself.
Is it better to upgrade my CPU or my GPU first?
Run the diagnostic in this tutorial before spending money on either. If Step 4 consistently points to the CPU across the games you actually play, a CPU or platform upgrade will do more for your frame rate than a new GPU would, and vice versa. Guessing without measuring is how people end up buying the wrong upgrade.
Does Resizable BAR actually make a measurable difference?
It varies by title. Some games see a low single-digit percentage gain, and a smaller number of titles see more, but it is a free setting with no downside once your BIOS, CPU, and GPU all support it, so there is little reason not to enable it regardless of the exact gain in your specific games.
Why is my GPU usage low even at 4K with everything maxed out?
At very high resolutions, a CPU bottleneck becomes less likely simply because the GPU has so much rendering work to do, but it is not impossible — some 2026 titles with heavy simulation or NPC-count settings can still bottleneck even a 575W RTX 5090 at 4K. Run the Step 4 resolution test to confirm before assuming resolution alone rules out a CPU-side issue.
Should I overclock my CPU, my GPU, or both to fix a bottleneck?
Only overclock the component your Step 3 and Step 4 diagnosis actually identified as the constraint. Overclocking the component that already has headroom to spare will not touch your frame rate and just adds heat, noise, and risk for no benefit.
My laptop shows a bottleneck even though the specs “should” match well. Why?
Laptop CPUs and GPUs frequently run below their desktop counterparts’ power limits due to thermal and chassis constraints, and switchable-graphics laptops can also misreport usage if Afterburner or RTSS is monitoring the integrated GPU instead of the discrete one. Confirm the correct GPU is selected in your monitoring tool’s hardware detection settings before trusting the readings. The same caution applies even on tightly integrated silicon: Apple’s M5 Pro, which Apple specced in March 2026 with up to 18 CPU cores and 20 GPU cores, can still look artificially bottlenecked in third-party monitoring software that is not reading the correct engine.
How often should I re-run this bottleneck audit?
After any major driver update, after installing a demanding new game, and after any hardware change (new RAM kit, GPU swap, CPU upgrade) are the three moments worth a fresh check. Outside of those triggers, a system that is already balanced rarely drifts on its own.





