CPUs online or offline: Difference between revisions
(Add categories: Hardware, Reference) |
(Phase 6.1: LLM-Optimized Wiki Template 적용) |
||
| Line 1: | Line 1: | ||
{{Status | |||
|status=Draft | |||
|owner=Knowledge Agent | |||
|last_update=2026-07-16 | |||
|review=Pending | |||
}} | |||
{{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 == | |||
{| class="wikitable" | |||
! 개념 | |||
! 설명 | |||
! 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 상태 관리: | |||
<syntaxhighlight lang="mermaid"> | |||
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] | |||
</syntaxhighlight> | |||
--- | |||
== Workflow == | |||
CPU 상태 관리 워크플로우: | |||
# CPU 상태 확인 | |||
# cat /sys/devices/system/cpu/online | |||
# cat /sys/devices/system/cpu/offline | |||
# CPU online 설정 | |||
# echo 1 > /sys/devices/system/cpu/cpu<number>/online | |||
# CPU offline 설정 | |||
# echo 0 > /sys/devices/system/cpu/cpu<number>/online | |||
--- | |||
== Detailed Explanation == | |||
=== CPU 상태 확인 === | |||
CPU online/offline 상태를 확인하는 여러 방법이 있습니다: | |||
'''1. offline CPU 목록 확인''' | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cat /sys/devices/system/cpu/offline | cat /sys/devices/system/cpu/offline | ||
</syntaxhighlight> | |||
'''2. online CPU 목록 확인''' | |||
<syntaxhighlight lang="bash"> | |||
cat /sys/devices/system/cpu/online | |||
</syntaxhighlight> | |||
'''3. 전체 CPU 목록 확인''' | |||
# | <syntaxhighlight lang="bash"> | ||
echo 1 > /sys/devices/system/cpu/cpu<number>/online | ls -ld /sys/devices/system/cpu/cpu* | ||
</syntaxhighlight> | |||
'''4. 개별 CPU online/offline 상태 확인''' | |||
<syntaxhighlight lang="bash"> | |||
cat /sys/devices/system/cpu/cpu*/online | |||
</syntaxhighlight> | |||
'''5. CPU online 설정''' | |||
<syntaxhighlight lang="bash"> | |||
# CPU <number>를 online으로 설정 | |||
echo 1 > /sys/devices/system/cpu/cpu<number>/online | |||
# 또는 | |||
sudo chcpu -e <number> | sudo chcpu -e <number> | ||
</syntaxhighlight> | |||
'''6. CPU offline 설정''' | |||
# | <syntaxhighlight lang="bash"> | ||
# CPU <number>를 offline으로 설정 | |||
echo 0 > /sys/devices/system/cpu/cpu<number>/online | echo 0 > /sys/devices/system/cpu/cpu<number>/online | ||
# 또는 | |||
sudo chcpu -d <number> | sudo chcpu -d <number> | ||
</syntaxhighlight> | |||
=== 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: <code>CONFIG_INTEL_IOMMU=y</code> | |||
* [[AMD CPUs]]: <code>CONFIG_AMD_IOMMU=y</code> 및 <code>CONFIG_AMD_IOMMU_V2=y</code> | |||
'''4. 커널에서 x2APIC 지원 활성화''' | |||
<syntaxhighlight lang="bash"> | |||
CONFIG_X86_X2APIC=y | |||
</syntaxhighlight> | |||
'''5. 커널에서 IRQ 리매핑 활성화''' | |||
<syntaxhighlight lang="bash"> | |||
CONFIG_IRQ_REMAP=y | |||
</syntaxhighlight> | |||
=== OS별 x2APIC 제한 === | |||
x2APIC은 OS 유형/버전에 따라 의존성이 다릅니다: | |||
'''Windows Server 2016''' | |||
* Windows Server 2016은 [[AMD EPYC]] 7''xx''2 시리즈 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 모드 활성화를 방지할 수 있습니다: | |||
** <code>intremap=no_x2apic_optout</code> | |||
** <code>nox2apic</code> | |||
--- | |||
== Configuration == | |||
=== 커널 설정 === | |||
<syntaxhighlight lang="bash"> | |||
# IOMMU 활성화 (AMD) | |||
CONFIG_AMD_IOMMU=y | |||
CONFIG_AMD_IOMMU_V2=y | |||
# x2APIC 활성화 | |||
CONFIG_X86_X2APIC=y | |||
# IRQ 리매핑 활성화 | |||
CONFIG_IRQ_REMAP=y | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | === 커널 부트 파라미터 === | ||
<syntaxhighlight lang="bash"> | |||
# GRUB 부트 파라미터 (x2APIC 비활성화 필요시) | |||
# /etc/default/grub | |||
GRUB_CMDLINE_LINUX="intremap=no_x2apic_optout nox2apic" | |||
# GRUB 업데이트 | |||
sudo update-grub | |||
</syntaxhighlight> | |||
--- | |||
== Examples == | |||
=== Example 1: CPU 상태 확인 === | |||
입력: | |||
* ''' | <syntaxhighlight lang="bash"> | ||
** Windows Server 2016 | # 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* | |||
</syntaxhighlight> | |||
=== Example 2: CPU online/offline 전환 === | |||
입력: | |||
<syntaxhighlight lang="bash"> | |||
# 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 | |||
</syntaxhighlight> | |||
--- | |||
== Best Practices == | |||
* '''IOMMU 활성화''' — x2APIC 사용 시 필수 | |||
* '''x2APIC 활성화''' — 255개 이상 CPU 시스템에서 필수 | |||
* '''Windows Server 2016''' — 255개 논리 프로세서 제한, x2APIC 비활성화 필요 | |||
* '''커널 부트 파라미터''' — x2APIC 문제 시 <code>nox2apic</code> 파라미터로 우회 | |||
* '''BIOS 설정''' — IOMMU/x2APIC은 BIOS에서 먼저 확인 | |||
--- | |||
== Limitations == | |||
* Windows Server 2016은 최대 255개 논리 프로세서만 지원 | |||
* x2APIC은 IOMMU 및 IRQ 리매핑 필수 | |||
* 일부 시스템 BIOS에서 IOMMU 기본값이 비활성화 | |||
* chcpu 명령어는 아키텍처에 따라 제한적 지원 | |||
--- | |||
== References == | == References == | ||
* https://community.amd.com/t5/server-gurus-discussions/dual-socket-epyc-7702-64-cores-shows-254-cpu-online-1-cpu/m-p/350409 | |||
* https://stackoverflow.com/questions/60219639/kernel-error-irq-remapping-doesnt-support-x2apic-mode-disabled-x2apic | |||
--- | |||
== Related Pages == | |||
* [[BIOS]] | |||
* [[x2APIC]] | |||
* [[IOMMU]] | |||
* [[AMD CPUs]] | |||
* [[Linux]] | |||
* [[CPU]] | |||
--- | |||
[[Category:Hardware]] | [[Category:Hardware]] | ||
[[Category:Reference]] | [[Category:Reference]] | ||
Revision as of 14:37, 16 July 2026
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 상태 관리 워크플로우:
- CPU 상태 확인
- cat /sys/devices/system/cpu/online
- cat /sys/devices/system/cpu/offline
- CPU online 설정
- echo 1 > /sys/devices/system/cpu/cpu<number>/online
- CPU offline 설정
- 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=y및CONFIG_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_optoutnox2apic
---
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
- https://community.amd.com/t5/server-gurus-discussions/dual-socket-epyc-7702-64-cores-shows-254-cpu-online-1-cpu/m-p/350409
- https://stackoverflow.com/questions/60219639/kernel-error-irq-remapping-doesnt-support-x2apic-mode-disabled-x2apic
---
Related Pages
---