시스템 설정 구성

시스템 설정 구성

이 장에서는 시스템의 구성 설정을 변경하는 데 사용할 수 있는 파일 및 가상 파일 시스템에 대해 설명합니다.

/etc/sysconfig 디렉터리

/etc/sysconfig 디렉터리에는 시스템 구성을 제어하는 파일이 포함되어 있습니다. 이 디렉터리의 내용은 시스템에 설치한 패키지에 따라 다릅니다.

/etc/sysconfig 디렉터리에서 찾을 수 있는 특정 파일은 다음과 같습니다.

  • atd atd 데몬에 대한 커맨드라인 파라메터를 지정합니다.

  • crond 부팅 시 crond 데몬에 파라메터를 전달합니다.

  • chronyd 부팅 시 NTP 서비스에 사용되는 chronyd 데몬에 파라메터를 전달합니다.

  • firewalld 부팅 시 방화벽 데몬(firewalld)에 파라메터를 전달합니다.

  • named 부팅 시 이름(name) 서비스 데몬에 파라메터를 전달합니다. named 데몬몬 BIND(Berkeley Internet Name Domain) 배포의 일부인 DNS(Domain Name System) 서버입니다. 이 서버는 호스트 이름을 네트워크의 IP 주소와 연결하는 테이블을 유지 관리합니다.

  • samba Windows 클라이언트에 대한 파일 공유 연결, NetBIOS-over-IP 이름(name) 지정 서비스 및 도메인 컨트롤러에 대한 연결 관리를 지원하기 위해 부팅 시 smbd, nmbdwinbindd 데몬에 파라메터를 전달합니다.

  • selinux 시스템의 SELinux 상태를 제어합니다. 이 파일은 /etc/selinux/config에 대한 심볼릭 링크입니다.

  • snapper snapper 유틸리티의 목록을 정의합니다.

  • sysstat sysstat sar와 같은 시스템 활동 데이터 수집기 유틸리티들에 대한 로깅 파라메터를 설정합니다.

더 많은 정보는 /usr/share/doc/initscripts*/sysconfig.txt 파일을 참조 하십시오.

/proc 가상 파일시스템

/proc 디렉터리 계층 구조의 파일에는 시스템 하드웨어 및 시스템에서 실행 중인 프로세스에 대한 정보가 포함되어 있습니다. 쓰기 권한이 있는 특정 파일에 기록하여 커널 구성을 변경할 수 있습니다.

/proc 디렉터리 아래에 있는 파일은 기본 데이터 구조 및 시스템 정보에 대한 탐색 가능한 보기를 제공하기 위해 커널이 요청 시 생성하는 가상 파일입니다. 따라서 /proc은 가상 파일 시스템의 예입니다. 대부분의 가상 파일은 크기가 0바이트로 표시되지만, 볼 때 많은 양의 정보가 포함되어 있습니다.

/proc/interrupts, /proc/meminfo, /proc/mounts/proc/partitions와 같은 가상 파일은 시스템 하드웨어에 대한 보기를 제공합니다. /proc/filesystems/proc/sys 아래의 파일과 같은 다른 파일은 시스템 구성에 대한 정보를 제공하고 필요에 따라 구성을 변경할 수 있습니다.

관련 항목에 대한 정보가 포함된 파일은 가상 디렉터리로 그룹화됩니다. 시스템에서 실행 중인 각 프로세스에 대한 별도의 디렉터리가 /proc 디렉터리에 존재합니다. 디렉터리 이름은 숫자로 된 프로세스 ID에 해당합니다. 예를 들어 /proc/1은 PID가 1인 systemd 프로세스에 해당합니다.

가상 파일을 검사하려면 다음 예와 같이 cat, less, view와 같은 명령을 사용할 수 있습니다.

$ cat /proc/cpuinfo

