공유할 서비스 선택

TECH


TECH

OS Kernel parameter 가 총 몇개 인가요? 왜 매번 다르죠? #RHEL9.7 #kernel #boot

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 90회 좋아요 1회 작성일 25-11-29 23:58

본문

안녕하세요 이제 겨울이네요. 

 

오늘은 고객으로 부터 온 질문을 정리해드리려고합니다. 

 

질문) 왜 서버마다 커널파라미터값이 조금씩 다릅니다. 왜 그런가요?

      그리고 추가된 최신 커널 파라미터값을 알려주세요~

 

 

- 리눅스 커널 파라미터는 크게 적용 시점과 관리 방식에 따라 2가지 계열로 나눕니다.

 

1. Boot-time Kernel Parameters

 

✔ 커널 부팅 시(boot loader 단계) 적용

✔ OS가 올라오기 전에 커널 행동을 변경

✔ 수정 방법: /etc/default/grub → GRUB_CMDLINE_LINUX에 추가 → grub2-mkconfig

  

카테고리설명예시
하드웨어/드라이버 제어특정 장치 활성화/비활성화, 드라이버 옵션nouveau.modeset=0, intel_iommu=on/off
메모리/NUMA 제어메모리 사이즈 제한, hugepage, numa 정책mem=32G, hugepages=128, numa=off
콘솔/로그 설정커널 메시지 출력, serial, quiet 등console=ttyS0,115200n8, quiet, loglevel=7
파일시스템 제어부팅 FS 마운트 옵션, debug, integrityrootflags=, fsck.mode=force
보안/커널 보호커널 보안 기능 제어selinux=1/0, apparmor=1/0, efi=disable_early_pci_dma
커널 기능 스위치부팅 단계에서 서브시스템 활성화cgroup_enable=memory, systemd.unified_cgroup_hierarchy=1
Crash/Debug 설정kdump/crashkernel/디버깅crashkernel=1G-4G:192M,4G-64G:256M
네트워크 초기화early TCP, ip 설정 등ip=dhcp, ipv6.disable=1

2. Sysctl Parameters (/proc → sysctl 관리)

