Mongos 프로세스에 OOM이 나타납니다.
온라인 게임복은 몬goDB 클러스터 분할을 사용하고 게임 프로필은 몬gos 실례를 통해 조회 요청을 보냅니다.동료 반영 프로그램 연결 몬고스 오류 개발
Failed to connect to: 10.4.4.66:28018: send_package: error reading from socket: The socket is closed
나중에 다시 연결할 수 있어요.
10.4.4.66은 Mongos의 IP 주소입니다.
2 고장 분석
1. 몬고스 프로세스가 정상적인지 확인하고 몬고를 사용하여 몬고스 단말기에 로그인할 수 있는지 확인한다.모든 것이 정상이다.
2. 몬고스의 로그 파일을 보고 이상이 있는지 확인
***** SERVER RESTARTED *****
Thu Apr 23 15:02:01.726 [mongosMain] MongoS version 2.4.6 starting: pid=7553 port=28018 64-bit host=XXXXXXX
1 (--help for usage)
마침 이 시간 안에 몬고스가 다시 시작된 것을 볼 수 있다. 몬고스가 다시 시작된 후에 config 서버를 연결하여 백엔드shard 정보를 얻는 등 일련의 작업을 해야 한다.그래서 프로그램이 오류를 보고합니다.
3. Linux 시스템 로그 보기
$ sudo grep mongos /var/log/messages
Apr 10 15:35:38 localhost sz[32066]: [xxxx] check_mongos.sh/ZMODEM: 211 Bytes, 229 BPS
Apr 23 14:50:18 localhost sz[5794]: [xxxxx] mongos/ZMODEM: 297 Bytes, 151 BPS
Apr 23 15:01:55 localhost kernel: [20387] 497 20387 694326 427932 0 0 0 mongos
Apr 23 15:01:55 localhost kernel: Out of memory: Kill process 20387 (mongos) score 890 or sacrifice child
Apr 23 15:01:55 localhost kernel: Killed process 20387, UID 497, (mongos) total-vm:2777304kB, anon-rss:1711700kB, file-rss:28kB
몬고스가 메모리가 넘쳐서 프로세스가 킬에게 떨어졌음을 알 수 있습니다.
4. 몬고스가 스크립트를 끌어올린 로그를 확인한다.
몬고스 프로세스가 끊긴 후에 자동으로 다시 시작할 수 없도록 하기 위해서, 우리는 1분마다 몬고스 프로세스가 존재하는지 확인하고, 없으면 몬고스를 시작합니다
mongos is not running
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 7553
all output going to: /data/app_data/mongodb/log/mongos.log
child process started successfully, parent exiting
[ OK ]
몬고스 프로세스가 OOM에 의해 킬에 떨어진 것을 볼 수 있습니다. 이 스크립트는 몬고스가 다운되고 다시 시작하는 것을 감지합니다.
5. 몽고스에 OOM이 생기는 원인 연구
Zabbix 모니터링 아이콘에서 이 몬고스의 swap이 다 사용된 것을 보았다.
세 가지 해결 방법
다음과 같은 몇 가지 방법이 있습니다.
https://plumbr.eu/blog/memory-leaks/out-of-memory-kill-process-or-sacrifice-child
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
방학 불태우기 9프로세스를 관리하기 위해 ready queue와 waiting queue가 존재하며 ready queue의 프로세스들 중 실행되는 프로세스는 running 상태가 되어 실행되게 된다. 이런 불필요한 CPU 낭비를 막...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.