Kernel

From HPCWIKI
Revision as of 11:29, 17 July 2026 by Clara (talk | contribs) (Fix: remove --- horizontal lines (12 removed))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Kernel

Template:Status

Template:TOC

Overview

Linux 커널은 운영체제의 핵심으로, 하드웨어 자원 관리, 프로세스 스케줄링, 메모리 관리, 디바이스 드라이버, 네트워킹 스택을 담당합니다.

Summary

  • 무엇인가? — Linux 운영체제의 핵심 컴포넌트 (OS kernel)
  • 왜 필요한가? — 하드웨어 추상화, 자원 관리, 시스템 안정성
  • 언제 사용하는가? — 모든 Linux 시스템, 서버, 임베디드, HPC


Purpose

이 문서가 존재하는 이유

  • Goal: Linux 커널 부트 파라미터, 튜닝, 로그 분석, 팁/트릭 정보를 한 곳에서 제공
  • Scope: 커널 부트 파라미터, sysctl 튜닝, 커널 로그 분석, 실용적인 팁
  • Non-goals: 커널 소스 코드 수정, 커널 컴파일은 별도 문서


Key Concepts

Concept Description Related
Kernel Boot Param 부팅 시 커널에 전달되는 파라미터 Kernel boot param
Sysctl 런타임 커널 파라미터 조정 Linux kernel parameter
Kernel Log 커널 메시지 (dmesg, journalctl) Kernel log tips and tricks
Tunable Params 성능 튜닝을 위한 커널 파라미터 Tunable kernel params
Kernel Tips 커널 관련 실용적인 팁/트릭 Kernel tips and tricks


Architecture

Linux 커널은 다음과 같은 주요 컴포넌트로 구성됩니다:

graph TD
    A[Linux Kernel] --> B[Process Scheduler]
    A --> C[Memory Manager]
    A --> D[Virtual File System]
    A --> E[Network Stack]
    A --> F[Device Drivers]
    A --> G[Security Module]
    B --> H[CFS Scheduler]
    C --> I[Page Cache]
    C --> J[Swap Manager]


Workflow

Stage Input Output
Boot Kernel boot params Kernel initialized
Runtime Tuning sysctl command Parameter changed
Log Analysis dmesg / journalctl Issue identified


Detailed Explanation

Kernel Boot Parameters

커널 부트 파라미터는 시스템 부팅 시 커널에 전달되는 설정 옵션입니다. GRUB에서 수정하거나 커맨드 라인에서 전달할 수 있습니다.

Linux Kernel Parameters (sysctl)

sysctl를 통해 런타임에 커널 파라미터를 조정할 수 있습니다. 재부팅 없이 네트워크, 메모리, 프로세스 관련 설정을 변경할 수 있습니다.

Kernel Log Tips and Tricks

dmesg와 journalctl을 통해 커널 로그를 분석하고 문제를 진단합니다. 일반적인 에러 패턴과 해결 방법을 제공합니다.

Tunable Kernel Parameters

성능 튜닝을 위한 주요 커널 파라미터 (vm.min_free_kbytes, net.ipv4.tcp_fin_timeout 등) 설정 방법을 제공합니다.

Kernel Tips and Tricks

커널 관련 실용적인 팁, ARM FPU 확인, 커널 모듈 관리 등 다양한 주제를 다룹니다.


Configuration

# 커널 부트 파라미터 확인
cat /proc/cmdline

# 커널 파라미터 확인
sysctl -a | grep <parameter>

# 커널 파라미터 변경
sudo sysctl -w <parameter>=<value>

# 커널 로그 확인
dmesg | tail -50
journalctl -k -n 50

# 커널 모듈 확인
lsmod
modinfo <module_name>


Examples

Example 1: 메모리 튜닝

# 최소 프리 메모리 설정
sudo sysctl -w vm.min_free_kbytes=65536

# 영구 적용
echo "vm.min_free_kbytes=65536" | sudo tee -a /etc/sysctl.conf

Example 2: 네트워크 튜닝

# TCP FIN Timeout 단축
sudo sysctl -w net.ipv4.tcp_fin_timeout=30

# TCP Keepalive 시간 설정
sudo sysctl -w net.ipv4.tcp_keepalive_time=600


Best Practices

  • 부트 파라미터 변경 전 백업
  • sysctl 변경 전 테스트 환경에서 검증
  • 커널 로그 정기 확인
  • 불필요한 커널 모듈 비활성화
  • 커널 업데이트 정기 적용


Limitations

  • 일부 파라미터는 런타임 변경 불가
  • 잘못된 설정은 시스템 불안정 초래
  • 커널 재부팅이 필요한 설정 존재


References


Related Pages

Knowledge Graph

Related

Linux Kernel TuningTHP (Transparent Huge Pages)Kernel tips and tricksKernel boot paramLinux KernelTunable kernel params