✔ OS 운영 중 적용 가능 (런타임 tuning)
✔ /proc/sys/... 값을 변경하거나 sysctl 명령으로 적용
✔ 설정 파일: /etc/sysctl.conf, /etc/sysctl.d/*.conf

카테고리 설명 경로 Prefix 예시
네트워크 스택(TCP/IP)연결/버퍼/타임아웃/보호net.ipv4, net.ipv6, net.corenet.ipv4.tcp_max_syn_backlog, net.core.rmem_max
커널 일반 동작panic, pid, hostname, core dump 등kernel.kernel.panic=10, kernel.core_pattern
가상메모리/Swap 제어메모리 reclaim, dirty cache, swappinessvm.vm.swappiness=10, vm.dirty_ratio
파일시스템inode/dentry/cache, nfs, xfs, ext4 옵션fs.fs.file-max, fs.inotify.max_user_watches
사용자 리소스 제한최대 프로세스/FD/메모리 핸들kernel., fs.kernel.threads-max, fs.nr_open
cgroup/컨테이너cgroup 기능 동작 tuninguser. net. 등user.max_user_namespaces
보안/HardeningASLR, ptrace, unprivileged namespace 등kernel. user.kernel.kptr_restrict, kernel.yama.ptrace_scope
디스크/IO 세팅I/O 스케줄러 parameterblock. kernel.kernel.sched_latency_ns
스케줄러/프로세스 관리CFS, RT, task scheduling kernel.sched_* kernel.sched_min_granularity_ns

 

 

요약

 

  • Boot 파라미터: GRUB에서 수정, 초기 동작/하드웨어 제어

  • Sysctl: /proc 기반 runtime tuning, 네트워크/메모리/limits


여기까지 기본 설명이고 추가 설명을 드리고자 합니다. 

- 제가 RHEL9.7를 신규 설치해봤습니다. 

- 설치 파일을 보면 아래와 같이 패키지를 설치했습니다. 
# cat anaconda-ks.cfg
%packages
@^graphical-server-environment
@debugging
@development
@system-tools


- 부팅 후 커널 파라미터를 확인해봤습니다. 
[root@RHEL97 ~]# sysctl -a | wc -l
1021

총 1021개로 나옵니다. 하지만, firewalld를 중지-> disable -> reboot 후에 확인해보니 967개로 줄어들었습니다. 

[root@RHEL97 ~]# systemctl stop firewalld.service
[root@RHEL97 ~]# systemctl disable firewalld.service
[root@RHEL97 ~]# reboot 

[root@RHEL97 ~]# sysctl -a | wc -l
967

> 그럼 무엇이 없어졌는지 확인해보겠습니다. 

- 기존에 내용을 정리해둔 파일을 비교해보겠습니다. 
[root@RHEL97 ~]# diff sysctl_a_en_firewalld sysctl_a_di_firewalld
< net.netfilter.nf_conntrack_acct = 0
< net.netfilter.nf_conntrack_buckets = 65536
< net.netfilter.nf_conntrack_checksum = 1
< net.netfilter.nf_conntrack_count = 3
< net.netfilter.nf_conntrack_dccp_loose = 1
...............
..........
< net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
< net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
< net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
< net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
< net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
< net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
< net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
< net.netfilter.nf_conntrack_timestamp = 0
< net.netfilter.nf_conntrack_udp_timeout = 30
< net.netfilter.nf_conntrack_udp_timeout_stream = 120
< net.netfilter.nf_flowtable_tcp_timeout = 30
< net.netfilter.nf_flowtable_udp_timeout = 30
< net.netfilter.nf_hooks_lwtunnel = 0

firewalld에 관련된 커널파라미터가 있었다가, disable 한후 없어진 상황입니다. 

 

결론, sysctl -a 로 보는 파라미터는 설치된 패키지 그리고 활성화된 서비스등에 따라 파라미터가 생기고 없어집니다. 

그래서 정확하게 OS별 비교를 하려면 패키지 및 서비스가 모두 동일한 상태에서 확인을 해야합니다. 

 

> 두번째로 Boot 파라미터에 대해 알아보겠습니다. 

 

버전에 따라 Boot 파라미터가 변경되는 경우들이 있습니다. 이것은 문서로 정리되어있어서 찾아보기가 매우 쉽습니다. 

 

 

- 아래 경로에 따라 보시면 Boot 파라미터를 확인할수있습니다. 

# cat /usr/share/doc/kernel-doc-5.14.0-611.9.1/Documentation/admin-guide/kernel-parameters.txt

. 사전에 kernel-doc 패키지가 설치되어있어야합니다. 

 

accept_memory=  [MM]

                        Format: { eager | lazy }

                        default: lazy

                        By default, unaccepted memory is accepted lazily to

                        avoid prolonged boot times. The lazy option will add

                        some runtime overhead until all memory is eventually

                        accepted. In most cases the overhead is negligible.

                        For some workloads or for debugging purposes

                        accept_memory=eager can be used to accept all memory

                        at once during boot.

 

        acpi=           [HW,ACPI,X86,ARM64]

                        Advanced Configuration and Power Interface

                        Format: { force | on | off | strict | noirq | rsdt |

                                  copy_dsdt }

                        force -- enable ACPI if default was off

                        on -- enable ACPI but allow fallback to DT [arm64]

                        off -- disable ACPI if default was on

                        noirq -- do not use ACPI for IRQ routing

                        strict -- Be less tolerant of platforms that are not

                                strictly ACPI specification compliant.

                        rsdt -- prefer RSDT over (default) XSDT

                        copy_dsdt -- copy DSDT to memory

                        For ARM64, ONLY "acpi=off", "acpi=on" or "acpi=force"

                        are available

 

                        See also Documentation/power/runtime_pm.rst, pci=noacpi

...................

.............

 

이렇게 볼수있으니 마이너 버전이 바뀌고, 메이저 버전이 바뀌면 이 문서를 비교하여 Boot 파라미터가 어떻게 바뀌었는지 확인할수가 있습니다. 

 

 

혹, 더 궁금한 사항 있으시면 언제든 글 남겨주세요~ 

 

감사합니다. 

 

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
271 OS OSworker 아이디로 검색 전체게시물 12-14 60
보안취약점할때 이젠 Spectre, Meltdown 따로하지 않고 mitigations으로 통합 설정합니다~

카테고리 : OS

60 0
작성자 : OSworker 25/12/14
열람중 OS OSworker 아이디로 검색 전체게시물 11-29 91
열람중
Kernel parameter 가 총 몇개 인가요? 왜 매번 다르죠? #RHEL9.7 #kernel #boot

카테고리 : OS

91 0
작성자 : OSworker 25/11/29
269 OS OSworker 아이디로 검색 전체게시물 11-23 76
문제점 : Messages 로그에 자꾸 과거 로그가 남겨집니다. #rsyslog #RHEL8 #Log

카테고리 : OS

76 0
작성자 : OSworker 25/11/23
268 OS OSworker 아이디로 검색 전체게시물 11-16 81
RHEL 10.1의 새로운 기능: 오프라인 지원, 편리한 AI 가속기 등

카테고리 : OS

81 0
작성자 : OSworker 25/11/16
267 ETC OSworker 아이디로 검색 전체게시물 10-31 100
Red Hat interactive labs 이라고 들어보셨나요? 직접 연습할수있는 사이트?

카테고리 : ETC

100 0
작성자 : OSworker 25/10/31
266 OS OSworker 아이디로 검색 전체게시물 10-26 117
KVM이란 무엇인가요? #VM #가상화

카테고리 : OS

117 0
작성자 : OSworker 25/10/26
265 OS OSworker 아이디로 검색 전체게시물 10-17 111
RHEL7.9 최신 Local Repository 만들기 #reposync #createrepo

카테고리 : OS

111 0
작성자 : OSworker 25/10/17
264 OS OSworker 아이디로 검색 전체게시물 09-28 119
KVM을 사용한 Red Hat Enterprise Linux의 가상화 제한 - RHEL10 포함

카테고리 : OS

119 0
작성자 : OSworker 25/09/28
263 OS OSworker 아이디로 검색 전체게시물 09-21 112
RHEL Lightspeed 를 인터넷없이 사용하기~~!! #RHEL10 #폐쇠망

카테고리 : OS

112 0
작성자 : OSworker 25/09/21
262 OS OSworker 아이디로 검색 전체게시물 09-16 71
Image mode 실습해보기 ~!

카테고리 : OS

71 0
작성자 : OSworker 25/09/16
Total 301건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top