技巧和窍门
其他提示
欢迎来到“其他提示”部分!无论您是经验丰富的农民还是刚刚开始使用子空间网络,这些提示和技巧都旨在增强您的体验和效率。在这里,我们深入研究实用建议和鲜为人知的技术,以帮助您微调您的农业设置并轻松应对常见挑战。从配置环境到管理后台进程,这些见解都是量身定制的,以确保您的 Farmer 平稳有效地运行。让我们深入探讨如何充分利用您的子空间网络农民。
遥测和区块浏览器
使用我们的各种遥测工具和区块浏览器深入探索子空间网络。无论您是监控网络活动还是探索区块链数据,这些资源都能提供对网络性能和交易的全面见解。
- 遥测服务器:实时了解网络活动和性能指标。非常适合监控子空间网络的整体运行状况和状态。
- 官方区块浏览器:我们查看子空间网络上的区块、交易和网络活动的主要工具。该浏览器提供直观的界面和详细信息。
- Subscan 区块浏览器:一种替代区块浏览器,提供区块、交易和网络事件的详细视图。Subscan 以其用户友好的界面和额外的数据分析功能而闻名。
- Polkadot.js区块浏览器:对于熟悉 Polkadot 生态系统的用户来说,这个浏览器提供了使用Polkadot.js界面探索子空间网络的无缝体验。
绘制并发
从 2 月 19 日版本开始,通过增加内部并发性提高了绘图性能。 在绘图过程中,表生成既有并行部分,也有顺序部分。通过同时生成多个表,我们可以将顺序部分与并行部分重叠,从而提高 CPU 利用率。虽然为所有记录生成表需要大量 RAM,但一次仅为几条记录生成表可在 CPU 和 RAM 使用率之间实现最佳平衡。 我们添加了覆盖默认行为的选项,该行为为每两个内核分配一条记录,但并行不超过八条记录。根据我们对 P 核、E 核和 P+E 核组合的内部测试,此设置似乎可以达到峰值性能。 如果您更喜欢使用上一个行为,或者您的 RAM 使用率过高,则可以设置为 。您也可以尝试将其设置为 、 等,这可能会产生更好的结果,具体取决于您的特定 CPU/RAM 配置。--record-encoding-concurrency
--record-encoding-concurrency
1
2
3
对标您的农民
基准测试可帮助您测试农民针对不同版本的子空间网络的绘图速度。
./Autonomys-farmer benchmark audit /path/to/your/plot
将 /path/to/your/plot 替换为绘图的实际路径。这将为您提供有关绘图性能的指标和见解。
目前,Subspace Node 支持实现机制,该机制打开文件的次数与有耕种线程的次数一样多,并且对于每个线程,使用专用的文件句柄。rayon
解释结果:通常,评估吞吐量以确定任意数量的磁盘的最大可审核大小。CPU 和磁盘性能都会影响此指标。
要了解有关审计基准测试的更多信息,请阅读此论坛帖子。
还有第二个命令可用,可帮助您确定农民在审核后有多少时间提供证明。
./Autonomys-farmer benchmark prove /path/to/your/plot
每个农民有 ~4 秒的时间来审核和证明,因此根据审核的速度,剩余时间将用于证明。 证明性能不取决于绘图大小。
如果环境没有足够的时间进行证明步骤,则服务器将记录如下消息:
Proving for solution skipped due to farming time limit slot=6723846 sector_index=46
要了解有关证明基准测试的更多信息,请阅读此论坛帖子。
擦洗你的农民
在某些情况下,尤其是当服务器意外终止或遇到错误时,它可能无法正确重新启动。scrub 命令通过清理或重置指定的绘图来帮助解决此类问题。
./Autonomys-farmer scrub /path/to/your/plot
确保将 /path/to/your/plot 替换为实际的绘图路径。请谨慎使用此命令,因为它会修改打印状态以从错误中恢复。
指定用于绘图/重新绘制的确切 CPU 内核
此选项将覆盖子空间服务器可能使用的任何自定义逻辑。 您可以通过添加 来指定绘制的 CPU 内核,方法是添加 ,然后添加所需的内核参数。内核应以逗号分隔的值列出,空格用于分隔不同的线程池或编码实例。 例如,将导致同时编码两个扇区,每个扇区使用一对 CPU 内核。--plotting-cpu-cores
--plotting-cpu-cores 0,1 2,3
同样,您可以使用 后跟类似于上例中使用的参数来自定义重新绘制 CPU 内核。--replotting-cpu-cores
--plotting-cpu-cores
请注意,该设置需要配置相同数量的 CPU 核心组。如果省略该设置,则节点将默认使用与绘图相同的线程池。--plotting-cpu-cores
--replotting-cpu-cores
--replotting-cpu-cores
从子空间的旧/不同版本切换到新快照
除非开发团队特别提到,否则您不必在新版本上擦除配置。
通常,你应该能够下载最新版本,并使用与以前版本相同的命令重新启动 Node&Farmer,而不会出现任何错误。
在某些情况下,版本更新会导致您的 Node 和 Farmer 出现问题,您可能需要擦除节点,通常是在发生错误时。如果您有任何问题,您总是可以在我们的 Forums和连接到我们的 Discord 服务器寻求帮助。
擦
如果您之前运行的是节点,并且想要切换到新网络,请执行以下步骤,然后再次按照指南进行操作:
# Replace `FARMER_FILE_NAME` with the name of the farmer file you downloaded from releases
./FARMER_FILE_NAME wipe PATH_TO_FARM
# Replace `NODE_FILE_NAME` with the name of the node file you downloaded from releases
./NODE_FILE_NAME wipe NODE_DATA_PATH
现在从头开始按照安装指南进行操作。
Docker 擦除
如果是 Docker 安装程序,请运行(如果已指定自定义目录,请手动删除它们)。docker compose down -v
现在按照安装指南进行操作。
如果您在运行 Subspace 的节点或农民时遇到问题,请随时加入我们的 Discord,或者更好的是,您可以查看我们的论坛并查看现有问题或在需要时发布新问题!
帮助
你可以在 Farmer 或 Node 上使用额外的命令和参数,在 任何其他命令之后使用以显示其他选项。--help
# Replace `FARMER_FILE_NAME` with the name of the node file you downloaded from releases
./FARMER_FILE_NAME farm --help
计时员
Gemini-3g 引入了时间证明,并在节点中添加了一个新的可选角色。计时员帮助运行 PoT 以确保网络安全。计时需要高性能的核心 CPU,但可以由任何节点运行器执行。您可以使用以下命令启用计时。
--timekeeper
:在节点上启用计时--timekeeper-cpu-cores
:指定 Timekeeper 将在哪些内核上运行。
查看更多 about Timekeepers
Node & Farmer 命令指南
节点和农民都有各种标志和参数。若要查看完整列表,请将标志附加到节点或 farmer 命令。--help
常用命令示例
请注意,从耕种开始,在绘图时不再发生。这是为了确保绘图过程以最有效的方式进行。您可以通过向农民添加标志来更改此设置。Gemini-3g
--farm-during-initial-plotting
对于节点和服务器,以下是一些常用的命令:
- 显示场信息:
./FARMER_FILE_NAME info PATH_TO_FARM
- 清理服务器场中的错误:
./FARMER_FILE_NAME scrub PATH_TO_FARM
- 删除所有与农民相关的数据:
./FARMER_FILE_NAME wipe PATH_TO_FARM
- 擦除所有与节点相关的数据:
./NODE_FILE_NAME wipe NODE_DATA_PATH
利用多个磁盘
若要最大化存储容量,可以直接使用多个磁盘。这通常比依赖 RAID 配置更有效:
示例:
./FARMER_FILE_NAME farm --reward-address WALLET_ADDRESS \
path=/media/ssd1,size=100GiB \
path=/media/ssd2,size=10T \
path=/media/ssd3,size=10T
优化 DSN 同步
DSN可能是一个微妙的话题,为了更好地了解我们的去中心化存储网络,请参阅我们的Subnomicon的本指南。
--out-peers
--in-peers
--dsn-target-connections
--dsn-pending-in-connections
--dsn-in-connections
推荐参数
默认参数的设置考虑了常见消费类调制解调器/路由器的功能。调整某些参数可以通过增加并行度来增强 DSN 同步性能。但是,如果您决定大幅增加它们,请确保您的调制解调器/路由器的性能足以处理增加的流量。节点:
--dsn-out-connections
--dsn-pending-out-connections
农民:增加农民参数的值可以提高绘图速度。
--out-connections
--pending-out-connections
NUMA 支持
NUMA 支持将使拥有大型、强大 CPU 和大量可用 RAM 的农民受益。所需的 RAM 大小取决于处理器和线程数。
以前,打印/重绘线程池是单独为每个服务器场创建的,即使一次只能使用配置数量的线程池(默认情况下只能使用一个)。 随着 NUMA 支持的引入,服务器应用程序具有一个线程池管理器,该管理器将创建必要数量的线程池,这些线程池将分配给当前正在绘制/重新绘制的服务器场。 创建线程池时,它将分配给一组 CPU 内核,并且只能使用这些内核。固定不会将线程固定到内核 1:1,相反,操作系统可以在内核之间自由移动线程,但只能在分配给线程池的 CPU 内核内移动。这将确保特定扇区的绘图仅在特定的 CPU/NUMA 节点上进行。
在 Windows/Linux 计算机上启用 NUMA
在 Linux 和 Windows 上,服务器将检测 NUMA 系统并创建与 NUMA 节点数相对应的线程池。这意味着对于大型 CPU,默认行为将发生变化,并因此消耗更多内存,但如果需要,可以使用 CLI 选项将其更改为以前的行为。 要使用 NUMA,您需要通过主板的 BIOS 启用它,以便农民知道它的存在。此选项存在于 Threadripper/Epyc 处理器的主板中,但也可能存在于其他主板中。如果不启用它,操作系统和农民都会认为您只有一个 UMA 处理器,并且无法应用优化。
要了解有关 NUMA 支持及其为大型 CPU 提供的好处的更多信息,请阅读此论坛帖子。
更改打开文件数限制 (Linux)
有时需要更改 Linux 上的打开文件数限制,以便进行系统和应用程序性能调优。管理文件共享或分发的应用程序(包括对等系统)可能需要同时打开与不同对等方的多个连接。更高的打开文件限制允许这些应用程序保持更多连接,从而提高数据传输速率和系统效率。
这也有助于减轻错误。Too Many Open Files
您可以使用该命令暂时更改打开文件的限制。例如,设置会将限制设置为 2048。注销或重新启动后,此更改将还原。ulimit
ulimit -n 2048
对于永久更改,有两种方法:
- 要修改内核参数 。您可以使用命令 来执行此操作。
fs.file-max
sysctl
sysctl -w fs.file-max=500000
- 若要为单个用户设置限制,需要编辑文件。您可以为软限制和硬限制的打开文件数指定硬限制和软限制。
/etc/security/limits.conf
username soft nofile 10000
username hard nofile 30000