SiamCafe.net Blog
Technology

overclock cpu ทํายังไง

overclock cpu ทํายังไง | SiamCafe Blog
2025-12-10· อ. บอม — SiamCafe.net· 1,522 คำ

Overclock CPU ทํายังไง — คู่มือ OC ซีพียู 2026

CPU Overclocking คือการเพิ่มความเร็วสัญญาณนาฬิกา (Clock Speed) ของ CPU ให้สูงกว่าค่า stock ที่โรงงานตั้งมา เพื่อเพิ่มประสิทธิภาพในการประมวลผล gaming และ content creation การ OC CPU เป็นวิธีเพิ่ม performance ที่คุ้มค่า โดยเฉพาะสำหรับ CPU ที่ปลดล็อค (Intel K-series, AMD Ryzen ทุกรุ่น) บทความนี้อธิบายวิธี overclock CPU ทั้ง Intel และ AMD ทีละขั้นตอน พร้อม Python tools สำหรับ monitoring และ benchmark

พื้นฐาน CPU Overclocking

# oc_basics.py — CPU overclocking fundamentals
import json

class OCBasics:
    CONCEPTS = {
        "clock_speed": {
            "name": "Clock Speed (ความเร็วสัญญาณนาฬิกา)",
            "description": "จำนวนรอบการทำงานต่อวินาที — หน่วย GHz (พันล้านรอบ/วินาที)",
            "example": "Ryzen 7 7800X3D: Base 4.2 GHz, Boost 5.0 GHz",
        },
        "multiplier": {
            "name": "Multiplier (ตัวคูณ)",
            "description": "Clock Speed = BCLK × Multiplier เช่น 100 MHz × 50 = 5.0 GHz",
            "how_to_oc": "เพิ่ม Multiplier ใน BIOS — วิธี OC หลัก",
        },
        "bclk": {
            "name": "BCLK (Base Clock)",
            "description": "ความเร็วพื้นฐาน — ปกติ 100 MHz (Intel) หรือ 100 MHz (AMD)",
            "how_to_oc": "เพิ่ม BCLK ได้เล็กน้อย (100→103) แต่อาจ unstable",
        },
        "voltage": {
            "name": "Vcore (CPU Core Voltage)",
            "description": "แรงดันไฟที่จ่ายให้ CPU — เพิ่มเพื่อให้ stable ที่ clock สูง",
            "warning": "Voltage สูง = ความร้อนสูง + อายุ CPU ลดลง",
        },
        "thermal": {
            "name": "Thermal (ความร้อน)",
            "description": "CPU ร้อนขึ้นเมื่อ OC — ต้องมีระบบระบายความร้อนดี",
            "safe_temp": "Intel: < 100°C (throttle), AMD: < 95°C — แนะนำ < 85°C",
        },
    }

    REQUIREMENTS = {
        "cpu": "CPU ที่ปลดล็อค: Intel K/KF/KS series, AMD Ryzen (ทุกรุ่น OC ได้)",
        "motherboard": "เมนบอร์ดที่รองรับ OC: Intel Z-series (Z790), AMD B/X series (B650, X670)",
        "cooler": "ระบบระบายความร้อนดี: Tower cooler ขั้นต่ำ, AIO 240mm+ แนะนำ",
        "psu": "PSU คุณภาพดี: 80+ Gold ขึ้นไป, กำลังเพียงพอ (650W+)",
        "ram": "RAM คุณภาพดี — OC CPU + RAM พร้อมกันได้ performance สูงสุด",
    }

    def show_concepts(self):
        print("=== OC Fundamentals ===\n")
        for key, c in self.CONCEPTS.items():
            print(f"[{c['name']}]")
            print(f"  {c['description']}")
            print()

    def show_requirements(self):
        print("=== Requirements ===")
        for key, req in self.REQUIREMENTS.items():
            print(f"  [{key}] {req}")

basics = OCBasics()
basics.show_concepts()
basics.show_requirements()

วิธี Overclock ทีละขั้น

# oc_steps.py — Step-by-step CPU overclocking
import json

