이 게스트 포스트는 EOSphereRoss Dold가 작성했습니다. 이 기사 끝부분에서 EOS 생태계에서 EOSphere의 작업에 대해 자세히 알아보세요.

Antelope Leap v5.0.0은 거의 한 달 전에 출시되었으며 노드 운영자가 프로덕션 환경을 업그레이드하기 시작하면서 현재 많은 Antelope 기반 네트워크에서 채택되고 있습니다.

Leap v5.0.0은 이전 버전보다 성능이 뛰어나고 효율적이며 신뢰할 수 있도록 설계되었습니다. 이는 노드 운영자에게 좋은 소식입니다. 약간의 개선이라도 수백 개의 관리 노드 전체에 걸쳐 엄청난 이득으로 이어질 수 있기 때문입니다.

이를 염두에 두고 EOSphere 팀은 아래 기사에서 Leap v4.0.4와 v5.0.0 간의 CPU, 메모리 및 디스크 IO 개선 사항에 대한 실제 비교를 문서화했습니다.

Leap v5.0.0 CPU, 메모리 및 디스크 IO 성능

다음 기사는 EOSphere EOS 메인넷 공개 피어 노드 중 하나에 대한 통계를 수집하여 작성되었습니다. 이 노드는 프로덕션 단계에 있고 180~195개의 유기적 수신 공개 피어에서 활용도가 높기 때문에 선택되었습니다. 하드웨어 구성은 아래와 같습니다:

  • Ubuntu 22.04
  • Virtualised in KVM 7.2.0
  • 4 CPU Cores
  • 32GB RAM
  • 128GB SWAP
  • Drive 1 : OS & State : 256GB Enterprise NVMe
  • Drive 2 : Blocks : 4TB Enterprise NVMe (ZFS)

CPU

아래는 월별 CPU 사용량 차트로, v4.0.4의 사용률과 2024년 1월 22일(20시)에 v5.0.0으로의 업그레이드를 보여줍니다.

EOSphere 공개 피어 노드의 KVM CPU 활용도

CPU 사용률은 평균 85%에서 정규화된 60%로 즉시 떨어졌습니다.
이는 물리적, 가상화 또는 클라우드 환경에서 여러 노드를 실행하는 데 있어 매우 좋은 소식입니다. 이는 또한 전통적으로 구성된 max-clients 피어 제한인 200이 공개 노드의 경우 250 또는 심지어 300으로 확장될 수 있음을 의미할 수도 있습니다.

Disk IO 및 메모리

이전 Antelope 체인 기사를 읽었다면 EOSphere가 tmpfs 전략을 사용하여 Leap 노드를 실행하는 것을 옹호해 왔다는 것을 알게 될 것입니다.

tmpfs 전략에는 tmpfs 마운트에서 nodeos 체인베이스 데이터베이스 state 폴더를 실행하는 것이 포함되어 SWAP으로 RAM을 초과 구독하고 메모리 활용 및 디스크 IO의 효율성을 높일 수 있습니다.

tmpfs는 모든 파일을 가상 메모리에 보관하는 Linux 파일 시스템입니다. 이 파일의 내용은 임시이므로 이 폴더가 마운트 해제되거나 서버가 재부팅되면 모든 내용이 손실됩니다.

tmpfs를 일시적으로 사용하는 문제는 재부팅 시 모든 데이터가 손실되고 nodeos는 스냅샷을 통해 다시 시작해야 합니다.

Leap v5.0.0 는 mapped_private라 불리는 새로운 데이터베이스 맵 모드를 불러오며, 이는 기본 mapped 모드를 대체합니다. mapped 모드를 사용하여 디스크에 지속적으로 쓰는 대신, mapped_private 모드는 메모리를 더 잘 활용하고 디스크 IO를 줄입니다. 이는 프라이빗 매핑을 사용하여 체인베이스 데이터베이스를 메모리에 매핑함으로써 이를 수행합니다. 즉, 실행 중에 액세스된 모든 체인베이스 데이터는 메모리에 남아 있으며 shared_memory.bin 디스크 파일에 다시 쓸 수 없음을 의미합니다.

그것이 친숙하게 들린다면, 그렇습니다. mapped_private tmpfs 전략을 훌륭하게 대체합니다. 즉, tmpfs 파티션을 마운트할 필요가 없으며 메모리 내 체인베이스 데이터가 종료 시 디스크에 기록되므로 재부팅 시 스냅샷을 사용하여 다시 시작할 필요가 없습니다.

mapped_private 구성

mapped_private 구성에는 config.ini에 아래 내용을 추가하기만 하면 됩니다.

> nano config.ini
database-map-mode = mapped_private

nodeos를 시작하려면 mapped_private 구성된 chain-state-db-size-mb = 의 개인 매핑을 처리할 수 있는 충분한 메모리가 필요하며, 물리적 RAM을 구독을 허용하는 SWAP으로 대체할 수 있습니다.

