CPUs online or offline

From HPCWIKI
Revision as of 14:37, 16 July 2026 by Clara (talk | contribs) (Phase 6.1: LLM-Optimized Wiki Template 적용)
Jump to navigation Jump to search

Template:Status

Template:TOC

Overview

Linux 시스템에서 CPU의 online/offline 상태를 확인하고 관리하는 방법입니다. CPU 상태를 통해 시스템 리소스를 효율적으로 관리하고 성능을 최적화할 수 있습니다.

Summary

  • 무엇인가? Linux에서 CPU online/offline 상태 확인 및 제어
  • 왜 필요한가? CPU 리소스 관리, 전원 절약, 디버깅, 성능 최적화
  • 언제 사용하는가? 서버 관리, CPU 문제 진단, 리소스 할당

---

Purpose

이 문서가 존재하는 이유

  • Goal: CPU 상태 확인 방법, online/offline 전환, smpboot 오류 해결 가이드 제공
  • Scope: CPU 상태 확인 명령어, online/offline 설정, x2APIC/IOMMU 설정
  • Non-goals: CPU 하드웨어 교체, BIOS 상세 설정

---

Key Concepts

개념 설명 Related
online 활성화된 CPU — 작업 처리 가능 CPUs online or offline
offline 비활성화된 CPU — 전원 절약 모드 CPUs online or offline
x2APIC 확장된 APIC 아키텍처 — 255개 이상 CPU 지원 BIOS
IOMMU I/O 메모리 관리 유닛 — DMA 보호 x2APIC
IRQ remapping 인터럽트 리매핑 — x2APIC 필수 IOMMU

---

Architecture

CPU online/offline 상태 관리:

graph TD
    A[CPU 상태 파일] --> B[/sys/devices/system/cpu/]
    B --> C[cpu0/]
    B --> D[cpu1/]
    B --> E[cpuN/]
    C --> F[online 파일]
    D --> F
    E --> F
    F --> G[echo 1 > online = online]
    F --> H[echo 0 > online = offline]

---

Workflow

CPU 상태 관리 워크플로우:

  1. CPU 상태 확인
  2. cat /sys/devices/system/cpu/online
  3. cat /sys/devices/system/cpu/offline
  1. CPU online 설정
  2. echo 1 > /sys/devices/system/cpu/cpu<number>/online
  1. CPU offline 설정
  2. echo 0 > /sys/devices/system/cpu/cpu<number>/online

---

Detailed Explanation

CPU 상태 확인

CPU online/offline 상태를 확인하는 여러 방법이 있습니다:

1. offline CPU 목록 확인

cat /sys/devices/system/cpu/offline

2. online CPU 목록 확인

cat /sys/devices/system/cpu/online

3. 전체 CPU 목록 확인

ls -ld /sys/devices/system/cpu/cpu*

4. 개별 CPU online/offline 상태 확인

cat /sys/devices/system/cpu/cpu*/online

5. CPU online 설정

# CPU <number>를 online으로 설정
echo 1 > /sys/devices/system/cpu/cpu<number>/online

# 또는
sudo chcpu -e <number>

6. CPU offline 설정

# CPU <number>를 offline으로 설정
echo 0 > /sys/devices/system/cpu/cpu<number>/online

# 또는
sudo chcpu -d <number>

smpboot: native_cpu_up: bad cpu 255

이 문제 AMD EPYC 7702 64코어 시스템에서 254개 CPU만 online이고 1개가 offline인 경우와 관련이 있습니다. 시스템 IOMMU가 BIOS에서 활성화되어야 Gigabyte 시스템에서 마지막 CPU 코어를 활성화할 수 있습니다. 다른 시스템의 BIOS 구성에도 관련될 수 있습니다.

x2APIC 아키텍처를 BIOS Setup에서 활성화 또는 비활성화할 수 있습니다. x2APIC은 IOMMU가 활성화되고 IRQ 리매핑이 활성화되어야 합니다.

This thread에 따르면 BIOS에서 x2APIC을 활성화하는 일반적인 단계는 다음과 같습니다:

1. BIOS에서 IOMMU 활성화

많은 시스템에서 기본값으로 비활성화되어 있습니다. 예를 들어 2020년 7월형 Gigabyte R282-Z93 (EPYC 7742 CPU)에서도 기본값이 비활성화입니다.

2. BIOS에서 x2APIC 활성화

3. 커널에서 IOMMU support 활성화

  • Intel CPU: CONFIG_INTEL_IOMMU=y
  • AMD CPUs: CONFIG_AMD_IOMMU=yCONFIG_AMD_IOMMU_V2=y

4. 커널에서 x2APIC 지원 활성화

CONFIG_X86_X2APIC=y

5. 커널에서 IRQ 리매핑 활성화

CONFIG_IRQ_REMAP=y

OS별 x2APIC 제한

x2APIC은 OS 유형/버전에 따라 의존성이 다릅니다:

Windows Server 2016

  • Windows Server 2016은 AMD EPYC 7xx2 시리즈 CPU를 지원하지만, 최대 255개 논리 프로세서로 제한됩니다.
  • Windows Server 2016은 X2APIC 모드를 지원하지 않으며, BIOS에서 이 모드를 비활성화해야 합니다.
  • ASUS BIOS: AMD CBS -> CPU Common Options -> Performance -> CCD/Core/Thread Enablement -> Accept -> SMT control -> Disabled

Linux

  • 다음 커널 부트 파라미터는 x2APIC 모드 활성화를 방지할 수 있습니다:
    • intremap=no_x2apic_optout
    • nox2apic

---

Configuration

커널 설정

# IOMMU 활성화 (AMD)
CONFIG_AMD_IOMMU=y
CONFIG_AMD_IOMMU_V2=y

# x2APIC 활성화
CONFIG_X86_X2APIC=y

# IRQ 리매핑 활성화
CONFIG_IRQ_REMAP=y

커널 부트 파라미터

# GRUB 부트 파라미터 (x2APIC 비활성화 필요시)
# /etc/default/grub
GRUB_CMDLINE_LINUX="intremap=no_x2apic_optout nox2apic"

# GRUB 업데이트
sudo update-grub

---

Examples

Example 1: CPU 상태 확인

입력:

# online CPU 확인
cat /sys/devices/system/cpu/online
# 출력 예: 0-253

# offline CPU 확인
cat /sys/devices/system/cpu/offline
# 출력 예: 254-255

# 전체 CPU 확인
ls -ld /sys/devices/system/cpu/cpu*

Example 2: CPU online/offline 전환

입력:

# CPU 254를 online으로
echo 1 > /sys/devices/system/cpu/cpu254/online

# CPU 255를 offline으로
echo 0 > /sys/devices/system/cpu/cpu255/online

# chcpu 명령어 사용
sudo chcpu -e 254  # online
sudo chcpu -d 255  # offline

---

Best Practices

  • IOMMU 활성화 — x2APIC 사용 시 필수
  • x2APIC 활성화 — 255개 이상 CPU 시스템에서 필수
  • Windows Server 2016 — 255개 논리 프로세서 제한, x2APIC 비활성화 필요
  • 커널 부트 파라미터 — x2APIC 문제 시 nox2apic 파라미터로 우회
  • BIOS 설정 — IOMMU/x2APIC은 BIOS에서 먼저 확인

---

Limitations

  • Windows Server 2016은 최대 255개 논리 프로세서만 지원
  • x2APIC은 IOMMU 및 IRQ 리매핑 필수
  • 일부 시스템 BIOS에서 IOMMU 기본값이 비활성화
  • chcpu 명령어는 아키텍처에 따라 제한적 지원

---

References

---

Related Pages

---