대부분의 문제는 시스템 리소스 한도, 합의 엔드포인트와의 네트워크 연결성 또는 잘못된 구성에서 비롯됩니다. Plasma 관련 엣지 케이스를 조사하기 전에 항상 기본 상태 검사부터 시작하세요.
동기화 문제
노드가 뒤처짐
노드가 뒤처짐
노드가 네트워크 헤드보다 뒤처지는 경우:
- 시스템 부하 확인: CPU, 메모리 및 I/O가 Plasma의 고빈도 블록 생성에 충분해야 합니다.
- 합의 엔드포인트 지연 확인: 높은 지연은 블록 수집 속도에 영향을 미칩니다.
- 데이터베이스 성능 모니터링: 느린 쿼리나 락 경합은 동기화의 병목이 될 수 있습니다.
block_height, 블록당 상태 적용 시간 및 각 합의 엔드포인트에 대한 지연을 확인하세요.동기화가 완전히 멈춤
동기화가 완전히 멈춤
동기화가 중단되는 경우:
- 디스크 공간 확인: 디스크가 가득 차면 데이터베이스 쓰기가 중단됩니다.
- 엔드포인트 연결성 확인: DNS 해석, 방화벽 규칙 및 라우팅이 합의 트래픽을 차단하지 않는지 확인하세요.
- 컨테이너 리소스 한도 확인: 메모리나 CPU 부족은 동기화 프로세스를 중단시킬 수 있습니다.
피어 연결성 저하
피어 연결성 저하
합의 엔드포인트에 대한 연결이 제한되거나 불안정하면 RPC 소비자를 위한 데이터 신선도가 저하됩니다.확인: IP 제한이나 라우팅 정책, 엔드포인트 연결 수와 가동 시간, 여러 엔드포인트 간 페일오버 동작.주요 메트릭: 활성 연결, 연결 해제율 및 블록 도착 지연.
네트워크 연결성
포트 및 방화벽 접근
다음 모두를 위해 필요한 포트가 열려 있는지 확인하세요:- 합의 통신
- 애플리케이션에 RPC 제공
- 컨테이너 외부와 내부에서 포트 접근성
- 합의 동기화를 위한 아웃바운드 트래픽 허용
DNS 실패
해결되지 않는 합의 도메인은 동기화를 중단시킵니다.- 모든 Plasma 서비스 도메인에 대한 DNS 해석 확인
- 리졸버 지연 및 신뢰성 모니터링
- 필요에 따라 폴백 리졸버 추가
프록시 및 NAT 문제
복잡한 네트워킹 환경(VPN, 프록시, NAT)은 다음에 간섭할 수 있습니다:- 합의 동기화
- RPC 인바운드 접근
- 프록시 인증 규칙
- 인바운드 RPC를 위한 NAT 포트 포워딩
- Plasma 인프라로의 라우팅 경로
구성 오류
잘못된 비검증 구성
잘못된 비검증 구성
시작 오류는 종종 잘못되거나 누락된 합의 엔드포인트, 잘못된 형식의 URL 또는 JWT 토큰, 사용되지 않는 플래그로 인해 발생합니다.로그에서 확인: 구성 파싱 오류, 체인 ID 불일치, 알 수 없는 플래그나 옵션.
Docker 문제
Docker 문제
잘못 구성된 컨테이너는 정상 작동을 방해할 수 있습니다.검증: 데이터베이스 영속성을 위한 볼륨 마운트, 컨테이너 내부 네트워크 접근, 리소스 한도(CPU, 메모리), 이미지 버전 호환성.
환경 변수 충돌
환경 변수 충돌
충돌하거나 순서가 잘못된 환경 변수는 의도된 설정을 재정의할 수 있습니다.확인: 합의 엔드포인트 URL과 토큰, 네트워크와 체인 ID, 기능 플래그(예: 사용자 정의 가스 지원). 배포 간 드리프트를 피하기 위해 환경 변수 사용을 문서화하세요.
리소스 한도
디스크 공간
다음으로 인한 디스크 사용량 증가를 모니터링하세요:- 블록체인 데이터
- 로그 및 임시 파일
- 로그 회전 구현
- 정리 작업 예약
- 사용량 알림 모니터링
파일 디스크립터
낮은 ulimit은 다음을 중단시킬 수 있습니다:- 합의 연결
- RPC 세션
ulimit, systemd 또는 컨테이너 런타임 구성을 통해 파일 디스크립터 한도를 늘리세요.
진단
로그 분석
다음을 추적하기 위해 로그를 사용하세요:- 동기화 진행
- RPC 오류
- 합의 연결성
- 리소스 관련 충돌
- 합의 동기화 로그: Plasma와의 연결성과 동기화 진행 추적.
- 트랜잭션 처리 로그: 트랜잭션 처리 및 오류 모니터링.
- RPC 요청 로그: 결제 애플리케이션 요청 패턴과 성능 분석.
- 리소스 사용률 로그: 결제 처리에 영향을 미치는 병목 식별.
성능 프로파일링
다음의 병목을 식별하기 위해 비검증 워크로드를 프로파일링하세요:- RPC 성능
- DB 쿼리 지연
- 합의 상태 적용
- 잔액 확인 처리량
- 전송 확인 지연
- 부하에서의 리소스 사용