class OverclockSteps:
    STEPS = {
        "step1": {
            "name": "Step 1: เตรียมตัว",
            "actions": [
                "อัพเดท BIOS เป็นเวอร์ชันล่าสุด",
                "ติดตั้ง monitoring tools: HWiNFO64, CPU-Z, CoreTemp",
                "ติดตั้ง stress test: Cinebench R23, Prime95, OCCT",
                "บันทึก stock performance (Cinebench score) เป็น baseline",
                "ตรวจสอบระบบระบายความร้อน — ทำความสะอาด dust",
            ],
        },
        "step2": {
            "name": "Step 2: ทดสอบ Stock",
            "actions": [
                "รัน Cinebench R23 Multi-core — จด score",
                "ดู temperature ขณะ load — ต้อง < 85°C",
                "ดู stock voltage (Vcore) ขณะ load",
                "ถ้า stock temp > 90°C → ต้องปรับปรุง cooling ก่อน",
            ],
        },
        "step3": {
            "name": "Step 3: ตั้ง Multiplier",
            "actions": [
                "เข้า BIOS (กด Del หรือ F2 ตอน boot)",
                "หา CPU Ratio/Multiplier settings",
                "เพิ่ม All-Core multiplier ทีละ 1 (เช่น 50 → 51)",
                "ตั้ง CPU Load-Line Calibration (LLC) = Level 4-5",
                "Save & Exit → boot เข้า Windows",
            ],
        },
        "step4": {
            "name": "Step 4: Stress Test",
            "actions": [
                "รัน Cinebench R23 — ถ้าผ่าน = เพิ่ม multiplier อีก",
                "ถ้า BSOD/freeze → เพิ่ม Vcore 0.01V แล้วลองใหม่",
                "รัน Prime95 Small FFTs 30 นาที — ทดสอบ stability",
                "ดู temperature — ต้อง < 90°C ขณะ stress test",
                "ถ้า temp > 95°C → ลด voltage หรือ multiplier",
            ],
        },
        "step5": {
            "name": "Step 5: Fine Tune",
            "actions": [
                "เมื่อหา max multiplier ได้แล้ว → ลด Vcore ทีละ 0.01V",
                "ลดจนกว่าจะ crash → เพิ่มกลับ 0.01-0.02V = sweet spot",
                "รัน Prime95 1 ชั่วโมง หรือ OCCT 30 นาที = final test",
                "ทดสอบ real-world: เล่นเกม 2-3 ชั่วโมง",
                "Monitor temp ด้วย HWiNFO64 ตลอด",
            ],
        },
    }

    INTEL_GUIDE = {
        "cpu": "Intel 14th Gen (i7-14700K, i9-14900K)",
        "method": "Per-core OC หรือ All-Core",
        "safe_voltage": "1.25-1.35V (ไม่เกิน 1.40V)",
        "typical_oc": "i7-14700K: 5.5-5.8 GHz all-core",
    }

    AMD_GUIDE = {
        "cpu": "AMD Ryzen 7000/9000 series",
        "method": "PBO (Precision Boost Overdrive) + Curve Optimizer — แนะนำ",
        "safe_voltage": "PBO จัดการ voltage อัตโนมัติ — ปลอดภัยกว่า manual OC",
        "typical_oc": "Ryzen 7 7800X3D: PBO + CO -30 = +5-10% performance",
    }

    def show_steps(self):
        print("=== Overclock Steps ===\n")
        for key, step in self.STEPS.items():
            print(f"[{step['name']}]")
            for action in step['actions'][:3]:
                print(f"  • {action}")
            print()

    def show_guides(self):
        print("=== Platform Guides ===")
        print(f"\n[Intel] {self.INTEL_GUIDE['cpu']}")
        print(f"  Method: {self.INTEL_GUIDE['method']}")
        print(f"  Safe Voltage: {self.INTEL_GUIDE['safe_voltage']}")
        print(f"\n[AMD] {self.AMD_GUIDE['cpu']}")
        print(f"  Method: {self.AMD_GUIDE['method']}")
        print(f"  Typical: {self.AMD_GUIDE['typical_oc']}")

steps = OverclockSteps()
steps.show_steps()
steps.show_guides()

AMD PBO & Curve Optimizer

# amd_pbo.py — AMD PBO and Curve Optimizer guide
import json

