# Leap v5.0.0 性能测试

By [EOS网络基金会](https://paragraph.com/@eos) · 2024-02-18

---

_这篇客座文章是由_ [_EOSphere_](https://medium.com/eosphere/antelope-leap-v5-0-0-46494fd68883) _的_ [_Ross Dold_](https://twitter.com/RossDold) _撰写的。 在本文末尾了解有关 EOSphere 在 EOS 生态系统中的工作的更多信息。_

**Antelope Leap v5.0.0** 大约一个月前发布，现在随着节点运营商开始升级其生产环境，许多基于 Antelope 的网络都采用了它。

[https://eosnetwork.com/zh/blog/leap-5-deployed/](https://eosnetwork.com/zh/blog/leap-5-deployed/)

Leap v5.0.0 的设计比以前的版本更加性能、高效和可靠，这对于节点运营商来说是个好消息，因为即使是微小的改进也可以转化为 100 个托管节点群的巨大收益。

考虑到这一点，EOSphere 团队在下面的文章中记录了 Leap v4.0.4 和 v5.0.0 之间 CPU、内存和磁盘 IO 改进的实际比较。

### Leap v5.0.0 CPU、内存和磁盘 IO 性能

以下文章是根据收集 EOSphere EOS 主网公共对等节点之一的统计数据编写的。 选择该节点是因为它已**投入生产**，且**利用率很高**，**有 180-195 个自然传入的公共节点。** 硬件配置如下：

*   Ubuntu 22.04
    
*   在 KVM 7.2.0 中虚拟化
    
*   4个CPU核心
    
*   32GB RAM
    
*   128GB SWAP
    
*   驱动器 1：操作系统和状态：256 GB 企业 NVMe
    
*   驱动器 2：Blocks：4TB 企业 NVMe (ZFS)
    

**CPU**

下面是每月 CPU 使用率图表，显示了 v4.0.4 的利用率，然后在 2024 年 1 月 22 日（20:00）升级到 v5.0.0。

CPU 利用率立即从平均 85% 下降到标准化的 60%。对于在物理、虚拟或云环境中运行多个节点来说，这是个好消息。 这也可能意味着对于公共节点，传统配置的 `max-clients`对等限制 200 可以扩展到 250 甚至 300。

### **磁盘IO和内存**

如果您读过我们之前的 Antelope 链文章，您就会知道 EOSphere 一直倡导使用 [tmpfs 策略](https://medium.com/eosphere/wax-technical-how-to-11-43695f583e89)运行 Leap 节点。

tmpfs 策略涉及在 tmpfs 挂载中运行 nodeos chainbase 数据库`state` 文件夹，允许我们通过 SWAP 超额订阅 RAM，并提高内存利用率和磁盘 IO 的效率。

_tmpfs 是一个 Linux 文件系统，它将所有文件保存在虚拟内存中，该文件夹的内容是临时的，这意味着如果卸载该文件夹或服务器重新启动，所有内容都将丢失。_

使用 tmpfs 的挑战是临时的，所有数据在重新启动时都会丢失，然后 Nodeos 将需要通过快照重新启动。

Leap v5.0.0 带来了一个名为 `mapped_private` 的新数据库映射模式，作为默认 `mapped` 模式的替代方案。 Instead of the constant writing to disk with `mapped` mode, `mapped_private` mode better utilises memory and reduces disk 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和内存利用率](https://storage.googleapis.com/papyrus_images/7024b89c6a953cf5d78e9d2770330184405859d7b725049240282990c39b04e3.png)

第一次启动mapped\_private模式的CPU和内存利用率

在节点退出时，内存中的链库被写入磁盘，这可能需要一些时间，具体取决于它的大小。

随后的节点启动速度更快，不需要快照，并且仅将执行所需的数据添加到内存中，显示利用率要低得多。

![mapped_private 模式的 CPU 和内存利用率第二次启动](https://storage.googleapis.com/papyrus_images/27de69734bc233b92118c15eef7ccb9eab68b20ce29c5b9531e8670ba0480fa1.png)

mapped\_private 模式的 CPU 和内存利用率第二次启动

随后的 Nodeos 退出也会更快，具体取决于节点运行的时间，因为 `mapped_private` 跟踪脏页，仅在退出时写出脏页。

与 `mapped`模式相比，内存利用率也略有提高。

![映射模式的CPU和内存利用率](https://storage.googleapis.com/papyrus_images/c1b2efd70da638df8e703f486daf4861c2533c9752bd96d38d6656224d4cdef0.png)

映射模式的CPU和内存利用率

除了 RAM 过度订阅和较低的利用率之外，使用`mapped_private`的真正价值以及 EOSphere 最初开始使用此模式的原因是磁盘 IO 低得多。

性能要求使得操作员必须将包含 chainbase 数据库的`state`文件夹放置在高速 SSD 驱动器上。 SSD 驱动器具有制造商分配的耐用等级，说明在发生故障之前可以写入驱动器的最大数据量。 这通常以 [TerraByte 写入 (TBW)](https://www.howtogeek.com/806926/what-does-tbw-mean-for-ssds/) 为单位，在消费者磁盘上，该值通常在 150–2000TBW 之间，在企业驱动器上，该值通常在 PB 范围内。 本质上，过多的磁盘写入可能会磨损 SSD 磁盘，从而导致故障。

下面是使用`mapped` 模式的示例对等节点的驱动器 1 磁盘 IO（写入），网络看到每秒 10-15 个事务 (TPS)。

![使用映射模式驱动器 1 磁盘 IO（写入）](https://storage.googleapis.com/papyrus_images/17b8c35fd8b670c09e9305ccc2820cbe7c2b8a076b0b53bf8c2721e5b4e7a217.png)

使用映射模式驱动器 1 磁盘 IO（写入）

这是我们示例对等节点的驱动器 1 磁盘 IO（写入），使用 `mapped_private` 模式，网络看到相同的 10-15 TPS。

![使用mapped_private模式驱动器1磁盘IO（写入）](https://storage.googleapis.com/papyrus_images/e44843ce8b05a864bf14a55bc76e1b92d89bfd9d0873c230b5edfa6409708c3c.png)

使用mapped\_private模式驱动器1磁盘IO（写入）

这表明使用 `mapped_private`大大减少了写入量。

**大约每秒 4 兆字节 (MB) 到每秒 12 千字节 (KB)。 大约 120TBW/年减少到 0.378TBW/年。**

这意味着 SSD 的使用寿命更长，虚拟环境可更好地扩展，并且云环境不受 IO 限制的限制。

总之，使用`mapped_private`时，[Antelope Leap v5.0.0](https://github.com/AntelopeIO/leap/releases/tag/v5.0.0) 具有更低的 CPU 利用率、更高效的内存占用以及易于管理的更低磁盘 IO。

请务必在 [EOSphere Telegram](https://t.me/eosphere_io) 和 [EOS Global Telegram](https://t.me/EOS_Global) 中提出任何问题。

* * *

_这篇客座文章由_ [_EOSphere_](https://medium.com/eosphere/antelope-leap-v5-0-0-46494fd68883) _的_ [_Ross Dold_](https://twitter.com/RossDold) _撰写。_ EOxSphere 是 EOS 主网以及其他基于 [Antelope](https://antelope.io/) 的区块链的区块生产者和基础设施提供商。 通过 [EOSphere.io](https://eosphere.io/) 和下面的链接了解有关他们工作的更多信息。

* * *

### 关于EOS 网络

EOS 网络是区块链 3.0 时代的典范之作，由 EOS VM 提供支持。EOS VM 是一个低延迟、高性能和可扩展的 WebAssembly 引擎，能够近乎无感的实现确定性交易执行。EOS 网络专为 Web3 设计，致力于实现最佳的 Web3 用户和开发人员体验。 EOS 是 Antelope 协议的旗舰区块链和金融中心，并通过 EOS 网络基金会（ENF）作为多链协作和发展公共基础产品的工具，进一步完善基础设施，驱动 EOS 快速发展。

### 关于 EOS 网络基金会

EOS 网络基金会（ENF）诞生旨在为 EOS 生态营造一个繁荣、去中心化和未来。 通过鼓励 EOS 生态主要利益相关者的积极参与、扶持社区项目、提供生态系统资助和支持开放技术生态系统建设等举措，ENF 正在掀起新一轮 Web3 变革。 作为 EOS 网络的中心和一个领先的开源平台，ENF 成立于 2021 年并拥有一套稳定的框架、工具和区块链部署库。 我们一起实现了社区建设的创新，并致力于为所有人创造更强大的未来。

---

*Originally published on [EOS网络基金会](https://paragraph.com/@eos/leap-v5-0-0)*
