Day 5 of 5
⏱ ~60 minutes
Build a PC in 5 Days — Day 5

Troubleshooting and Optimization

Something doesn't work. Or you want it to work better. Today you'll learn systematic troubleshooting and real performance optimization.

No POST Diagnosis

POST (Power-On Self Test) failures show as: no video output, POST code on motherboard LED (look up the code in the manual), beep codes. Most common causes: RAM not seated (remove and reseat firmly), CPU power cable missing (the 8-pin near the top of the board — separate from 24-pin), GPU not seated or GPU power unplugged, CPU not seated (bent pins on Intel). Isolate components: test with one RAM stick, disconnect all drives, try iGPU if CPU has one.

Thermal Issues

Symptoms: sudden shutdowns under load, throttled performance, CPU hitting TJ Max (100°C for Intel, 95°C for AMD). Causes: insufficient cooler, poor thermal paste application, cooler not making full contact, case airflow issues. Fixes: reapply thermal paste (old paste dries out over 2–3 years), upgrade cooler, add case fans, set aggressive fan curves in BIOS. Ideal: <75°C under sustained load, <85°C under short bursts.

Performance Optimization

Monitoring tools: HWiNFO64 (Windows), sensors/nmon (Linux) — track CPU/GPU temp, clocks, power draw, RAM usage in real time. Benchmark with Cinebench R23 (CPU), 3DMark (GPU), CrystalDiskMark (storage). Stability testing: Prime95 for CPU (30 min torture test), MemTest86 for RAM (bootable, run overnight). If crashes occur during stress test but not normal use, you may have a cooling or PSU issue.

bash
#!/bin/bash
# Linux hardware monitoring and stress test setup

# Install monitoring tools
sudo apt install -y stress-ng s-tui lm-sensors cpufrequtils
sudo sensors-detect --auto

# Watch CPU temperature, frequency, and load in real time
# s-tui gives a beautiful terminal dashboard
s-tui

# Or manual monitoring loop
watch -n 1 'echo "=== CPU Temps ==="; sensors | grep -E "Core|Package"; \
            echo ""; echo "=== CPU Freq ==="; cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq | awk "{sum+=\$1;n++} END {printf \"Average: %.0f MHz\\n\", sum/n/1000}"; \
            echo ""; echo "=== Memory ==="; free -h'

# CPU stress test (10 minutes)
echo "Starting 10-minute CPU stress test..."
stress-ng --cpu $(nproc) --timeout 600 --metrics-brief

# Storage benchmark
echo "\nDisk write speed:"
dd if=/dev/zero of=/tmp/test bs=1G count=3 oflag=dsync 2>&1 | tail -1
rm /tmp/test

echo "\nDisk read speed:"
dd if=/tmp/bigfile of=/dev/null bs=1G count=3 2>&1 | tail -1

# Check for thermal throttling after stress test
echo "\nMax CPU temp during test:"
journal ctl -n 50 2>/dev/null | grep -i thermal || echo "Check BIOS for thermal events"
💡
HWiNFO64 is the best Windows monitoring tool — it reads every sensor on the motherboard, including per-core CPU temperatures and actual GPU power draw vs rated TDP. Run it in the background during gaming or compilation to catch thermal throttling.
📝 Day 5 Exercise
Stress Test and Baseline Your Build
  1. Install HWiNFO64 (Windows) or lm-sensors + s-tui (Linux). Record idle temperatures for CPU and GPU.
  2. Run Cinebench R23 multi-core test. Record the score and the maximum CPU temperature during the test. Did the CPU maintain its boost clock throughout?
  3. Run the CPU stress test for 10 minutes. Monitor temperatures. Did they stabilize under 80°C? If they hit 90°C+, you have a cooling issue.
  4. Run CrystalDiskMark (Windows) or dd (Linux) to measure NVMe sequential read/write speed. Compare to the drive's spec sheet. Are you within 10%?
  5. Run MemTest86 overnight (bootable USB). Zero errors means your RAM is stable at XMP speeds. Any errors = possible bad stick or unstable XMP — try lower XMP profile.

Day 5 Summary

  • No POST? Check RAM seating, CPU power cable (8-pin), GPU power, CPU seating — in that order
  • Thermal throttling = CPU hitting TJ Max and reducing clocks to survive; fix with better cooler or fresh thermal paste
  • HWiNFO64 (Windows) / sensors+s-tui (Linux) are the best real-time monitoring tools
  • Stress testing: Prime95 for CPU stability, MemTest86 for RAM, CrystalDiskMark for storage benchmarks
Challenge

Overclock your RAM using XMP/EXPO profile 2 (if available) or manually increase the speed by one step (e.g., DDR5-6000 → DDR5-6200). Run MemTest86. If it passes, try the next step. Document the highest stable speed you can achieve and what started failing first — timing errors or hard crashes. This is how enthusiasts find the actual limit of their hardware.

Finished this lesson?