このゲスト投稿は、 EOSphereのRoss Doldによって書かれました。 EOS エコシステムにおける EOSphere の取り組みについて詳しくは、この記事の最後をご覧ください。
Antelope Leap v5.0.0 は約 1 か月前にリリースされ、現在、ノード オペレーターが運用環境のアップグレードを開始するにつれて、多くの 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 メインネットのパブリック ピア ノードの 1 つから収集された統計に基づいて書かれています。このノードが選択されたのは、すでに実稼働中であり、180 ~ 195 の自然受信パブリック ノードがあり、高度に利用されているためです。ハードウェア構成は次のとおりです。
- Ubuntu 22.04
- KVM 7.2.0 での仮想化
- 4つのCPUコア
- 32GB RAM
- 128GBスワップ
- ドライブ 1: OS とステータス: 256 GB Enterprise NVMe
- ドライブ 2: ブロック: 4TB エンタープライズ NVMe (ZFS)
CPU
以下は、2024 年 1 月 22 日 (20:00) の v5.0.0 にアップグレードする前の v4.0.4 の使用率を示す月次 CPU 使用率グラフです。
![](https://img.cointime.com/builder/V5N8QMUuDKEgvqfs3q3jRSirdcy5XozuiUuPQNiR.png)
EOSphere パブリック ピア ノードの KVM CPU 使用率
CPU 使用率は、平均 85% から正規化された 60% まで即座に低下しました。これは、物理、仮想、またはクラウド環境で複数のノードを実行する場合に朗報です。これは、従来構成されていたmax-clients
のピア制限 200 を、パブリック ノードの場合は 250、さらには 300 まで拡張できることも意味する場合があります。
以前の Antelope チェーンの記事を読んだことがある方は、EOSphere が常にtmpfs 戦略を使用して Leap ノードを実行することを推奨していることをご存知でしょう。
以前の Antelope チェーンの記事を読んだことがある方は、EOSphere が常にtmpfs 戦略を使用して Leap ノードを実行することを推奨していることをご存知でしょう。
tmpfs 戦略には、tmpfs マウントでの nodeos チェーンベース データベースstate
フォルダーの実行が含まれており、SWAP 経由で RAM をオーバーサブスクライブし、メモリ使用率とディスク IO 効率を向上させることができます。
tmpfs は、すべてのファイルを仮想メモリに保持する Linux ファイル システムで、フォルダーの内容は一時的なものです。つまり、フォルダーがアンマウントされるかサーバーが再起動されると、すべての内容が失われます。
tmpfs を使用する場合の課題は、これが一時的であり、再起動時にすべてのデータが失われるため、スナップショット経由でノードを再起動する必要があることです。
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 に置き換えることができます。
執筆時点では、EOS メインネット ノードを実行するには、32 GB の物理 RAM と 128 GB SWAP で十分です。
mapped_private の操作と結果
最初のノードのmapped_private
が開始されると、スナップショットから開始すると仮定して、チェーン ライブラリ全体がメモリ (RAM および SWAP) にアップロードされるため、時間がかかる場合があります。
![](https://img.cointime.com/builder/lrn8x2QZbrmEiTAJNwRtovL99yEGAwVU3rqVGVMd.png)
初めてmapped_privateモードを開始したときのCPUとメモリの使用率
ノードの終了時に、メモリ内のチェーン ライブラリがディスクに書き込まれますが、サイズによっては時間がかかる場合があります。
後続のノードはより速く起動し、スナップショットを必要とせず、実行に必要なデータのみをメモリに追加するため、使用率は大幅に低くなります。
![](https://img.cointime.com/builder/MY2UWY84TDsno7ovz7MTUEa1QD0ySDrjHc7txuPF.png)
mapped_private モードの 2 回目の開始時の CPU およびメモリ使用率
ノードの実行時間に応じて、後続のノードの終了も高速になります。これは、 mapped_private
ダーティ ページを追跡し、終了時にのみそれらのページを書き出すためです。
メモリ使用率もmapped
モードに比べてわずかに改善されます。
![](https://img.cointime.com/builder/2xNAJZ2mOJnrI810RydyeqFJ4Zx9ZjlmeDqH6xsl.png)
マップモードでの CPU とメモリの使用率
RAM のオーバーサブスクリプションと使用率の低下は別として、 mapped_private
を使用することの本当の価値と、そもそも EOSphere がこのモードを使用し始めた理由は、ディスク IO がはるかに低いことです。
パフォーマンス要件により、オペレーターはチェーンベース データベースを含むstate
フォルダーを高速 SSD ドライブに配置する必要がありました。 SSD ドライブにはメーカーが割り当てた耐久性評価があり、故障が発生する前にドライブに書き込むことができるデータの最大量を示します。これは通常、 TerraByte Written (TBW)で測定され、一般消費者向けディスクでは 150 ~ 2,000 TBW の範囲にあり、エンタープライズ ドライブでは PB 範囲にあります。基本的に、過剰なディスク書き込みは SSD ディスクを摩耗させ、障害を引き起こす可能性があります。
以下は、ドライブ 1 のディスク IO (書き込み) でmapped
モードを使用するサンプル ピアです。ネットワークでは 1 秒あたり 10 ~ 15 のトランザクション (TPS) が発生しています。
![](https://img.cointime.com/builder/Ns23vhSgTWNTbaY5VT90GkOUwdkGKST0mfys4Nvm.jpg)
マップモードの使用 ドライブ 1 のディスク IO (書き込み)
これは、 mapped_private
モードを使用したピア例のドライブ 1 のディスク IO (書き込み) で、ネットワークは同じ 10 ~ 15 TPS を示しています。
![](https://img.cointime.com/builder/9TdWz7zuoNWbpPbstITAUKELEu6Vl7Mzh3QIOPPP.jpg)
mapped_private モードを使用したドライブ 1 のディスク IO (書き込み)
これは、 mapped_private
を使用すると書き込み量が大幅に削減されることを示しています。
約 4 メガバイト (MB)/秒から 12 キロバイト (KB)/秒。約 120TBW/年が 0.378TBW/年に削減されました。
これは、SSD が長持ちし、仮想環境の拡張性が向上し、クラウド環境が IO 制限に制約されないことを意味します。
要約すると、 Antelope Leap v5.0.0 は、 mapped_private
使用する場合、CPU 使用率が低くなり、メモリ使用率がより効率的になり、ディスク IO が少なく管理しやすくなります。
質問がある場合は、必ずEOSphere TelegramおよびEOS Global Telegramで質問してください。
このゲスト投稿はEOSphereのRoss Doldによって書かれています。 EOxSphere は、EOS メインネットおよびその他のAntelopeベースのブロックチェーンのブロック プロデューサーおよびインフラストラクチャ プロバイダーです。彼らの取り組みについて詳しくは、 EOSphere.ioと以下のリンクをご覧ください。
EOS ネットワークは、EOS VM を搭載したブロックチェーン 3.0 時代のモデルです。 EOS VM は、低遅延、高性能、スケーラブルな WebAssembly エンジンであり、直感に近いパフォーマンスで確定的なトランザクションの実行を実現できます。 EOS ネットワークは Web3 専用に設計されており、Web3 ユーザーと開発者の最高のエクスペリエンスを実現することに尽力しています。 EOS は、Antelope プロトコルの主力ブロックチェーンおよび金融センターであり、インフラストラクチャをさらに改善し、EOS の急速な開発を推進するために、マルチチェーンのコラボレーションと公共の基本製品の開発のためのツールとして EOS Network Foundation (ENF) を使用しています。
EOS Network Foundation (ENF) は、EOS エコシステムの繁栄した分散化された未来を創造するために誕生しました。 EOS のエコロジー関係者の積極的な参加を奨励し、コミュニティ プロジェクトをサポートし、エコシステムへの資金を提供し、オープン テクノロジー エコシステムの構築をサポートすることで、ENF は Web3 の新たな変化を引き起こしています。 EOS ネットワークの中心であり、主要なオープンソース プラットフォームとして、ENF は 2021 年に設立され、安定したフレームワーク、ツール、ブロックチェーン展開ライブラリのセットを備えています。私たちは力を合わせてコミュニティ構築におけるイノベーションを実現し、すべての人にとってより強い未来を創造するために取り組んでいます。
全てのコメント