class AMDPBO:
    PBO_SETTINGS = {
        "pbo_enabled": {
            "name": "PBO (Precision Boost Overdrive)",
            "description": "ให้ CPU boost เกิน spec อัตโนมัติ — AMD จัดการ voltage เอง",
            "settings": {
                "PPT": "Package Power Tracking — เพิ่ม 10-15% จาก default",
                "TDC": "Thermal Design Current — เพิ่ม 10-15%",
                "EDC": "Electrical Design Current — เพิ่ม 10-15%",
            },
        },
        "curve_optimizer": {
            "name": "Curve Optimizer (CO)",
            "description": "ลด voltage ต่อ core — ได้ performance เพิ่มโดยไม่เพิ่มความร้อน",
            "steps": [
                "BIOS → AMD Overclocking → Curve Optimizer",
                "ตั้ง All Core → Negative",
                "เริ่มที่ -10 → stress test → ถ้า stable เพิ่มเป็น -15, -20, -25, -30",
                "ค่า -25 ถึง -30 คือ sweet spot ของ CPU ส่วนใหญ่",
                "ถ้า BSOD → ลดกลับทีละ 5 (เช่น -30 → -25)",
            ],
        },
        "expo": {
            "name": "EXPO (Extended Profiles for Overclocking)",
            "description": "XMP สำหรับ AMD — เปิดเพื่อให้ RAM ทำงานที่ rated speed",
            "action": "BIOS → EXPO Profile → Enable",
        },
    }

    TESTING = {
        "corecycler": {
            "name": "CoreCycler",
            "description": "ทดสอบ Curve Optimizer ทีละ core — หา optimal CO per core",
            "duration": "6-12 ชั่วโมง (ทดสอบทุก core)",
        },
        "cinebench": {
            "name": "Cinebench R23",
            "description": "Multi/Single core benchmark — วัด performance gain",
            "duration": "10 นาที",
        },
        "prime95": {
            "name": "Prime95 Small FFTs",
            "description": "Stress test หนักที่สุด — ทดสอบ stability",
            "duration": "30-60 นาที",
        },
    }

    def show_pbo(self):
        print("=== AMD PBO & Curve Optimizer ===\n")
        for key, setting in self.PBO_SETTINGS.items():
            print(f"[{setting['name']}]")
            print(f"  {setting['description']}")
            if 'steps' in setting:
                for step in setting['steps'][:3]:
                    print(f"    • {step}")
            print()

    def show_testing(self):
        print("=== Testing Tools ===")
        for key, tool in self.TESTING.items():
            print(f"  [{tool['name']}] {tool['description']} ({tool['duration']})")

pbo = AMDPBO()
pbo.show_pbo()
pbo.show_testing()

Python Monitoring Tools

# monitoring.py — Python CPU monitoring tools
import json

class CPUMonitor:
    CODE = """
# cpu_monitor.py — Monitor CPU during overclocking
import subprocess
import json
import time
from datetime import datetime

class CPUOverclockMonitor:
    def __init__(self):
        self.log = []
    
    def get_cpu_info(self):
        '''Get CPU info using wmic'''
        try:
            result = subprocess.run(
                ['wmic', 'cpu', 'get', 
                 'Name, CurrentClockSpeed, MaxClockSpeed, NumberOfCores, NumberOfLogicalProcessors',
                 '/format:list'],
                capture_output=True, text=True
            )
            
            info = {}
            for line in result.stdout.strip().split('\\n'):
                if '=' in line:
                    key, val = line.strip().split('=', 1)
                    info[key] = val
            
            return info
        except Exception as e:
            return {"error": str(e)}
    
    def monitor_temps(self, duration_seconds=60, interval=5):
        '''Monitor CPU temps over time (requires HWiNFO or OpenHardwareMonitor)'''
        readings = []
        start = time.time()
        
        while time.time() - start < duration_seconds:
            timestamp = datetime.now().isoformat()
            
            # Use PowerShell to get CPU load
            result = subprocess.run(
                ['powershell', '-Command',
                 'Get-CimInstance Win32_Processor | Select LoadPercentage'],
                capture_output=True, text=True
            )
            
            load = 0
            for line in result.stdout.strip().split('\\n'):
                line = line.strip()
                if line.isdigit():
                    load = int(line)
            
            readings.append({
                'timestamp': timestamp,
                'cpu_load_pct': load,
            })
            
            print(f"[{timestamp}] CPU Load: {load}%")
            time.sleep(interval)
        
        return readings
    
    def benchmark_comparison(self, stock_score, oc_score):
        '''Compare stock vs OC performance'''
        gain = oc_score - stock_score
        gain_pct = (gain / stock_score) * 100
        
        return {
            'stock_score': stock_score,
            'oc_score': oc_score,
            'gain': gain,
            'gain_pct': round(gain_pct, 1),
            'worth_it': gain_pct > 5,
            'verdict': 'Worth it!' if gain_pct > 5 else 'Marginal gain',
        }
    
    def voltage_temp_table(self, readings):
        '''Create voltage vs temp table'''
        # readings: list of {voltage, temp, clock}
        print(f"{'Voltage':<10} {'Temp':<10} {'Clock':<10} {'Status'}")
        print("-" * 45)
        
        for r in readings:
            status = 'OK' if r['temp'] < 85 else 'HOT' if r['temp'] < 95 else 'DANGER'
            print(f"{r['voltage']:<10} {r['temp']:<10} {r['clock']:<10} {status}")

# monitor = CPUOverclockMonitor()
# info = monitor.get_cpu_info()
# comparison = monitor.benchmark_comparison(stock_score=15000, oc_score=17500)
"""

    def show_code(self):
        print("=== CPU Monitor ===")
        print(self.CODE[:600])

monitor = CPUMonitor()
monitor.show_code()

Troubleshooting

# troubleshooting.py — OC troubleshooting guide
import json