processor         : 0
vendor_id         : GenuineIntel
cpu family        : 6
model             : 42
model name        : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
stepping          : 7
cpu MHz           : 2393.714
cache size        : 6144 KB
physical id       : 0
siblings          : 2
core id           : 0
cpu cores         : 2
apicid            : 0
initial apicid    : 0
fpu               : yes
fpu_exception     : yes
cpuid level       : 5
wp                : yes
...

사람이 읽을 수 없는 콘텐츠가 포함된 파일의 경우 lspci, free, topsysctl과 같은 유틸리티를 사용하여 정보에 액세스할 수 있습니다. 예를 들어, lspci 명령은 시스템의 PCI 장치를 나열합니다.

$sudo lspci

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0b.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]
        (rev 02)
...

/proc 하위의 가상 파일 및 디렉터리

다음 표에서는 /proc 디렉터리 계층 구조 아래에서 가장 유용한 가상 파일과 디렉터리를 설명합니다.

foo
baz

가상 파일과 디렉터리 설명
PID (Directory) 프로세스 ID (PID)를 사용하여 프로세스에 대한 정보를 제공합니다. 디렉터리의 소유자 및 그룹은 프로세스의 소유자 및 그룹과 동일합니다. 디렉터리 아래의 유용한 파일은 다음과 같습니다.
- cmdline 커맨드 경로
- cwd 프로세스의 현재 작업 디렉터리에 대한 심볼릭 링크입니다.
- environ 환경 변수
- exe 명령 실행 파일에 대한 심볼릭 링크입니다.
- fd/_N_ File descriptors.
- maps 메모리는 실행 파일 및 라이브러리 파일에 매핑됩니다.
- root 프로세스의 유효 루트 디렉터리에 대한 기호 링크입니다.
- stack 커널 스택의 내용입니다.
buddyinfo 메모리 단편화 진단을 위한 정보를 제공합니다.
bus (directory) 시스템에서 사용할 수 있는 다양한 버스(예: pciusb)에 대한 정보가 포함되어 있습니다. lspci, lspcmcia, lsusb와 같은 명령을 사용하여 해당 장치에 대한 정보를 표시할 수 있습니다.
cgroups 시스템에서 사용 중인 리소스 제어 그룹에 대한 정보를 제공합니다.
cmdline 부팅 시 커널에 전달된 파라메터를 나열합니다.
cpuinfo 시스템의 CPU에 대한 정보를 제공합니다.
crypto 설치된 모든 암호화 기법에 대한 정보를 제공합니다.
devices 현재 구성된 모든 문자와 블록 장치의 이름과 주요 장치 번호를 나열합니다.
dma 현재 사용 중인 직접 메모리 액세스(DMA) 채널을 나열합니다.
driver (directory) 비휘발성 RAM(nvram), 실시간 시계(rtc) 및 사운드용 메모리 할당(snd-page-alloc)과 같이 커널에서 사용하는 드라이버에 대한 정보가 포함되어 있습니다.
execdomains NAVIX 커널이 지원하는 바이너리의 실행 도메인을 나열합니다.
filesystems 커널이 지원하는 파일 시스템 유형을 나열합니다. nodev로 표시된 항목은 사용되지 않습니다.
fs (directory) 파일 시스템 유형별로 구성된 마운트된 파일 시스템에 대한 정보를 포함합니다.
interrupts 시스템 시작 후 각 CPU에 대한 인터럽트 요청 큐(IRQ)당 인터럽트 수를 기록합니다.
iomem 각 물리적 장치에 대한 시스템 메모리 맵을 나열합니다.
ioports 커널이 장치와 함께 사용하는 I/O 포트 주소 범위를 나열합니다.
irq (directory) 각 IRQ에 대한 정보를 포함합니다. 각 IRQ와 시스템의 CPU 간의 선호도(affinity)를 구성할 수 있습니다.
kcore crash 또는 gdb와 같은 디버거를 사용하여 검사할 수 있는 core 파일 형식으로 시스템의 물리적 메모리를 제공합니다. 이 파일은 사람이 읽을 수 없습니다.
kmsg 커널이 생성한 메시시를 기록하며, dmesg와 같은 프로그램에서 kmsg를 채용합니다.
loadavg 지난 1분, 5분, 15분 동안의 시스템 부하 평균(대기 중인 프로세스 수), 실행 중인 프로세스 수, 총 프로세스 수, 실행 중인 프로세스의 PID를 표시합니다.
locks 프로세스를 대신하여 커널이 현재 보유하고 있는 파일 잠금에 대한 정보를 표시합니다. 제공되는 정보는 다음과 같습니다:
- lock class (FLOCK or POSIX)
- lock type (ADVISORY or MANDATORY)
- access type (READ or WRITE)
- process ID
- major device, minor device, and inode numbers
- bounds of the locked region
mdstat 다중 디스크 RAID 장치에 대한 정보를 나열합니다.
meminfo free 또는 top 명령을 사용하여 사용할 수 있는 것보다 더 자세한 시스템의 메모리 사용량을 보고합니다.
modules 현재 커널에 로드된 모듈에 대한 정보를 표시합니다. lsmod 명령은 모듈의 커널 메모리 오프셋을 제외하고 동일한 정보를 형식화하고 표시합니다.
mounts 마운트된 모든 파일 시스템에 대한 정보를 나열합니다.
net (directory) 네트워킹 프로토콜, 파라메터 및 통계에 대한 정보를 제공합니다. 각 디렉터리와 가상 파일은 시스템 네트워크 구성의 측면을 설명합니다.
partitions major 및 minor 장치의 번호, 블록 수, 시스템에 의해 마운트된 파티션 이름을 나열합니다.
scsi/device_info SCSI 장치들의 정보를 제공합니다.
scsi/scsi and scsi/sg/* 공급업체, 모델, 채널, ID 및 LUN 데이터를 포함하여 구성된 SCSI 장치에 대한 정보를 제공합니다.
self /proc을 검사하는 프로세스에 대한 심볼릭 링크입니다.
slabinfo slab 메모리 사용량에 대한 자세한 정보를 제공합니다.
softirqs 소프트웨어 인터럽트(softirqs)에 대한 정보를 표시합니다. softirq는 하드웨어 인터럽트(hardirq)와 유사하며 하드웨어 인터럽트 중에 너무 오래 걸리는 비동기 처리를 수행하도록 커널을 구성합니다.
stat 다음을 포함하여 시스템 시작 시부터 시스템에 대한 정보를 기록합니다.
- cpu
- cpu_N_ Times for CPU N.
swaps 스왑 장치에 대한 정보를 제공합니다. 크기 및 사용량 단위는 킬로바이트입니다.
sys (directory) 시스템에 대한 정보를 제공하고 커널 기능을 활성화, 비활성화 또는 수정할 수도 있습니다. 쓰기 권한이 있는 모든 파일에 새 설정을 쓸 수 있습니다. 참조: 커널 파라메터 수정.
/proc/sys의 다음 하위 디렉터리 계층에는 가상 파일이 포함되어 있으며 그 중 일부 값은 변경할 수 있습니다.:
- dev Device parameters.
- fs File system parameters.
- kernel
- net Networking parameters.
sysvipc (directory) 메시지(msg), 세마포어(sem) 및 공유 메모리(shm)에 대한 System V IPC(Interprocess Communication) 리소스 사용에 대한 정보를 제공합니다.
tty (directory) 시스템에서 사용 가능하고 현재 사용되는 터미널 장치에 대한 정보를 제공합니다. driver 가상 파일에는 현재 구성된 장치가 나열됩니다.
vmstat 가상 메모리 사용량에 대한 정보를 제공합니다.

For more information, see the proc(5) manual page.

커널 파라메터 수정

/proc 아래, 특히 /proc/sys 아래의 일부 가상 파일은 쓰기 가능합니다. 이 파일을 통해 커널의 설정을 조정할 수 있습니다. 예를 들어 호스트 이름을 변경하려면 /proc/sys/kernel/hostname 파일을 다음과 같이 수정합니다.:

echo www.mydomain.com > /proc/sys/kernel/hostname

예를 들어 IP 포워딩 세팅의 경우 /proc/sys/net/ipv4/ip_forward에 정의합니다.:

cat /proc/sys/net/ipv4/ip_forward
0
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
1

sysctl 명령을 사용하여 /proc/sys 디렉터리 아래의 값을 보거나 수정할 수 있습니다.

ℹ️

Note:

root 유저 마저도 /proc 아래 가상 파일 항목의 파일 액세스 권한을 우회할 수 없습니다.
예를 들어 /proc/partitions와 같은 읽기 전용 항목의 값을 변경할 경우 write() 시스템 호출을 서비스하는 커널 코드가 존재하지 않기 때문에 변경할 수 없습니다.

현재 커널 설정을 표시하려면 다음 명령을 사용하십시오.:

sysctl -a

kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 2000000
kernel.sched_latency_ns = 10000000
kernel.sched_wakeup_granularity_ns = 2000000
kernel.sched_shares_ratelimit = 500000
...

Note:

설정 이름의 구분 문자는 net.ipv4.ip_forward와 같이 /proc/sys에 대한 상대 경로에서 슬래시 (/)가 아닌 마침표 (.)입니다. 이 설정은 net/ipv4/ip_forward를 나타냅니다. 또 다른 예로 kernel.msgmaxkernel/msgmax를 나타냅니다.

개별 설정을 표시하려면 sysctl에 대한 인수로 해당 이름을 지정하십시오.

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

설정 값을 변경하려면 다음 명령 형식을 사용하십시오.:

sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

이러한 방식으로 변경한 사항은 시스템이 재부팅될 때까지만 적용됩니다. 시스템을 재부팅한 후에도 구성 변경 사항을 유지하려면 구성 파일로 /etc/sysctl.d 디렉터리에 추가해야 합니다. 이 디렉터리의 파일에 대한 모든 변경 사항은 시스템을 재부팅하거나 sysctl --system 명령을 실행하면 적용됩니다.

echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/ip_forward.conf
grep -r ip_forward /etc/sysctl.d
/etc/sysctl.d/ip_forward.conf:net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward

net.ipv4.ip_forward = 0
sysctl --system

* Applying /usr/lib/sysctl.d/00-system.conf ...
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.d/ip_forward.conf ...
net.ipv4.ip_forward = 1
* Applying /etc/sysctl.conf ...
sysctl net.ipv4.ip_forward

net.ipv4.ip_forward = 1

자세한 내용은 sysctl(8)sysctl.d(5) 매뉴얼 페이지를 참조하세요.

시스템 성능을 제어하는 ​​파라메터

다음 파라메터는 시스템 성능의 다양한 측면을 제어합니다.

  • fs.file-max

    모든 프로세스에 대해 열린 파일의 최대 수를 지정합니다. 파일 핸들 부족에 대한 메시지가 표시되면 이 파라메터의 값을 늘리십시오.

  • net.core.netdev_max_backlog

    인터페이스가 커널이 처리할 수 있는 것보다 더 빠른 속도로 패킷을 수신하는 경우 사용되는 수신자 백로그 대기열의 크기를 지정합니다. 이 대기열이 너무 작으면 네트워크가 아닌 수신자에서 패킷이 손실됩니다.

  • net.core.rmem_max

    최대 읽기 소켓 버퍼 크기를 지정합니다. 네트워크 패킷 손실을 최소화하려면 이 버퍼가 들어오는 네트워크 패킷을 처리할 수 있을 만큼 커야 합니다.

  • net.core.wmem_max

    최대 쓰기 소켓 버퍼 크기를 지정합니다. 네트워크 패킷 손실을 최소화하려면 이 버퍼가 나가는 네트워크 패킷을 처리할 수 있을 만큼 커야 합니다.

  • net.ipv4.tcp_available_congestion_control

    사용할 수 있는 TCP 혼잡 회피 알고리즘을 표시합니다. htcp 알고리즘을 구현하기 위해 tcp_htcp와 같은 추가 모듈을 로드해야 하는 경우 modprobe 명령을 사용하세요.

  • net.ipv4.tcp_congestion_control

    어떤 TCP 혼잡 회피 알고리즘이 사용되는지 지정합니다.

  • net.ipv4.tcp_max_syn_backlog

    Specifies the number of outstanding SYN requests that are allowed. 합법적인 연결 시도로 인해 서버가 과부하되어 synflood 경고 로그가 표시되는 경우 이 파라메터의 값을 늘리십시오.

  • net.ipv4.tcp_rmem

    TCP 소켓에 사용되는 최소, 기본 및 최대 수신 버퍼 크기를 지정합니다. 최대값은 net.core.rmem_max보다 클 수 없습니다.

  • net.ipv4.tcp_wmem

    TCP 소켓에 사용되는 최소, 기본 및 최대 전송 버퍼 크기를 지정합니다. 최대값은 net.core.wmem_max보다 클 수 없습니다.

  • vm.swappiness

    커널이 시스템 페이지 캐시에서 페이지를 삭제하는 대신 스왑을 위해 로드된 페이지를 사용할 가능성을 지정합니다. 0으로 설정하면 메모리 부족 상태를 방지하기 위해서만 스와핑이 발생합니다. 100으로 설정하면 커널이 적극적으로 스왑됩니다. 데스크탑 시스템의 경우 낮은 값을 설정하면 대기 시간이 줄어들어 시스템 응답성이 향상될 수 있습니다. 기본값은 60입니다.

    :

    This parameter is intended for use with laptop computers to reduce power consumption by the hard disk. Do not adjust this value on server systems.

커널 패닉을 제어하는 ​​파라메터

다음 파라메터는 커널 패닉이 발생할 수 있는 상황을 제어합니다.:

  • kernel.hung_task_panic

    1로 설정된 경우, 커널 또는 사용자 스레드가 kernel.hung_task_timeout_secs 초 이상 TASK_UNINTERRUPTIBLE 상태(D 상태)에서 휴면하면 커널 패닉이 발생합니다. I/O가 완료되기를 기다리는 동안 프로세스는 D 상태로 유지됩니다. 이 상태에서는 프로세스를 중지하거나 중단할 수 없습니다.

    기본값은 0이며 패닉을 비활성화합니다.

ℹ️
Tip:
중단된 스레드를 진단하려면 커널 및 사용자 스레드 모두에 대한 커널 스택을 표시하는 /proc/*PID*/stack을 검사할 수 있습니다.
  • kernel.hung_task_timeout_secs

    kernel.hung_task_panic 값이 1인 경우 경고 메시지가 생성되거나 커널 패닉이 발생하기 전에 사용자 또는 커널 스레드가 D 상태에 머무를 수 있는 기간을 지정합니다. 기본값은 120초입니다. 값이 0이면 시간 초과가 비활성화됩니다.

  • kernel.nmi_watchdog

    1(기본값)으로 설정하면 커널에서 마스크 불가능한 인터럽트(NMI) 감시 스레드를 활성화합니다. NMI 스위치나 OProfile 시스템 프로파일러를 사용하여 정의되지 않은 NMI를 생성하려면 kernel.nmi_watchdog 값을 0으로 설정하십시오.

  • kernel.panic

    패닉이 발생한 후 시스템이 자동으로 재부팅되기 전까지의 시간(초)을 지정합니다.

    값이 기본값인 0이면 시스템이 일시 중지되며 문제 해결을 위해 패닉에 대한 자세한 정보를 수집할 수 있습니다.

    자동 재부팅을 활성화하려면 0이 아닌 값을 설정하십시오. 메모리 이미지 (vmcore)가 필요한 경우 Kdump가 이 이미지를 생성할 수 있도록 충분한 시간을 두십시오. 제안된 값은 30초이지만 대형 시스템에는 더 긴 시간이 필요합니다.

  • kernel.panic_on_io_nmi

    0(기본값)으로 설정된 경우 커널이 일반적으로 수정할 수 없는 하드웨어 오류를 나타내는 I/O channel check(IOCHK) NMI를 감지하면 시스템은 패닉 발생을 유발하지 않고 작업을 계속하려고 시도합니다. 1로 설정하면 시스템 패닉이 발생합니다.

  • kernel.panic_on_oops

    0으로 설정하면 커널이 oops 또는 BUG 조건을 감지하면 시스템이 작업을 계속하려고 시도합니다. 1(기본값)로 설정하면 시스템은 패닉이 발생하기 전에 커널 로그 데몬 klogdoops 출력을 기록할 시간을 제공하기 위해 몇 초를 지연합니다.

    OCFS2 클러스터에서. 커널 오류가 발생할 경우 시스템이 패닉이 발생하도록 지정하려면 값을 1로 설정합니다. 클러스터 작업에 필요한 커널 스레드가 실패하면 시스템이 자체적으로 재설정되어야 합니다. 그렇지 않으면 다른 노드가 노드의 응답 속도가 느리거나 응답할 수 없는지 여부를 감지하지 못해 클러스터 작업이 중단될 수 있습니다.

  • kernel.panic_on_unrecovered_nmi

    0(기본값)으로 설정된 경우 커널이 일반적으로 수정할 수 없는 패리티 또는 ECC 메모리 오류를 나타내는 NMI를 감지하면 시스템은 작업을 계속하려고 시도합니다. 1로 설정하면 시스템 패닉이 발생합니다.

  • kernel.softlockup_panic

    0(기본값)으로 설정된 경우 커널이 NMI 감시 스레드가 kernel.watchdog_thresh 값의 두 배 이상 타임스탬프를 업데이트하지 못하도록 하는 soft-lockup 오류를 감지하면 시스템은 작업을 계속하려고 시도합니다. 1로 설정하면 시스템 패닉이 발생합니다.

  • kernel.unknown_nmi_panic

    1로 설정하면 커널이 정의되지 않은 NMI를 감지하면 시스템 패닉이 발생합니다. 일반적으로 NMI 스위치를 수동으로 눌러 정의되지 않은 NMI를 생성합니다. NMI watchdog 스레드도 정의되지 않은 NMI를 사용하므로 kernel.nmi_watchdog을 1로 설정한 경우 kernel.unknown_nmi_panic 값을 0으로 설정합니다.

  • kernel.watchdog_thresh

    커널이 hard-lockupsoft-lockup 오류를 확인하는 데 사용하는 NMI 성능 모니터링 인터럽트 생성 사이의 간격을 지정합니다. CPU가 kernel.watchdog_thresh 초 이상 인터럽트에 응답하지 않으면 하드 잠금 오류가 발생한다고 가정합니다. 기본값은 10초입니다. 값이 0이면 잠금 오류 감지가 비활성화됩니다.

  • vm.panic_on_oom

    0(기본값)으로 설정하면 커널의 OOM-killer가 전체 태스크 목록을 검색하고 메모리를 많이 차지하는 프로세스를 중지하여 패닉을 방지합니다. 1로 설정하면 커널이 패닉 상태가 되지만 특정 조건에서는 살아남을 수 있습니다. 프로세스가 메모리 정책이나 CPUset을 사용하여 특정 노드에 대한 할당을 제한하고 해당 노드가 메모리 소진 상태에 도달하면 OOM-killer는 하나의 프로세스를 중지할 수 있습니다. 이 경우 다른 노드의 메모리가 비어 있고 시스템 전체에 아직 메모리가 부족하지 않을 수 있으므로 패닉이 발생하지 않습니다. 2로 설정하면 OOM 조건이 발생할 때 커널이 항상 패닉 상태가 됩니다. 1과 2 설정은 정의된 장애 조치 정책에 따라 클러스터에 사용하기 위한 것입니다.

