본문 바로가기
리눅스&OS

리눅스 커널 파라메터 운영중에 수정하는 법 - 레드햇 공식 내용(Configuring kernel parameters at runtime)

by developer's warehouse 2024. 1. 9.

리눅스 커널 파라메터 변경하는 법입니다. 이 문서는 공식 레드햇 문서를 참고하여 작성한 내용이므로 정확한 내용을 담고 습니다.

시스템 관리자는 런타임 시 레드햇 엔터프라이즈 리눅스 커널 동작의 여러 측면을 수정할 수 있습니다. 런타임에 커널 매개변수를 구성하려면 sysctl 명령을 사용하고 /etc/sysctl.d/ 및 /proc/sys/ 디렉터리에 있는 구성 파일을 수정합니다.

레드햇 커스터머 포탈 이미지

 

커널 매개변수(커널 파라메터, kernel parameter)란 무엇인가요?

커널 매개변수는 시스템이 실행되는 동안 조정할 수 있는 값입니다. 변경 사항을 적용하기 위해 커널을 재부팅하거나 다시 컴파일할 필요는 없습니다.

커널 매개변수는 다음을 통해 조정할 수 있습니다:

  • sysctl 명령
  • proc/sys/ 디렉터리에 마운트된 가상 파일 시스템
  • etc/sysctl.d/ 디렉터리에 있는 설정 파일

튜너블은 커널 서브시스템에 따라 클래스로 나뉩니다. 레드햇 엔터프라이즈 리눅스에는 다음과 같은 튜너블 클래스가 있습니다:

 

Table 5.1. Table of sysctl classes

Tunable class Subsystem
vm Tuning and management of memory, buffers, and cache (메모리, 버퍼, 캐시 튜닝 및 관리)
abi Execution domains and personalities( 실행 도메인 및 성격)
crypto Cryptographic interfaces (암호화 인터페이스)
debug Kernel debugging interfaces (커널 디버깅)
dev Device-specific information (장치 관련 정보)
fs Global and specific file system tunables (전역 및 특정 파일 시스템 튜너)
kernel Global kernel tunables (전역 커널 튜닝)
net Network tunables (네트워크 튜닝)
sunrpc Sun Remote Procedure Call (NFS)
user User Namespace limits (사용자 네임스페이스 제한)

 

중요
프로덕션 시스템에서 커널 매개변수를 구성하려면 신중한 계획이 필요합니다. 계획에 없던 변경은 커널을 불안정하게 만들어 시스템을 재부팅해야 할 수도 있습니다. 커널 값을 변경하기 전에 올바른 옵션을 사용하고 있는지 확인하세요.

 

sysctl로 커널 매개변수를 임시로 구성하기

런타임에 커널 파라미터를 임시로 설정하려면 sysctl 명령을 사용하세요. 이 명령은 튜너블을 나열하고 필터링하는 데도 유용합니다.

필요한 것

  • Root 권한

변경 절차

  1. 모든 매개변수와 해당 값을 나열합니다.
    참고:

    sysctl -a 명령은 런타임 및 부팅 시 조정할 수 있는 커널 매개변수를 표시합니다.

  2. sysctl -a
  3. 커널 매개변수를 임시로 구성하려면 아래 명령을 입력합니다
    위의 샘플 명령은 시스템이 실행되는 동안 매개변수 값을 변경합니다. 변경 사항은 다시 시작할 필요 없이 즉시 적용됩니다.

    참고:

    변경 사항은 시스템이 재부팅되면 기본값으로 돌아갑니다.

  4.  sysctl <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>

sysctl로 커널 매개변수를 영구적으로 구성하기

커널 파라미터를 영구적으로 설정하려면 sysctl 명령을 사용할 수 있습니다.

 

필요한 것

  • Root 권한

