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 스 크 립 트 를 써 서 정기 적 인 작업 을 수행 할 수 있 습 니 다.
    이로써 이 문 제 는 철저히 해결 되 었 다.
    소결
    이번에 또 하나의 문 제 를 해결 하여 나의 작은 성취 감 을 만족 시 켰 다. 그러나 나 는 더욱 중요 한 것 은 내 가 문 제 를 조사 하 는 요점 을 정리 한 것 이 라 고 생각한다.
  • 현상 에 따라 문 제 를 분석 하고 직각 으로 손 을 대지 마라
  • 직접 북 을 쏘 지 말고 일 을 하기 전에 설명 문 서 를 읽 으 세 요. 대부분의 문제 설명 문서 에 있 습 니 다
  • 문 제 를 만 나 는 것 은 정상 적 인 상태 이 니 조급해 하지 말고 냉정 하 게 분석 하 라
  • 평소에 기술 을 많이 쌓 아서 지금 은 사용 할 수 없 을 지 모 르 지만 항상 쓸모 가 있 을 때
  • 0x 04 연장 자료
  • Inode 이해
  • Linux 에서 디스크 inodes 의 양 을 늘 리 는 방법 (Linux 에서 Inode 를 어떻게 증가 시 키 는 지)
  • 좋은 웹페이지 즐겨찾기