RHCE : 시스템 구성 및 관리 – /proc/sys와 sysctl을 사용하여 커널 런타임 매개 변수 수정 및 설정

(RHCE : System configuration and management – Use /proc/sys and sysctl to modify and set kernel runtime parameters.)

RHCE 주제입니다. CertDepot 사이트를 번역 및 내용 추가하였으며, 컨텐츠 관련 모든 권리는 CertDepot에 있습니다.

시작하기 전에

서버의 성능이나 특성을 향상시키려면, 커널 런타임 파라미터를 설정할 수 있어야 한다.

커널 런타임 파라미터 설정은 다음과 같은 3가지 방법으로 수행이 가능하다.

/proc 파일 시스템

1. 커널 런타임 파라미터 값(여기서는 /proc/sys/net/ipv4/ip_forward가 호스트를 라우터로 작동하도록 하는데 사용된다고 가정한다)을 얻고자 한다면 다음과 같이 입력한다.

[root@server2 /]# cat /proc/sys/net/ipv4/ip_forward 
0
[root@server2 /]# 

2. 앞의 파라미터를 변경하려고 한다면, 다음과 같이 입력한다.

[root@server2 /]# echo 1 > /proc/sys/net/ipv4/ip_forward 
[root@server2 /]# cat /proc/sys/net//ipv4/ip_forward 
1
[root@server2 /]#

sysctl 커맨드

1. sysctl 커맨드를 통해, 사용 가능한 커널 런타임 파라미터와 현재 값에 대해 확인할 수 있다.

[root@server2 /]# sysctl -a | grep vm.swappiness
vm.swappiness = 30
[root@server2 /]# 

2. -w옵션을 통해 커널 런타임 파라미터를 설정할 수 있다.

[root@server2 /]# sysctl -w vm.swappiness=20
vm.swappiness = 20
[root@server2 /]# sysctl -a | grep vm.swappiness
vm.swappiness = 20
[root@server2 /]# 

/etc/sysctl.conf 파일

영구적으로 커널 런타임 파라미터를 저장하려면, /sys/sysctl.conf 파일에 기록하도록 한다.

1. /etc/sysctl.conf 파일을 열어 다음 줄을 붙여넣기 한다.

[root@server2 /]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
[root@server2 /]# sysctl -a | grep ip_forward >> /etc/sysctl.conf
[root@server2 /]# vim /etc/sysctl.conf 
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
# allow IPv4 forwarding
net.ipv4.ip_forward = 1
...
-- 끼워넣기 --                            6,24         모두

2. 변경사항을 적용하려면, 다음과 같이 입력한다.

[root@server2 /]# sysctl -p
net.ipv4.ip_forward = 1
[root@server2 /]# 

3. 많은 커널 런타임 파라미터들이 설정이 가능하다. 여기 예시가 있다.

# don't respond to a ping
net.ipv4.icmp_echo_ignore_all = 1
# don't respond to a ping to the broadcast address
net.ipv4.icmp_echo_ignore_broadcasts = 1
# disable IPv6 for all network interfaces
net.ipv6.conf.all.disable_ipv6 = 1

추가 자료

Suse는 흥미로운 SLES 11/12 운영체제 튜닝 및 최적화 가이드를 제공한다. 페도라 문서에서 추천하는 /etc/sysctl.conf 설정에 대해 찾아볼 수 있다. Kernel.org도 역시 sysctl 설정에 대한 문서를 제공한다.

at4am의 프로필 이미지

at4am

2016년 05월 31일

글쓴이의 더 많은 글 읽어보기