/sys 가상 파일 시스템

커널은 /proc 파일 시스템 외에도 /sys 가상 파일 시스템(sysfs)으로 정보를 내보냅니다. 동적 장치 관리자(udev)와 같은 프로그램은 /sys를 사용하여 장치 및 장치 드라이버 정보에 액세스합니다.

ℹ️

Note:

/sys는 커널 데이터 구조와 제어 지점을 나타냅니다. 따라서 /sys에 사용된 find 명령은 절대 멈추지 않을 수 있습니다.

/sys 디렉터리 아래의 가상 디렉터리

다음 표에서는 /sys 디렉터리 계층 구조 아래에 있는 몇 가지 유용한 가상 디렉터리에 대해 설명합니다.

가상 디렉터리 설명
block 블록 장치에 대한 하위 디렉터리를 포함합니다. 예를 들어: /sys/block/sda.
bus pci, pcmcia, scsi 또는 usb와 같은 각 물리적 버스 유형에 대한 하위 디렉터리를 포함합니다. 각 버스 유형 아래의 devices 디렉터리에는 검색된 장치가 나열되고, drivers 디렉터리에는 각 장치 드라이버에 대한 디렉터리가 포함됩니다.
class 커널에 등록된 모든 장치 클래스에 대한 하위 디렉터리를 포함합니다.
dev char/block/ 디렉터리를 포함합니다. 이 두 디렉터리 안에는 major:_minor_라는 심볼릭 링크가 있습니다. 이러한 심볼릭 링크는 특정 장치의 sysfs 디렉터리를 가리킵니다. /sys/dev 디렉터리는 stat(2) 작업의 결과에서 장치의 sysfs 인터페이스를 찾는 빠른 방법을 제공합니다.
devices 시스템에 있는 모든 장치의 전역 장치 계층 구조를 포함합니다. 플랫폼 디렉터리에는 특정 플랫폼에 특정한 장치 컨트롤러와 같은 주변 장치가 포함되어 있습니다. system 디렉터리에는 CPU 및 APIC와 같은 비주변 장치가 포함되어 있습니다. virtual 디렉터리에는 가상 장치와 pseudo 장치가 포함되어 있습니다. 시스템 장치 관리를 참조하세요.
firmware 펌웨어 개체에 대한 하위 디렉터리가 포함되어 있습니다.
fs 파일시스템 개체에 대한 하위 디렉터리를 포함합니다.
kernel 커널 개체에 대한 하위 디렉터리를 포함합니다.
module 커널에 로드된 각 모듈의 하위 디렉터리를 포함합니다. 로드된 모듈의 일부 파라메터 값을 변경할 수 있습니다. 참조: 모듈 매개변수
power 시스템의 전원 상태를 제어하는 ​​속성을 포함합니다.

For more information, see https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt.

시스템 날짜 및 시간 설정 구성

시스템 시간은 1970년 1월 1일 목요일 00:00:00 UTC로부터 시간이 경과한 초수로 측정되는 POSIX 시간 표준을 기반으로 합니다. 하루는 86400초로 정의되고 윤초는 자동으로 차감됩니다.

시스템의 날짜 및 시간 표현은 특정 시간대와 일치하도록 설정할 수 있습니다. 사용 가능한 시간대를 나열하려면 다음을 실행하세요.

timedatectl list-timezones

사용 가능한 시간대에서 반환된 값과 일치하도록 시스템 시간대를 설정하려면 다음을 실행할 수 있습니다.

timedatectl set-timezone America/Los_Angeles

America/Los_Angeles 를 유효한 시간대 항목으로 대체하세요.

이 명령은 /etc/localtime의 심볼릭 링크를 설정하여 /usr/share/zoneinfo/에 있는 적절한 영역 정보 파일을 가리킵니다. 설정은 즉시 적용됩니다. 현재 시스템 시간대를 감지하기 위해 /etc/localtime을 사용하는 일부 장기 실행 프로세스는 프로세스가 다시 시작될 때까지 시스템 시간대의 변경 사항을 감지하지 못할 수 있습니다.

