errno. ENOSPEC 로 인 한 슈퍼 바 이 저 시작 실 패 를 기록 합 니 다.
3426 단어 supervisorlinux
최근 에 회사 의 블 루 고래 가 출시 한 온라인 시스템 이 다시 다운 되 었 습 니 다. 그 전에 이 플랫폼 을 구축 한 형 이 이 직 했 기 때문에 저도 위험 에 직면 하여 이 문 제 를 처리 하 라 는 명령 을 받 았 습 니 다. 그 당시 에 그 형 이 다운 이 잦 은 이 유 는 성능 병목 이 라 고 말 하고 ECS 의 설정 을 업그레이드 한 적 이 있 기 때문에 저 는 첫 번 째 반응 도 기계 성능 병목 이 라 고 생각 했 습 니 다.하지만 일이 그리 간단 하지 않다.
0x 01 분석
1. 현상 분석
문 제 를 조사 하 는 과정 에서 저 는 진찰 을 받 는 것 과 비슷 하 다 고 생각 했 습 니 다. 그래서 가장 먼저 현상 을 보 았 습 니 다. 그 당시 의 현상 은 nginx 가 502 code 로 돌아 가 는 것 이 었 습 니 다. 502 code 의 의미 와 예전 의 경험 에 따라 저 는 백 엔 드 서비스 다운 이 떨 어 졌 다 고 생각 했 습 니 다. 그 다음 에 검 사 를 받 았 는데 역시 그 랬 습 니 다.그래서 다음 단 계 는 백 엔 드 프로그램 서 비 스 를 시작 하 는 것 입 니 다.
2. 자료 조회
저 는 블 루 고래 라 는 발표 플랫폼 을 접 해 본 적 이 없 기 때문에 처음으로 공식 문 서 를 찾 았 습 니 다. 북 을 직접 조작 하 는 것 이 아니 라 제 가 몇 년 동안 일 하면 서 모색 한 중요 한 점 입 니 다.공식 자 료 를 찾 아 본 후에 저 는 블 루 고래 의 소프트웨어 구 조 를 대충 알 게 되 었 고 블 루 고래 의 주요 몇 가지 서 비 스 는 슈퍼 visor 가 맡 긴 것 이라는 것 을 알 게 되 었 습 니 다. 그러면 다음은 이 몇 가지 서 비 스 를 시작 해 야 합 니 다.
3. 문제 처리
슈퍼 visor 와 systemd 는 리 눅 스에 서 가장 많이 사용 되 는 두 가지 프로 세 스 관리 시스템 으로 저 는 잘 알 고 있 습 니 다. 그래서 제 가 슈퍼 visord 를 시작 하려 고 했 을 때 잘못 보 고 했 습 니 다.
Error: Cannot open an HTTP server: socket.error reported errno.ENOSPC (28)
내 가 이 오 류 를 보 았 을 때, 모든 프로그래머 와 마찬가지 로, 우선 오류 코드 를 구 글 에 복사 해서 결과 가 있 는 지 없 는 지 를 검색 하 는 것 이다.그러나 저 와 같은 잘못 이 없 었 습 니 다. 저 는 슈퍼 바 이 저 공식 문 서 를 찾 아 볼 수 밖 에 없 었 습 니 다. 안에 상세 한 설명 이 없 었 습 니 다. 그 다음 에 저 는 영어 자 료 를 찾 아 봤 지만 단서 가 없어 서 초조 하기 시 작 했 습 니 다.
다행히 나 는 문 제 를 조사 할 때 일수 록 진정 하고 머리 없 는 파리 처럼 마구 날 아 다 니 는 것 은 아무런 효과 가 없다 는 것 을 깨 달 았 다.그래서 저 는 잘못된 정보의 모든 단 어 를 자세히 읽 었 습 니 다. 마지막 으로 error code, 즉 errno. ENOSPC (28) 가 관건 이 라 고 생각 했 습 니 다. 그래서 저 는 이 잘못된 정 보 를 검색 하 는 것 으로 바 꾸 었 습 니 다.
원래 이 잘못된 뜻 은 Node. js 에서 no space left on device 입 니 다.
그러나 디스크 공간 이 여전히 상당히 충분 해서 나 는 또 한 번 현혹 되 었 다.바로 이때 나 는 얼마 전에 본 리 눅 스 파일 시스템 을 소개 하 는 글 이 생각 났 다.
/dev/vdb1
의 데이터 블록 구역 에 여유 가 있 는 이상 색인 노드 에 여유 가 있 지 않 습 니까?나 는 집행 df -hi
을 통 해 /dev/vdb1
의 IFree 가 0 인 것 을 보 았 다. 그 다음 에 나 는 /data
디 렉 터 리 에서 검색 해 보 았 는데 역사 에 남 겨 진 로그 파일 을 많이 발견 하여 진실 이 밝 혀 졌 다.4. 원인
블 루 고래 프로 세 스 가 시작 되 지 못 한 이 유 는
/dev/vdb1
블록 장치 의 색인 노드 가 대량의 로그 에 의 해 다 사용 되 었 기 때 문 입 니 다. 이전 로그 청소 스 크 립 트 는 로 그 를 깨끗이 정리 하지 않 았 기 때문에 서비스 가 사용 되 지 않 을 때 도 있 습 니 다.해결
문제 의 원인 을 찾 은 후에 내 가 할 수 있 는 해결 방법 은 두 가지 가 있다.
/dev/vdb1
의 색인 노드 /dev/vdb1
로그 Do you want to increase the amount of inodes? Either increase the capacity of the disk entirely (Guide: Increase A VMware Disk Size (VMDK) LVM), or re-format the disk using mkfs.ext4 -i to manually overwrite the bytes-per-inode ratio.
그래서 이 방법 은 받 아들 일 수 없다.그러면 저 는 로 그 를 정기 적 으로 삭제 하 는 방법 을 사용 할 수 밖 에 없습니다. crontab 스 크 립 트 를 써 서 정기 적 인 작업 을 수행 할 수 있 습 니 다.
이로써 이 문 제 는 철저히 해결 되 었 다.
소결
이번에 또 하나의 문 제 를 해결 하여 나의 작은 성취 감 을 만족 시 켰 다. 그러나 나 는 더욱 중요 한 것 은 내 가 문 제 를 조사 하 는 요점 을 정리 한 것 이 라 고 생각한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
수퍼바이저가 있는 Laravel 작업자우리 중 많은 사람들이 도커 컨테이너 또는 웹 서버에서 Laravel Worker로 감독자를 설정하는 데 어려움을 겪었습니다. 수행하는 데 어려움을 겪고 있거나 작업이 무엇인지, 감독자가 도커 컨테이너 또는 웹 서버...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.