IT/AIX&Linux

실전!!! AIX - 실무에서 바로 써먹는 기술 [제 1부 - 구성] 1.5 Aix 환경설정 limit

뜻밖의 행복 2013. 12. 18. 20:16
반응형

안녕하세요?

뜻밖의 행운입니다.

 

이제 AIX 설치 후 AIX 자체의 기본 환경설정의 끝이 조금씩 보이네요 ^^

물론 각종 솔루션을 올리고 구성하면서 바꾸어야 환경설정들은 남아 있지만

순서대로 가야겠지요~


AIX 설치 직후 먼저 수정해야 할 파일중 하나인 limits 에 대해서 알아 보도록 하겠습니다.

파일 이름에서부터 느껴지듯이 무언가 제한하는 파일 같네요 


1. limits 파일의 위치는?


aix limit


/etc/security/limits 에 위치해 있습니다.

뿐만 아니라 /etc에는 여러분과 저를 설레이게 하는 신비롭고 흥미로운 여러 파일들이 많이 있습니다.

모조리 다 알아보는 기회가 빨리 왔으면 좋겠네요 ^^


limits가 어떤 파일인지 한번 살펴 보기 위에 vi 에디터로 limits 파일을 열어보겠습니다.


vi limits


aix limit 명령어 사용법


그러면 위와 같은 화면이 나오면서 limits가 어떤 기능을 하는지 어떻게 수정 하면 되는지

너무나도 친절하게 설명이 잘 나와 있습니다. 

 

 


간락하게 우선 설명을 드리면

우선 fsize, cpu, core, data, stack, rss 등은 각 자원을 뜻합니다.

이 자원들을 각 계정별로 최대 얼마까지 사용할 수 있는지 제한을 거는것이 limits 라고 할 수 있습니다. ^^


Unix의 특징이자 AIX의 특징인 여러 사용자가 동시에 작업가능한 점 때문에 limits가 있어야

어느 한쪽에서만 CPU, Memory, Disk 를 많이 사용해서 다른 쪽 사용자가 자원이 부족해서 업무를 하지못하는

불상사가 있어선 안되겠지요~ 


이런경우는 별로 없겠지만 was와 DB 가 같이 올라가있는 서버가 있다고 해보지요 

그런데 양쪽에 별 제한을 두지 않고 있다가 DB에서 무거운 업무가 돌아 메모리와 CPU를 모두 차지했다고 하면

was가 자원부족으로 죽을 수 있지요 물론 그렇게 되면 대참사가... 


어디까지나 예이고 was랑 DB는 한서버에 같이 올리지 않지요 ㅎ

예산이 정말 부족하지 않다면야

 

2. limits 어떻게 수정?

 

aix limit 명령어 사용법

 

위 그림을 보시면

맨위 설명에 blocks은 1개에 512byte가 단위이고

seconds는 cpu time 인 것을 알 수 있습니다.

 

그 밑에 또 보시면 같 자원들이 block을 기준으로 하는지 seconds를 기준으로 하는지 설명이 나와 있네요 ^^

 

이중에서 보통 제일 먼저 수정하는 값이 fsize 입니다.

 

각 자원들이름_hard 인 파일들도 있는데 이것들은 무엇인지 밑에서 설명 드리겠습니다.


 

aix limit soft와 hard

 

fsize를 수정한다더니 어떻게 수정 하나요?

네 바로 위 그림처럼 -1 값을 줍니다.

-1 이 의미하는 것은 unlimited 즉 무제한을 뜻합니다.

만약 fsize에 특정 숫자가 있으면 그 숫자가 해당하는 이상의 크기 파일을 만들 수가 없습니다.

만약 fsize가 2라고 하면 2 x 512byte(fsize는 단위가 block이고 1block 512byte)이므로 1024byte 즉 1kb 이상의 파일을

만들 수 없다는 뜻입니다.

보통 fsize를 수정하지 않으면 최대 2G 크기의 파일까지만 만들 수 있게 기본 설정이 되어 있습니다.

 

저기서 default : 라고 되어 있는 곳에 다 -1라고 설정이 되어 있는데 이는 모든 계정에서 특별히 다른 항목에 값을 주지 않으면 모든 자원을 제한없이 쓸 수 있다는 뜻입니다.

 


aix limit 수정

 

위 그림을 보시면 root,daemon,bin....lpd까지는 아무런 값이 입력 되지 않았으니 default를 따르고

pconsole 만 statck,data가 무제한이 아니라 제한이 걸리겠지요 ^^

 

자~ 그럼 각 자원들 stack, data 와 뒤에 _hard가 붙은것의 차이는 무엇일까요?

간단히 말씀드리면 각 user의 role이 security가 아니거나 root가 아니면 _hard의 값을 수정 할 수 없습니다.

단지 그 뿐만이 아닙니다.

 

data_hard = 1280000 이라고 되어 있으면 data값을 수정할 때 최대값을 1280000을 넘기지 못합니다.

즉 data_hard가 1280000인데 data의 값을 1300000을 줄 수 없다는 것입니다.

최대 1280000까지만 줄 수 있는 것이지요 ^^

 

이것이 가 자원값과 자원값_hard의 차이점 입니다.

 

 

3. limits의 간단한 확인법 


 

ulimit -a

 

ulimit -a 를 주면 현재 limits의 값을 간단하게 확인 할 수 있습니다.

가 값의 단위도 괄호로 친절하게 설명이 되어 있네요 ^^


ulimit -a 수정

 

만약 vi로 각 값을 수정하고 ulimit -a로 확인하면 저렇게 제한이 있는 값은 그 값이 숫자로 표시 됩니다.

참 중요한것은

해당 값을 바꾸고 나서는 로그아웃했다가 다시 로그인 해야 합니다.

root 계정의 값을 변경할 경우 재부팅을해야 값이 적용 됩니다.

 

일반적으로 저렇게 다 -1 무제한으로 걸어두고

필요한 경우에만 limits를 부여합니다.


반응형