시간대는 표시 목적이나 사용자 입력 처리를 위해 주로 사용됩니다. 시간대를 변경해도 시스템 시계의 시간은 변경되지 않습니다. TZ 환경 변수를 설정하여 모든 콘솔에서 시스템 시간에 대한 표시를 변경할 수 있습니다. 예를 들어 도쿄의 현재 시간을 보려면 다음을 실행하면 됩니다.

TZ="Asia/Tokyo" 
date

timedatectl 명령을 실행하여 시스템의 현재 날짜 및 시간 구성을 확인할 수 있습니다.

$ timedatectl
               Local time: Wed 2021-07-17 00:50:58 EDT                                                                                                                                                                                                     
           Universal time: Wed 2021-07-17 04:50:58 UTC                                                                                                                                                                                                     
                 RTC time: Wed 2021-07-17 04:50:55                                                                                                                                                                                                         
                Time zone: America/New_York (EDT, -0400)                                                                                                                                                                                                   
System clock synchronized: yes                                                                                                                                                                                                                             
              NTP service: active                                                                                                                                                                                                                          
          RTC in local TZ: no                              

시스템 시간을 수동으로 설정하려면 timedatectl set-time 명령을 사용하세요.

timedatectl set-time "2021-07-17 01:59:59"

이 명령은 현재 설정된 시스템 시간대를 가정하여 지정된 시간을 기준으로 현재 시스템 시간을 설정합니다. 이 명령은 시스템 실시간 시계(RTC)도 업데이트합니다.

