IT/Unix & Linux

malloc: Not enough space 원인 및 해결방법

슈다루냥 2021. 6. 18.

안녕하세요. 슈다 입니다.

 

프로세스를 조회하려고 ps명령어를 실행하였는데

malloc: Not enough space

메세지가 발생하며 실행되지 않아 메모리 사용률을 확인해 봐도

사용률이 크게 높지 않은 경우 해결 방법을 알아보겠습니다.

ps 명령어가 실행되지 않는다.

 

 

 

 

해결 방법 : 계정의 limit 제한 풀기

 

AIX는 계정별로 limit 제한을 걸 수 있습니다.

ps 명령어를 실행한 계정의 limit 상태를 확인해 봅니다.

# ulimit  -a

 

 

명령어 결과 내용 중 data 값을 확인해 봅니다.

위 사진과 같이 unlimited가 아니라 131072 등의 값으로 설정되어 있진 않으신가요?

 

 

명령어를 실행할 때 data segment 영역을 사용하게 되는데,

해당 영역의 사이즈가 제한을 받아 메모리를 할당받지 못해

malloc: Not enough space 메세지가 발생하게 되는 것으로 보입니다.

 

 

해당 값을 현재 설정되어 있는 값의 2배, 혹은 무제한으로 풀어봅니다.

# smitty chuser

User NAME : 계정명을 입력합니다.

 

 

계정의 속성을 변경할 수 있는 smit 메뉴 입니다.

중간 어디쯤 Soft DATA segment 값이 설정되어 있습니다.

 

원하는 사이즈 만큼 값을 입력해 줍니다. (예 : 현재 입력되어 있는 값의 2배)

무제한, 즉 unlimit 으로 설정하려면  -1  을 입력합니다.

해당 값을 -1 로 변경하면 unlimit 이 적용된다.

 

 

계정의 limit 값이 변경되면 즉시 반영되지 않고 새로운 세션부터 적용됩니다.

 

세션을 새로 맺기 위해 다시 로그인 후

# ulimit  -a  명령어로 data limit 값이 변경되었는지 확인한 뒤

ps 명령어가 정상적으로 실행되는지 확인해 봅니다.

 

 

 

반응형