class OCTroubleshooting:
    PROBLEMS = {
        "bsod": {
            "problem": "BSOD (จอฟ้า) หลัง OC",
            "causes": ["Voltage ไม่พอ", "Multiplier สูงเกินไป", "RAM unstable"],
            "fixes": [
                "เพิ่ม Vcore 0.01-0.02V",
                "ลด Multiplier ลง 1",
                "ตรวจสอบ RAM stability แยก",
                "เพิ่ม LLC (Load-Line Calibration)",
            ],
        },
        "high_temp": {
            "problem": "อุณหภูมิสูงเกินไป (> 95°C)",
            "causes": ["Voltage สูงเกินไป", "Cooler ไม่ดีพอ", "Thermal paste เก่า"],
            "fixes": [
                "ลด Vcore — หา minimum stable voltage",
                "อัพเกรด cooler (AIO 240mm+)",
                "ทา thermal paste ใหม่",
                "ปรับปรุง airflow ในเคส",
            ],
        },
        "no_boot": {
            "problem": "คอมไม่ boot หลัง OC",
            "causes": ["Settings aggressive เกินไป", "Voltage ผิดพลาด"],
            "fixes": [
                "Clear CMOS: ถอดถ่าน CMOS 30 วินาที หรือกดปุ่ม Clear CMOS",
                "BIOS จะ reset เป็น default — เริ่ม OC ใหม่",
                "บางเมนบอร์ดมี BIOS Flashback — ใช้ USB flash BIOS",
            ],
        },
        "unstable_games": {
            "problem": "เกม crash แต่ stress test ผ่าน",
            "causes": ["Stress test ไม่ครอบคลุมทุก workload", "Mixed workload unstable"],
            "fixes": [
                "รัน OCCT Medium/Large FFTs (ไม่ใช่แค่ Small)",
                "ทดสอบด้วย y-cruncher (mixed workload)",
                "เพิ่ม Vcore อีก 0.01-0.02V",
                "ลอง per-core OC แทน all-core",
            ],
        },
    }

    def show_problems(self):
        print("=== Troubleshooting ===\n")
        for key, p in self.PROBLEMS.items():
            print(f"[{p['problem']}]")
            print(f"  Fixes:")
            for fix in p['fixes'][:2]:
                print(f"    • {fix}")
            print()

trouble = OCTroubleshooting()
trouble.show_problems()

FAQ - คำถามที่พบบ่อย

Q: Overclock CPU เสี่ยงไหม?

A: ความเสี่ยงต่ำถ้าทำถูกวิธี: ไม่เกิน voltage ที่แนะนำ (Intel < 1.40V, AMD ใช้ PBO) อุณหภูมิไม่เกิน 90°C ขณะ load ถ้า settings ไม่ stable: Clear CMOS กลับ default ได้เสมอ ความเสี่ยงจริง: degradation ถ้าใช้ voltage สูงนาน (ปีๆ) — แนะนำ conservative settings

Q: CPU ทุกตัว OC ได้ไหม?

A: Intel: เฉพาะ K/KF/KS series (เช่น i7-14700K) — non-K OC ไม่ได้ AMD Ryzen: ทุกรุ่น OC ได้ — แต่แนะนำ PBO + Curve Optimizer แทน manual OC เมนบอร์ด: Intel ต้อง Z-series, AMD ต้อง B/X series (A-series OC ไม่ได้) Silicon Lottery: CPU แต่ละตัวมี OC headroom ต่างกัน — บางตัวดี บางตัวไม่ดี

Q: AMD ใช้ PBO กับ Manual OC อันไหนดีกว่า?

A: PBO + Curve Optimizer ดีกว่าสำหรับ 99% ของผู้ใช้ เพราะ: PBO ปรับ voltage อัตโนมัติ = ปลอดภัยกว่า, Curve Optimizer ลด voltage ต่อ core = เพิ่ม boost clock + ลดความร้อน, Single-core boost สูงกว่า manual all-core OC ใช้ Manual OC เมื่อ: ต้องการ consistent all-core clock สำหรับ rendering/encoding

Q: OC เพิ่ม FPS เกมได้เท่าไหร่?

A: ขึ้นกับเกมและ GPU: CPU-bound games (Civilization, Cities Skylines): +10-20% FPS GPU-bound games (4K gaming): +1-5% FPS (ไม่คุ้ม) 1080p competitive gaming: +5-15% FPS (คุ้มมาก — 1% lows ดีขึ้น) สำคัญ: OC CPU + RAM พร้อมกันจะได้ผลมากกว่า OC CPU อย่างเดียว

📖 บทความที่เกี่ยวข้อง

โปรแกรม overclock cpu intelอ่านบทความ → overclock cpu amd fx 8350อ่านบทความ → overclock cpu คืออะไรอ่านบทความ → โปรแกรม overclock cpuอ่านบทความ → วิธี overclock cpuอ่านบทความ →

📚 ดูบทความทั้งหมด →