[서버 운영하기] NGINX 메모리 할당 에러 – nginx: [alert] mmap(MAP_ANON|MAP_SHARED, 805306368) failed (12: Cannot allocate memory)

Updated on 2018-09-01 by

어느날 갑자기 서버 연결이 안된다.
이 페이지에 연결할 수 없음이라는 메세지가 뜨고 멍통이 되어버린다.

이 페이지에 연결할 수 없음

뭐가 문제일까? 터미널에 접속해 nginx를 다시 가동해 보기로 한다.
아쉽게도 메세지는 부정적이다.

root@happist:~# service nginx restart

Job for nginx.service failed because the control process exited with error code.
See "systemctl  status nginx.service" and "journalctl  -xe" for details.

그래서 시킨대로 systemctl status nginx.service 명령을 사용했다. 그랬더니 메모리 할당을 못한다고 한다..

nginx 에러 메모리 할당 오류

root@happist:~# service nginx start
Job for nginx.service failed because the control process exited with error code.
See "systemctl  status nginx.service" and "journalctl  -xe" for details.
root@happist:~# systemctl  status nginx.service
● nginx.service - nginx - high performance web server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2018-02-04 04:47:54 KST; 19s ago
     Docs: http://nginx.org/en/docs/
  Process: 16414 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 16963 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
 Main PID: 319 (code=exited, status=0/SUCCESS)
      CPU: 28ms

Feb 04 04:47:54 happist systemd[1]: Starting nginx - high performance web server...
Feb 04 04:47:54 happist nginx[16963]: nginx: [alert] mmap(MAP_ANON|MAP_SHARED, 805306368) failed (12: Cannot allocate memory)
Feb 04 04:47:54 happist systemd[1]: nginx.service: Control process exited, code=exited status=1
Feb 04 04:47:54 happist systemd[1]: Failed to start nginx - high performance web server.
Feb 04 04:47:54 happist systemd[1]: nginx.service: Unit entered failed state.
Feb 04 04:47:54 happist systemd[1]: nginx.service: Failed with result 'exit-code'.

구글링읗 해보니 메모리의 부족이나 상위 플랜으로 업그레이하라는 이야기 많이 나온다.

조금 이상하기도하다. 그 동안 1GB메모리 사용시에도 아무런 문제가 없었고 지금은 2GB로 업그레이드한 상태인데 물리적인 메모리 부족이 맞는 것인지 의문이 들었다.

SWAP 파일 생성으로 해결

그동안 내가 했던 조치들을 반추해 보았다.

  • 최근 swap 파일을 사용하지 않도록 해던 게 생각이 났다.
  • 나름 빠른 SSD지만 RAM에 비해서는 속도가 느리므로  swap 파일은 속도에 지장을 준다.
  • 메모리가 적으면 문제가 없겠지만, 2GB로 업그레이드하면서 조금 여유 메모리가 있으니 swap을 사용하지 않토록 했었다.
  • 아마 이게 문제가 되었나 보다.

그래서 swap를 사용토록 해주었던 모든 문제가 해결 되었다. 아무래도 메모리가 2GB라도 적은가 보다.

SWAP 사용하지말고 메모리 사용을 조정해 보자

위 방법은 메모리 사용을 조정 불가 時 적용할 수 있는 방업이라 할 수 있다. 그래서 속도가 조금 늦어지드라도 SWAP 파일을 사용할 수 있도록 만드는 방법이라 할 수 있다.

그러나 굳이 SWAP 파일을 사용하지말고 메모리 사용을 최적화는 방법도 좋을 것이다.  메모리를 4GB로 올리고 나서도 여전히 이런 메모리 부족 현상을 겪었다. 

또  SWAP 파일을 만들어야하나하는 고민도 있었지만 메모리 문제이니 메모리 사용을 조정하기로 했다.

  • mysql설정 파일에서 max_connections을 150개 정도로 줄였다. 어자피 150명 동시 접속도 쉽지않은 현상이니 무리는 없을 것으로 보았다. 그러면 줄어든 만큼 여분으로 챙겨야하는 메모리가 줄어 든다.
  • table_open_cache와 같은 cache 크기를 줄인다.
  • ie도 DB 크기에 맞추어 최적화하면서 설정 크기를 줄일 수 있다

너무 어이가 없긴한데 혹 헤멜 분을 위해서 공유해 본다.

새롭게 뉴스레터를 시작했습니다.

1️⃣ 주식 등 투자 정보 : 기업 분석, IB 투자의견 등 투자 관련 내용
..... 테슬라 실적 및 IB들의의 테슬라 투자의견
2️⃣ 사례 및 트렌드 : 사례연구와 트렌드 관련 괜찮은 내용
.....유튜브와 경쟁대신 구독 전환한 비디오 플래폼 비메오 사례

서울에 생긴 Vultr 서버 100$ 프로모션

안녕하세요?
새로운 사이트 구축을 위한 신규 서버를 고민하신다면 , 서울 리젼이 생겨 더욱 빨라진 Vultr 서버를 Vultr 100$ 프로모션으로 이용해 보세요.

아래 프로모션 코드 링크를 통해 Vultr에서 서버 구축 후 1달 이상 사용 및 $25이상 결제 時 추가 100$을 주는 프로모션입니다.

Vultr는 서울에도 리젼이 있어 매우 빠르고, 아마존 웹 서비스(AWS)보다 성능이 높으며 가장 가성비가 뛰어납니다.

거기다 사용자 UI도 좋고, 15개까지 스냅샷을 무료로 제공하기 때문에 관리하기 좋습니다. 그리고 지금 100$ 프로모션처럼 가격적인 메리트도 있습니다.

우분투 20.04와 PHP 8 기반 워드프레스 설치 방법

가상 서버를 운영하고픈 勇者에게 전하는 가상 서버 운영 입문 노하우 – Vultr 가상서버호스팅(VPS)를 중심으로

워드프레스 최적화를 위한 18개월간의 고민, 그 노하우를 담다.

도쿄 리젼과 비교해 본 Vultr 서울 리젼 사용기

가성비가 뛰어난 Vultr 가상서버호스팅(클라우드호스팅,VPS) 사용기

Subscribe
Notify of
guest
4 Comments
Oldest
Newest
Inline Feedbacks
View all comments