작성 시점에는 32GB의 물리적 RAM과 128Gb SWAP이면 EOS 메인넷 노드를 실행하기에 충분합니다.

mapped_private 운영 및 결과

처음 nodeos mapped_private 시작 시 스냅샷으로 시작한다는 가정 하에 전체 체인베이스가 메모리(RAM 및 SWAP)에 업로드되며 시간이 다소 걸릴 수 있습니다.

mapped_private 모드의 CPU 및 메모리 활용 처음 시작

nodeos 종료 시 메모리 체인베이스가 디스크에 기록되며 크기에 따라 시간이 걸릴 수 있습니다.

후속 nodeos 시작은 스냅샷이 필요하지 않고 더 빠르며 실행에 필요한 데이터만 메모리에 추가되므로 활용도가 훨씬 낮아집니다.

mapped_private 모드의 CPU 및 메모리 활용 두 번째 시작

후속 nodeos 종료는 노드가 실행된 기간에 따라 더 빨라집니다. mapped_private 는 더티 페이지를 추적하고 종료 시 더티 페이지만 기록하기 때문입니다.

mapped 모드에 비해 메모리 활용도가 약간 향상되었습니다.

매핑 모드의 CPU 및 메모리 활용도

구독을 통한 RAM 및 낮은 활용률 외에도mapped_private 사용의 실제 가치와 EOSphere가 처음에 이 모드를 사용하기 시작한 이유는 훨씬 낮은 디스크 IO에 있습니다.

성능 요구 사항으로 인해 운영자는 고속 SSD 드라이브에 체인베이스 데이터베이스가 포함된state 폴더를 배치해야 합니다. SSD 드라이브에는 고장이 발생하기 전에 드라이브에 쓸 수 있는 최대 데이터 양을 나타내는 내구성 등급이 제조업체에서 지정되어 있습니다. 이는 일반적으로 TerraByte Writes (TBW) 단위이며, 소비자 디스크에서는 일반적으로 150~2000TBW 사이이고, 기업 드라이브에서는 이 값은 일반적으로 페타바이트 범위에 있습니다. 본질적으로 디스크 쓰기가 너무 많으면 SSD 디스크가 마모되어 오류가 발생할 수 있습니다.

다음은 mapped 모드를 사용하는 예시 피어 노드의 드라이브 1 디스크 IO(쓰기)입니다. 네트워크는 10~15 TPS(초당 트랜잭션)를 확인했습니다.

mapped 모드를 사용하는 드라이브 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.0mapped_private를 사용할 때 CPU 사용률이 낮고, 메모리 공간이 더 효율적이며, 디스크 IO를 쉽게 관리할 수 있습니다.

궁금한 사항은 EOSphere TelegramEOS Global Telegram 에서 꼭 물어보시기 바랍니다.


이 게스트 포스트는 EOSphereRoss Dold가 작성했습니다. EOSphere는 EOS 메인넷과 기타 Antelope 기반 블록체인의 블록 생산자이자 인프라 제공업체입니다. 아래의 링크에서 EOSphere.io와 이들의 작업에 대해 자세히 알아보세요.

Telegram | Medium | YouTube | Facebook | Twitter | Instagram


EOS 네트워크

EOS 네트워크는 수수료가 거의 없는 트랜잭션의 결정론적 실행을 위한 저지연, 고성능, 확장 가능한 WebAssembly 엔진인 EOS VM으로 구동되는 3세대 블록체인 플랫폼으로, 최적의 web3 사용자 및 개발자 경험을 가능하게 하기 위해 특별히 제작되었습니다. EOS는 EOS 네트워크 재단(ENF)을 통해 도구 및 인프라에 대한 다중 체인 협업 및 공공재 자금 조달의 원동력 역할을 하는 Antelope 프로토콜의 플래그십 블록체인 및 금융센터입니다.

EOS 네트워크 재단

EOS 네트워크 재단(ENF)는 성장하는 탈중앙화 미래에 대한 비전을 통해 구축되었습니다. ENF는 웹3 혁신을 위해 주요 이해관계자들의 참여와 커뮤니티 프로그램, 생태계 펀딩 및 오픈 기술 생태계를 지원하고 있습니다. 2021년에 설립된 ENF는 안정적인 프레임워크, 도구 및 블록체인 개발을 위한 라이브러리 세트를 갖춘 선도적인 오픈소스 플랫폼인 EOS 네트워크를 위한 허브입니다. 저희는 커뮤니티와 함께 구축하고 모두를 위한 더 강력한 미래를 위해 헌신할 수 있는 혁신을 위해 노력하고 있습니다.
EOS Website | Twitter | Discord | LinkedIn | Telegram | YouTube