강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

커널 파라이터값을 확인, 설정하는 sysctl 사용법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

커널 파라이터값을 확인, 설정하는 sysctl 사용법

 

 

 

 

sysctl은 리눅스 커널의 파라미터값을 설정하거나 확인하는 명령어입니다.

 

 

 

 구체적으로 말씀 드린다면 /proc/sys/파일시스템에 존재하는 파일들의 값을 변경할 수 있는 명령어입니다.

 

 

 

 /proc/sys파일시스템은 리눅스의 가상파일시스템으로서 디스크상에 물리적으로 존재하는 파일시스템이 아니라 메모리(MEMORY)에 존재하는 가상파일시스템으로서 리눅스의 현재 커널파라미터값들을 저장하고 있는 일종의 가상디렉토리입니다.

 

 

 

 , sysctl명령어는 /proc/sys디렉토리에 존재하는 파일들의 값들을 변경함으로써 커널의 파라미터값을 변경시키게 됩니다.

 

 

 

 그리고 sysctl에서 절대로 잊지 말아야 할 것은 sysctl로 커널 파라미터의 값이 변경이 되면 시스템에 바로 적용이 된다는 점입니다.

 

 

 

 , 현재 사용중인 커널의 파라미터를 변경하는 것이므로 이것은 너무나 당연한 얘기입니다.

 

 

 

 따라서 우리는 sysctl을 이용하여 커널 파라미터를 변경할 때에 매우 신중해야 합니다.

 

 

 

 

커널의 파라미터값을 변경하는 이유는 리눅스시스템 운용을 용도와 환경에 알맞게 사용하기 위함입니다.

 

 

 

  따라서 대부분의 리눅스 시스템관리자들은 커널의 기본 파라미터값을 사용하기 보다는 최적의 (또는 적당한) 값으로 설정하여 최적의 환경에서 리눅스시스템이 운용될 수 있도록 커널 파라미터값을 변경합니다.

 

 

 

  

 

결론적으로 sysctl명령어는 커널의 파라미터값을 확인하고 값을 변경하기 위한 명령어입니다.

 

 

 

 

 

그리고 무엇보다 명심해야 할 것은 sysctl로 리눅스 커널의 파라미터값을 변경한 후에는 현재 리눅스가 운용되고 있는 상태에서는 그 값이 유효하지만 다시 부팅이 된 후에는 원래 값으로 되돌아 간다는 것입니다.

 

 

 

 따라서 재부팅후에도 변경된 값을 유지하려면 /etc/sysctl.conf파일에 별도의 설정을 해야 합니다.

 

 

 

  /etc/sysctl.conf파일은 리눅스부팅과 함께 읽어 들여 그 설정을 바로 적용합니다.

 

 

 

 

아래는 리눅스 설치후의 /etc/sysctl.conf파일의 초기설정입니다.

 

 

 

 

 

[root@su250 ~]# cat /etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux

# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and

# sysctl.conf(5) for more details.

# Controls IP packet forwarding

net.ipv4.ip_forward = 0

# Controls source route verification

net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing

net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel

kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.

# Useful for debugging multi-threaded applications.

kernel.core_uses_pid = 1

[root@su250 ~]#

 

 

 

아래는 RockyLinux /etc/sysctl.conf 파일 값입니다.

일부는 필자가 설정해 둔 값이 들어가 있습니다.

 

[root@RockyLinux01 sys]# cat /etc/sysctl.conf

# sysctl settings are defined through files in

# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.

#

# Vendors settings live in /usr/lib/sysctl.d/.

# To override a whole file, create a new file with the same in

# /etc/sysctl.d/ and put new settings there. To override

# only specific settings, add a file with a lexically later

# name in /etc/sysctl.d/ and put new settings there.

#

# For more information, see sysctl.conf(5) and sysctl.d(5).

fs.file-max=9223372036854775806

fs.file-max=9223372036854775805

fs.file-max=92233720368547758070

 

# addition for Oracle

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

fs.file-max = 6815744

[root@RockyLinux01 sys]#

 

 

 

 

대부분의 초보관리자들은 이 값을 초기설정값 그대로 사용하지만 서버성능 향상과 효율적인 운용이라는 부분에 눈을 뜨게 되면 이 파일의 설정값들을 변경하려고 애를 쓰게 됩니다.

 

 

 

 

 

참고로 /etc/sysctl.conf파일은  부팅시에 함께 커널에 의해 읽혀져서 커널의 파라미터값을 설정합니다.

 

 

 

 결론적으로 /etc/sysctl.conf파일에 설정된 커널 파라미터의 설정값은 재부팅 후에도 그대로 적용이 되는 것입니다.

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  95 명