unix ulimit 설정.

기술 이야기 2012. 11. 4. 02:25 |


한동안 잊고 살았더니 기억안나는 것들 투성이다.

오늘 한참을 뒤져서 기억해낸 ulimit 설정...

예전 openldap 이 accept 하는 소켓 갯수가 모자라서 열심히 찾아서 알게된 사실,.. file descriptor 의 open 개수 제한이었단 것.

이외에도 ulimit 은 시스템의 리소스를 하나의 프로세스나 사용자가 독점하는 것을 막기 위한 설정인데, 문제는 서버 서비스를 할 때 이런 거 디폴트로 두면 항상 동시 처리 갯수에 문제가 있다는 것...

관련하여 정리된 글 하나 스크랩...


출처 : http://blog.naver.com/juner84?Redirect=Log&logNo=100162972371


[Linux] ulimit 과 openfile 설정


ulimit는 유저가(쉘, 프로세스)에 대해서 할당할 자원의 한계를 정하는 것으로 다중 프로그램/사용자를 기본으로 하는 리눅스 시스템에서 과부하를 막아주는 설정이다. 


나 같은 경우는 linux서버의 openfile, corefile size를 많이 제어하는데 사용한다. 

그 이유는 분산처리 파일 환경, 또는 디비서버를 운영할 경우 동시에 많은 파일들이 읽고 쓰고를 해서 openfile error가 생기는것을 막기 위해서 이다. 


기본적으로 hard 설정과 soft 설정이 있는데 각 설정을 보려면 아래의 명령어로 확인한다. 

 $ ulimit -Ha 

 $ ulimit -Sa

(하드 설정 전체 보기 / 소프트 설정 전체 보기)

하드는 해당쉘의 최대값을 뜻한다 하면 되고,  소프트는 현재 설정을 말한다 생각하면 된다.

hard 설정의 경우는 root권한으로만 변경 가능


$ ulimit -Sa

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

file size               (blocks, -f) unlimited

max locked memory       (kbytes, -l) unlimited

max memory size         (kbytes, -m) unlimited

open files                      (-n) 256

pipe size            (512 bytes, -p) 1

stack size              (kbytes, -s) 8192

cpu time               (seconds, -t) unlimited

max user processes              (-u) 266

virtual memory          (kbytes, -v) unlimited

 

/etc/security/limits.conf 에 설정 파일이 있으며 파일을 변경하거나 ulimit -Sn 10240  <- 이런 식으로 각 설정별 옵션을 사용해서 변경 가능하면 된다.

수정한 내용의 적용은 해당 유저가 새로운 접속을 시도하면 적용된다.

 

<참고>

http://blog.naver.com/mklife/150034479727

http://seaking.tistory.com/24 

http://coffeenix.net/board_view.php?bd_code=1422


 

Posted by Golmong
: