이 게스트 포스트는 EOSphere 의 Ross Dold 가 작성했습니다. 이 기사 끝부분에서 EOS 생태계에서 EOSphere의 작업에 대해 자세히 알아보세요.
Antelope Leap v5.0.0은 약 한 달 전에 출시되었으며 노드 운영자가 프로덕션 환경을 업그레이드하기 시작함에 따라 현재 많은 Antelope 기반 네트워크에서 채택되고 있습니다.
https://eosnetwork.com/zh/blog/leap-5-deployed/
Leap v5.0.0은 이전 버전보다 성능, 효율성, 안정성이 향상되도록 설계되었습니다. 이는 노드 운영자에게 좋은 소식입니다. 작은 개선이라도 100개로 관리되는 노드 팜 전체에서 큰 이득으로 이어질 수 있기 때문입니다.
이를 염두에 두고 EOSphere 팀은 아래 기사에서 Leap v4.0.4와 v5.0.0 간의 CPU, 메모리 및 디스크 IO 개선 사항에 대한 실질적인 비교를 문서화했습니다.
다음 글은 EOSphere EOS 메인넷 퍼블릭 피어 노드 중 하나에서 수집한 통계를 바탕으로 작성되었습니다. 이 노드는 이미 생산 중이고 180-195개의 자연 수신 공개 노드로 활용도가 높기 때문에 선택되었습니다. 하드웨어 구성은 다음과 같습니다.
- 우분투 22.04
- KVM 7.2.0의 가상화
- CPU 코어 4개
- 32GB RAM
- 128GB 스왑
- 드라이브 1: OS 및 상태: 256GB Enterprise NVMe
- 드라이브 2: 블록: 4TB Enterprise NVMe(ZFS)
CPU
아래는 2024년 1월 22일(20:00) v5.0.0으로 업그레이드하기 전 v4.0.4의 사용률을 보여주는 월간 CPU 사용량 차트입니다.
EOSphere 공개 피어 노드의 KVM CPU 사용률
CPU 사용률은 즉시 평균 85%에서 정규화된 60%로 떨어졌습니다. 이는 물리적, 가상 또는 클라우드 환경에서 여러 노드를 실행하는 데 있어 좋은 소식입니다. 이는 또한 전통적으로 구성된 max-clients
피어 제한인 200이 공개 노드의 경우 250 또는 심지어 300으로 확장될 수 있음을 의미할 수도 있습니다.
이전 Antelope 체인 기사를 읽어보신 분이라면 EOSphere가 항상 Leap 노드 실행을 위해 tmpfs 전략 사용을 옹호해 왔다는 사실을 아실 것입니다.
이전 Antelope 체인 기사를 읽어보신 분이라면 EOSphere가 항상 Leap 노드 실행을 위해 tmpfs 전략 사용을 옹호해 왔다는 사실을 아실 것입니다.
tmpfs 전략에는 tmpfs 마운트에서 nodeos 체인베이스 데이터베이스 state
폴더를 실행하는 것이 포함되어 SWAP을 통해 RAM을 초과 구독하고 메모리 활용도와 디스크 IO 효율성을 향상시킬 수 있습니다.
tmpfs는 모든 파일을 가상 메모리에 보관하고 폴더의 내용을 임시로 유지하는 Linux 파일 시스템입니다. 즉, 폴더가 마운트 해제되거나 서버가 다시 시작되면 모든 내용이 손실됩니다.
tmpfs 사용의 문제점은 일시적이라는 점입니다. 재부팅 시 모든 데이터가 손실되고 Nodeos는 스냅샷을 통해 다시 시작해야 합니다.
Leap v5.0.0은 기본 mapped
모드 대신 mapped_private
라는 새로운 데이터베이스 매핑 모드를 제공합니다. mapped
모드를 사용하여 디스크에 지속적으로 쓰는 대신 mapped_private
모드는 메모리를 더 잘 활용하고 디스크 IO를 줄입니다. 프라이빗 매핑을 사용하여 체인 라이브러리 데이터베이스를 메모리에 매핑함으로써 이를 수행합니다. 즉, 실행 중에 액세스되는 모든 체인 라이브러리 데이터가 유지됩니다. 메모리이며 shared_memory.bin
디스크 파일에 다시 쓸 수 없습니다.
이것이 친숙하게 들린다면, 그렇습니다. mapped_private
은 tmpfs 정책을 훌륭하게 대체합니다. 즉, tmpfs 파티션을 마운트할 필요가 없으며, 종료 시 메모리 내 링크 라이브러리 데이터가 디스크에 기록되므로 재부팅 시 스냅샷을 사용하여 다시 시작할 필요가 없습니다.
mapped_private 구성
mapped_private
구성은 단순히 config.ini에 다음을 추가합니다.
> nano config.inidatabase-map-mode = mapped_private
노드 mapped_private
시작하려면 chain-state-db-size-mb =
의 구성된 프라이빗 매핑을 재정의할 만큼 충분한 메모리가 필요하며, 물리적 RAM을 초과 구독을 허용하는 SWAP으로 교체할 수 있습니다.
이 글을 쓰는 시점에서는 32GB의 물리적 RAM과 128Gb SWAP이면 EOS 메인넷 노드를 실행하기에 충분합니다.
mapped_private 작업 및 결과
첫 번째 노드 mapped_private
시작되면 스냅샷에서 시작한다고 가정하면 전체 체인 라이브러리가 메모리(RAM 및 SWAP)에 업로드되며 시간이 다소 걸릴 수 있습니다.
mapped_private 모드가 처음 시작될 때 CPU 및 메모리 사용률
노드 종료 시 메모리 내 체인 라이브러리가 디스크에 기록되며 크기에 따라 다소 시간이 걸릴 수 있습니다.
후속 노드는 더 빠르게 시작되고 스냅샷이 필요하지 않으며 실행에 필요한 데이터만 메모리에 추가하므로 활용도가 훨씬 낮습니다.
mapped_private 모드 두 번째 시작의 CPU 및 메모리 사용률
mapped_private
더티 페이지를 추적하고 종료 시에만 기록하기 때문에 노드가 실행된 기간에 따라 후속 Nodeos 종료도 더 빨라집니다.
메모리 활용도 mapped
모드에 비해 약간 향상되었습니다.
매핑 모드의 CPU 및 메모리 활용도
RAM 초과 구독 및 낮은 활용도 외에도 mapped_private
사용의 실제 가치와 EOSphere가 처음에 이 모드를 사용하기 시작한 이유는 디스크 IO가 훨씬 낮기 때문입니다.
성능 요구 사항으로 인해 운영자는 체인베이스 데이터베이스가 포함된 state
폴더를 고속 SSD 드라이브에 배치해야 했습니다. SSD 드라이브에는 오류가 발생하기 전에 드라이브에 쓸 수 있는 최대 데이터 양을 나타내는 제조업체 지정 내구성 등급이 있습니다. 이는 일반적으로 TBW(TerraByte Written) 단위로 측정됩니다. 이는 일반적으로 소비자 디스크의 경우 150~2000TBW 범위이고 기업 드라이브의 경우 PB 범위입니다. 기본적으로 과도한 디스크 쓰기는 SSD 디스크를 마모시켜 오류를 일으킬 수 있습니다.
다음은 드라이브 1 디스크 IO(쓰기)가 포함 mapped
모드를 사용하는 샘플 피어입니다. 네트워크에는 초당 10-15개의 트랜잭션(TPS)이 표시됩니다.
매핑된 모드 드라이브 1 디스크 IO 사용(쓰기)
다음은 mapped_private
모드를 사용하는 예제 피어의 드라이브 1 디스크 IO(쓰기)입니다. 네트워크는 동일한 10-15 TPS를 보고 있습니다.
mapped_private 모드를 사용하여 드라이브 1 디스크 IO(쓰기)
이는 mapped_private
사용하면 쓰기 양이 크게 줄어든다는 것을 보여줍니다.
초당 약 4MB(메가바이트)~12KB(킬로바이트)입니다. 약 120TBW/년을 0.378TBW/년으로 줄였습니다.
이는 SSD가 더 오래 지속되고, 가상 환경이 더 잘 확장되며, 클라우드 환경이 IO 제한의 제약을 받지 않는다는 것을 의미합니다.
요약하자면, Antelope Leap v5.0.0은 mapped_private
사용 시 CPU 사용률이 낮고, 메모리 사용량이 더 효율적이며, 디스크 IO 관리가 더 쉽습니다.
궁금하신 점은 EOSphere 텔레그램 , EOS 글로벌 텔레그램 으로 꼭 물어보세요
이 게스트 포스트는 EOSphere 의 Ross Dold 가 작성했습니다. EOxSphere는 EOS 메인넷과 기타 Antelope 기반 블록체인을 위한 블록 생산자이자 인프라 제공업체입니다. EOSphere.io 와 아래 링크에서 이들의 작업에 대해 자세히 알아보세요.
EOS 네트워크는 EOS VM을 기반으로 하는 블록체인 3.0 시대의 모델입니다. EOS VM은 거의 직관적인 성능으로 결정론적인 트랜잭션 실행을 달성할 수 있는 저지연, 고성능 및 확장 가능한 WebAssembly 엔진입니다. EOS 네트워크는 Web3용으로 특별히 설계되었으며 최고의 Web3 사용자 및 개발자 경험을 제공하기 위해 최선을 다하고 있습니다. EOS는 Antelope 프로토콜의 대표적인 블록체인이자 금융 중심지이며, EOS Network Foundation(ENF)을 다중 체인 협업 및 공공 기본 제품 개발을 위한 도구로 사용하여 인프라를 더욱 개선하고 EOS의 빠른 개발을 주도합니다.
EOS 네트워크 재단(ENF)은 EOS 생태계의 번영하고 분산된 미래를 만들기 위해 탄생했습니다. ENF는 주요 EOS 생태학적 이해관계자의 적극적인 참여를 장려하고, 커뮤니티 프로젝트를 지원하고, 생태계 자금을 제공하고, 개방형 기술 생태계 구축을 지원함으로써 Web3 변화의 새로운 국면을 시작하고 있습니다. EOS 네트워크의 중심이자 선도적인 오픈 소스 플랫폼인 ENF는 2021년에 설립되었으며 안정적인 프레임워크, 도구 및 블록체인 배포 라이브러리 세트를 보유하고 있습니다. 우리는 함께 커뮤니티 구축에 혁신을 일으키고 모두를 위한 더 강력한 미래를 만들기 위해 노력합니다.
모든 댓글