변경 절차

  1. 아래 명령은 리눅스 실행 중(런타임)에 구성할 수 있는 모든 커널 매개변수를 표시합니다.
  2. sysctl -a
  3. 샘플 명령은 파라메터 값을 변경하여 커널 매개변수의 기본값을 재정의하는 /etc/sysctl.conf 파일에 기록합니다. 변경 사항은 재시작할 필요 없이 즉시 영구적으로 적용됩니다.
  4.  sysctl -w <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE> >> /etc/sysctl.conf
Note

커널 파라미터를 영구적으로 수정하려면 /etc/sysctl.d/ 디렉토리에 있는 구성 파일을 수동으로 변경할 수도 있습니다.

 

etc/sysctl.d/의 구성 파일을 사용하여 커널 매개변수 조정하기

커널 파라미터를 영구적으로 설정하려면 /etc/sysctl.d/ 디렉터리에 있는 구성 파일을 수동으로 수정할 수 있습니다.

 

필요한 것

  • Root 권한

변경 절차

  1. /etc/sysctl.d/ 디렉토리에 신규 conf 파일을 생성합니다.
  2. 기본적으로 ubuntu에 /etc/sysctl.d/ 디렉토리에 존재하는 파일은 다음과 같습니다.
    root:/etc/mysql# ls /etc/sysctl.d/
    10-console-messages.conf 10-kernel-hardening.conf 10-network-security.conf 10-zeropage.conf README.sysctl
    10-ipv6-privacy.conf 10-magic-sysrq.conf 10-ptrace.conf 99-sysctl.conf
    # vim /etc/sysctl.d/<some_file.conf>
  3. 한 라인에 하나씩 커널 파라메터를 입력합니다.
  4. <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
    <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
  5. conf 파일을 저장합니다.
  6. 시스템을 reboot 합니다.
    • reboot을 하지 않고 적용하기 위해서는 아래 명령을 수행할 수 있습니다.
      아래 명령을 사용하면 이전에 만든 구성 파일에서 값을 읽을 수 있습니다.
    • # sysctl -p /etc/sysctl.d/<some_file.conf>

proc/sys/를 통해 임시로 커널 파라미터 구성하기

proc/sys/ 가상 파일 시스템 디렉토리에 있는 파일을 통해 커널 파라미터를 임시로 설정할 수 있습니다.

필요한 것

  • Root 권한

변경 절차

  1. 구성하려는 커널 파라미터를 식별합니다.
    명령이 반환하는 쓰기 가능한 파일을 사용하여 커널을 구성할 수 있습니다. 읽기 전용 권한이 있는 파일은 변경이 되지 않고 정보만 제공합니다.
  2. # ls -l /proc/sys/<TUNABLE_CLASS>/
    
    root@:/etc/mysql# ls -l /proc/sys/net/ipv4/*retries*
    -rw-r--r-- 1 root root 0  1월  5 11:02 /proc/sys/net/ipv4/tcp_orphan_retries
    -rw-r--r-- 1 root root 0  1월  5 11:02 /proc/sys/net/ipv4/tcp_retries1
    -rw-r--r-- 1 root root 0  1월  5 11:02 /proc/sys/net/ipv4/tcp_retries2
    -rw-r--r-- 1 root root 0  1월  5 11:02 /proc/sys/net/ipv4/tcp_syn_retries
    -rw-r--r-- 1 root root 0  1월  5 11:02 /proc/sys/net/ipv4/tcp_synack_retries
    
    
    -r--r--r-- 1 root root 0  1월  5 11:02 tcp_available_congestion_control
  3. 커널 매개변수에 목표 값을 할당합니다.
  4. 아래 명령은 시스템을 다시 시작하면 사라지는 구성 변경을 수행합니다.
    # echo <TARGET_VALUE> > /proc/sys/<TUNABLE_CLASS>/<PARAMETER>
  5. 새로 설정한 커널 매개변수의 값을 확인하려면 아래 명령을 수행합니다.
    # cat /proc/sys/<TUNABLE_CLASS>/<PARAMETER>

 

참고:
Chapter 5. Configuring kernel parameters at runtime Red Hat Enterprise Linux 8 | Red Hat Customer Portal
facebook twitter kakaoTalk kakaostory naver band shareLink