본문 바로가기

Linux/Linux공통

[Linux] 리소스를 제한(limits.conf) 하여 DB서버를 관리하자

DB를 운영하다 보면, 가끔 disk full(여유공간 부족) 상태가 되거나, 여러가지 이유(연계프로그램 버그, 소스 버그 등) 으로 너무나 많은 file open 이 되어 CUBRID 운영이 곤란할 경우가 발생할 수 있습니다.
위와같이 서버의 리소스를 특정 프로그램 혹은 유저가 점유할 수 있다면, 서버가 이를 버티지 못하고 다운되는 결과를 가져올 수 있습니다.
이러한 경우, 간단히 파일 설정값을 변경하여 리소스를 제한하여 서버다운을 예방할 수 있습니다.
방법은 의외로 간단합니다.
/etc/security/limit.conf파일을 수정하면 됩니다.
아래는 limit.conf파일의 내용입니다.
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - an user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
# End of file
적용방법은 아래와 같습니다.
       <domain> <type> <item> <value>로 추가 입력해주면 됩니다.

상세설명은 아래와 같습니다.
  • domain : 제한할 대상작성 (*, user명, 그룹명을 줄 수 있다.(그룹에 적용할 경우 @가 붙는다))
  • type : 강하게 제한할 것인지, 어느정도 여유를 줄 것인지를 결정한다.
  • item : 제한할 항목으로 core, data seg, file size등 여러가지가 존재.
  • value : 제한 하고자 하는 설정값

 

예제

--> 아래는 예제일뿐, 관리하시는 DB서버에 스펙에 따라 value를 적절히 조정하셔야 합니다.

 

1
2
3
4
5
6
cubrid hard nproc 83728
cubrid soft nproc 83728
cubrid soft stack 10240
cubrid soft nofile 55536
cubrid hard nofile 55536
cubrid soft core 102400000



위 설정을 관리하는 서버에 적절히 이용하시면 효과적인 서버 관리를 할 수 있겠습니다.

현재 서버에서 제한사항 보기

[root@os1 ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 8191
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 8191
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

출처

https://www.cubrid.com/tutorial/3794180

 

CUBRID | 튜토리얼 - 리소스를 제한(limits.conf) 하여 DB서버를 관리하자

DB를 운영하다 보면, 가끔 disk full(여유공간 부족) 상태가 되거나, 여러가지 이유(연계프로그램 버그, 소스 버그 등) 으로 너무나 많은 file open 이 되어 CUBRID 운영이 곤란할 경우가 발생할 수 있습

www.cubrid.com