보다 정확한 시간 유지를 위해 네트워크 시간 동기화를 사용하도록 시스템을 구성하는 것을 고려하십시오. 특히 고가용성을 설정하거나 네트워크 기반 파일 시스템을 사용할 때 네트워크 시간 동기화를 사용하는 것이 중요합니다.

NTP 서비스를 구성하는 경우 다음 명령을 실행하여 NTP를 활성화합니다.

timedatectl set-ntp true

이 명령은 가능한 경우 chronyd 서비스를 활성화하고 시작합니다.

Watchdog 서비스 구성

Watchdog은 백그라운드에서 실행되어 호스트 가용성과 프로세스를 모니터링하고 커널에 다시 보고하는 NAVIX 서비스입니다. Watchdog 서비스가 시스템이 정상임을 커널에 알리지 못하는 경우 일반적으로 커널은 시스템을 자동으로 재부팅합니다.

Watchdog 패키지를 설치하려면 다음을 실행하세요.

sudo dnf install watchdog

Watchdog 서비스를 구성하려면 /etc/watchdog.conf 파일을 편집하세요. watchdog.conf 파일에는 모든 Watchdog 구성 속성이 포함되어 있습니다. 이 파일을 편집하는 방법에 대한 자세한 내용은 watchdog.conf(5) 매뉴얼 페이지를 참조하세요.

Watchdog 서비스를 활성화하고 시작하려면 다음을 실행합니다.

sudo systemctl enable --now watchdog

Watchdog 서비스는 즉시 시작되어 백그라운드에서 실행됩니다.

ℹ️
Note:
Watchdog 서비스는 재부팅 후 즉시 시작되고 실행됩니다.