IDC资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回IDC资讯列表

什么是Plotman?管理Chia绘图操作的工具Plotman,

发布时间:2022-06-27

什么是Plotman?

Plotman是用于管理Chia绘图操作的工具。它容许您配置参数以打算打印作业,通常以交错,无休止的次序进行。它将在多个温度(-t)和目标(-d)驱动器上平衡绘图作业的负载。它供给了将完整地块从绘图机转移到农业机械的设施(一种称为“存档”的操作)。它还供给了一些用于视察绘图作业进度的工具,并有助于对绘图作业过程进行操作(例如,暂停/恢复/终止)。

Plotman是一个高级用户工具,可以使某些类型的绘图主动化更加容易。它不是使初学者更容易绘图的主动工具。强烈建议您在应用Plotman之前,先获得手动运行绘图作业的经验,以懂得绘图的工作方法以及您的硬件如何响应。

Plotman不是Chia核心代码库的一部分,也不与Chia Network正式相干。它很大程度上是一个Alpha软件,正在开发中,其工作方法的某些方面仅是历史性的事故,现在这里写的内容可能在三个月内不实用。它是完整由志愿者在业余时间开发的(他们都有日间工作)。它是在Linux上开发的,但似乎可以在MacOS上很好地工作,并且有些人已经在Windows的WSL下运行它。

Using-Plotman-to-Manage-Chia-Plotting-1

运作方法

Plotman是基于一些假设而设计的。这些假设可能是最优的,也可能不是最优的,但它们推动了初始设计。

  • 绘图的不同阶段应用不同的资源组合(磁盘IO,空间,内存,CPU),但是这些资源是固定的。定期甚至是错开的工作都应当使资源需求保持安稳,以便随着时间的推移保持恒定。这将有助于最佳地充分利用资源。
  • 应根据硬件何时筹备吸收其他绘图作业来打算绘图。尽管这可能只是一个固定的时间延迟,但在许多情况下,还是需要根据其他条件进行调剂,例如正在运行的作业总数,在特定tmp目录上运行的作业数,或者自上次运行以来已运行了多长时间。在全球领域内或在该tmp目录上启动了作业。
  • 缩放绘图操作通常将应用一台或多台绘图机,与一台或多台农民/收割机离开。将绘图操作与农用土地上的存储区离开,可以供给机动性和鲁棒性。因此,绘图到本地驱动器然后应用异步和可自定义的过程将这些绘图转移或“存档”到耕种地位很有赞助。
  • 为了硬朗起见,应尽量减少对保持状态的依附或对核心Chia代码的深度耦合。Plotman应当是无状态的,仅在操作系统具有当前正在运行的绘图作业的知识的情况下才干够运行。Plotman检查OS过程表和打开的文件表,以查找正在运行的打印作业并找到其打开的文件。由Plotman启动的绘图作业将输出重定向到日志文件,这使Plotman也可以检查日志文件以断定作业进度。

Plotman的重要用处是plotman Interactive,它履行以下功效:

  • 监督系统状态,当前绘图作业及其进度,并根据配置的参数生成新的绘图作业
  • 在本地绘图仪机器上监督完成的样区,并将其归档到远程农民(可选)
  • 显示系统状态-当前绘图作业的状态以及临时目录,目标目录和归档目录

您还可以应用plotman plot仅运行绘图作业生成,plotman归档仅运行存档。还有其他命令行工具可用于检查和操作正在运行的绘图作业。

有关plotman命令功效的完整和最新信息,请应用内置的命令行赞助选项plotman –help。

安装绘图仪

Linux的安装:

  1. Plotman假定系统上存在可运行的Chia安装。通过键入source / path / to / your / chia / install / activate激活您的chia环境。
  2. 然后,应用以下命令安装Plotman:
    > pip install –force-reinstall git + https://github.com/ericaltendorf/ plotman @ main
  3. Plotman将在盘算机上基于OS的默认地位中查找plotman.yaml。要创立默认的plotman.yaml并显示其地位,请运行以下命令:
    > plotman config generate
    用作起点的默认配置文件位于此处。
  4. 就是这样!现在,您可以通过键入plotman version来验证其版本来运行Plotman。运行plotman –help懂得可用的命令。

配置和运行Plotman Interactive

方向盘和驱动器

Plotman假定您配置一个或多个“ tmp”目录(用于-t的快速目录)和一个或多个“ dst”目录(Chia绘图仪将在其中发出完成的绘图,即-d目录)。请注意,如果应用存档功效,则“目标地”目录不是最终目标地,而只是地块所在的缓冲区,直到存档作业可以将其移至农民。

Plotman会根据全局系统状态(例如,正在运行多少个作业,何时启动上一个开端的作业)以及所考虑的tmp驱动器的状态(例如,正在运行多少个作业)来调度作业tmp dir,他们取得了多少进展)。

通常的用例是将tmp目录设置为正在应用的块设备(即物理驱动器或RAID设备)的安点缀。大多数Plotman文档都假定此用例。但是,这不是一定要的,在某些高级情况下,可能有理由将一个块设备上的多个目录视为单独的逻辑tmp目录。

在许多情况下,只有一个dst驱动器(和目录)就足够了。如果您有多个驱动器,则不仅会拥有更大的绘图缓冲区,而且Plotman还将分发绘图和归档作业,从而避免并发IO(替代RAID驱动器)。如果您有旧的1TB或2TB HDD集合,那么这将是一组不错的dst dirs。

排程

可认为Plotman配置许多条件来启动新的绘图作业。当满足所有条件时,将启动作业。

在全局领域内,您可以配置一次要运行的最大绘图作业数量,以及一个参差不齐的参数,该参数限制了新作业的启动速度。最大作业总数是一种有用的方法,可以限制用于Chia绘图的总内存。应设置全局交错,以避免作业凑集在一起并立即开端。设置初始值的一种好方法是,断定要并行运行的作业数量,估计它们在运行时将消费多长时间(并行,这可能比一个人独自运行时要长),然后将这些值相除断定频率。例如,如果您盼望并行运行12个作业,并且每个作业要消费8个小时,则合理的做法是将全局时间间隔设置为40分钟(或更短)。

每个tmp目录中也有一个最大作业限制。应当根据您的驱动器大小和IO吞吐量进行设置。例如,一个1TB的tmp驱动器可以轻松地容纳3个交错的绘图作业,如果是交错的,则可能合适4个。但是,取决于您的驱动器速度,3可能太多了-例如,您可能盼望运行最多两个作业的SATA SSD。

在tmp目录上错开是通过工作进度而不是时间来完成的。它旨在使系统性能的可变性比固定时钟更强健。通过Chia绘制阶段(1、2、3和4)以及“子阶段”来衡量进度。子阶段是Chia绘图仪进度的Plotman命名法,每个阶段定义如下:

  • 在阶段1-3中,子阶段0是(通常是简短的)初始化
  • 在阶段1中,子阶段1-7对应于盘算表1至7
  • 在阶段2中,子阶段1-6对应于表7向下流传到2的反向流传
  • 在阶段3中,子阶段1-6对应于表{1,2}至{6,7}的压缩
  • 在阶段4中,全部操作被视为“子阶段0”

在Plotman中,进度由阶段:子阶段指标(有时也称为阶段重要:次要指标)描写。例如,一个工作可能显示为处于阶段3:4,这将对应于阶段3(表4和表5的压缩)。

tmp目录中的交错是通过按阶段衡量的工作进度完成的。基础思想是,下一个作业不应在tmp dir上启动,直到上一个作业达到其进展的某个点为止。

合理地询问是不是可以按时间完成tmp-dir内的交错,以及是不是可以通过阶段进度来进行全局的交错。这些是Plotman开发人员正在考虑的事情。

封存

许多用户选择疏忽归档操作,而直接将图绘制到其耕作驱动器上。这可以; 为此,只需注释掉存档部分的配置中的行即可。

当前,正确配置归档很繁琐且容易出错。我们正在努力改良这一点。在Plotman Wiki上有一个指南,描写了如何在此处配置归档:https : //github.com/ericaltendorf/plotman/wiki/Archiving。

跑步

首次运行Plotman时,将需要创立一个配置文件。您可以应用plotman config generate来做到这一点。然后,您可以在所描写的地位编辑配置。

配置完成后,您就可以开端打印了。运行交互式绘图仪,您应当会看到一个概述屏幕。假设没有绘图作业正在运行,绘图员应检测到机器已筹备好绘图并开端作业。只要您保持运行状态,机器筹备就绪时(根据您的配置),绘图员将持续启动新的绘图作业。启动后,这些绘图作业独立于绘图员,应完成。如果要暂停或结束新图的创立,可以按“ p”键或直接退出plotman(“ q”或^ C)。

“绘图员互动”屏幕

运行交互式绘图仪时,屏幕显示以下信息:

第一行显示状态。绘图状态显示了我们是不是刚刚开端绘图,如果不开端,为啥(例如,交错时间,tmp目录已筹备好,等等)。归档状态表现我们当前是不是正在归档(并供给rsync pid),或者dst驱动器中是不是没有可用于归档的图。

第二行显示当前绘图作业进度的快照图形视图。每个作业都显示在进度条上,该进度条具有阶段1、2、3和4的里程碑。字符,带有2,“:”,三个“;”以及四个或更多“!”的字符。这是一种简便的方法,可以快速查看绘图的当前状态,进度正在运行多少作业以及它们是均匀散布还是凑集在一起。

第三行供给了一些通篇应用的目录缩写的键。对于tmp和dst目录,我们假定它们有一个公共前缀,在此处进行盘算和唆使,然后可以通过其唯一后缀(在高低文中)对其进行引用。例如,如果我们有tmp dirs / mnt / tmp / 00,/ mnt / tmp / 01,/ mnt / tmp / 02等,我们在此处显示/ mnt / tmp作为前缀,然后可以讨论tmp dirs 00或01等。存档目录是雷同的,除了它们是远程主机上的路径,并且可以通过rsyncd模块访问。

下表显示了有关运动绘图作业的信息。如果您有很多作业,则可以缩写为显示最近启动的作业和最少启动的作业(完整列表可通过命令行命令plotman status获得)。它显示了有关绘图作业的各种信息,包含(绘图的前8个字符)绘图ID,应用的目录,walltime,当前绘图阶段和子阶段,tmp驱动器上应用的空间,pid等。

下表显示了tmp和dst dirs的用法。tmp表显示应用它们的打印作业的阶段,以及它们是不是筹备进行新的打印作业。dst表显示了已累积了多少个图块,剩余了多少可用空间以及将要写入这些图块的作业阶段,最后显示了为存档作业盘算出的将图块移开的优先级。

上一张表仅显示了配置为存档目标的远程收割机/农民上驱动器的可用空间。该信息是通过sf上的df获取的,因此,要使其正常工作,您需要将无密码ssh配置为远程收割机/农民。

最后,最后一部分显示了已履行操作的日志-即启动的打印和存档作业。这是交互式工具中有状态的一部分。这些履行的命令行没有永久记载,因此,如果启动新的交互式绘图员会话,则该日志为空。

应用Plotman命令行

Plotman供给了一些命令行工具:

  • 状态–显示当前运动的绘图作业列表
  • 详细信息–显示当前运动的绘图作业的详细信息,例如参数和日志文件地位
  • 暂停–暂停绘图工作
  • 简历–恢复暂停的绘图工作
  • 杀逝世–杀逝世绘图作业并清算(删除)其临时文件

操作作业的命令以图ID的前缀作为参数,该ID是唯一标识正在创立的图的十六进制字符串。绘图ID的8个字符的前缀显示在Plotman工具中,但是在发出命令时,您可以应用任何唯一标识的前缀。

命令行工具可简化脚本操作,这在异常情况下可能会很有用。例如,如果您的临时驱动器/ tmp / 03危险地装满,则可能要暂停其上的所有作业:

绘图员状态中的ID | 尾-n + 2 | grep / tmp / 03 | 切-c1-8`; 绘图员是不是暂停$ id;完毕

之后,您可以持续履行即将完成的工作,也可以取消刚刚开端的工作。

情节分析

在一组日志文件上运行plotman分析将盘算并显示有关每个阶段所用时间的统计信息。这种分析是非常基础的,但是它是检查一组特定作业的性能的快速便捷的方法。

在Mac和Windows上的Plotman

Plotman重要是为Linxu开发的,但它是在Mac上即用的,并且在Windows上的WSL(实用于Linux的Windows子系统)上运行时,已经有一些人取得了成功。如果遇到问题,请在讨论论坛上查看;可能还有其他人以前曾经看过并解决过这些问题。

问题?

Plotman完整是由从事日间工作的志愿者开发的,因此我们无法保证必定会供给支撑。我们确实努力供给赞助,但是我们也在尝试建立机制,以使社区中的人们互相赞助。

我们仍在制定最佳系统,但是目前讨论chil_network keybase团队的keybase讨论频道#plotman是讨论Plotman应用(包含入门上的麻烦)最生动的处所。我们还在https://github.com/ericaltendorf/plotman/discussions上试用了Github的“讨论”部分。

如果您创造Plotman存在问题,请在github上将其报告,网址为https://github.com/ericaltendorf/plotman/issues。请尝试报告与Plotman行动和责任相干的毛病,而不是与核心Chia绘图仪有关的毛病。

为绘图员做贡献

我们欢迎您的贡献;如果不是为了志愿者的工作,普洛特曼就不会存在。寻衅之一是每个人的绘图情况都是唯一的,因此通常会建议应用特定功效来支撑特定用例。为了保持简略性,易用性和可靠性,掩护人员经常尝试将特定功效重铸成更通用的情势。

这将有助于贡献者:

  • 首先与开发人员讨论重大更改,以便我们可以和谐可能已经打算的其他更改。您可以在Keybase的chia_plotman小组的#dev频道上找到开发者。(但是,请勿应用该渠道来报告问题或寻求支撑。)
  • 如果您要更改多项内容,请将它们分成单独的PR,因此,对一项的分歧不会禁止其他项的提交
  • 请根据开发分支进行更改

这是用于管理Chia 绘图操作的工具。该工具在绘图机上运行,??并供给以下功效:

  • 主动生成新的绘图作业,可能在多个临时目录上重叠(“交错”),全局速率限制和每个临时目录限制。
  • 将新生成的地块Rsync到远程主机(农民/收割机),称为“存档”。
  • 监督正在进行的绘图和归档作业,进度,应用的资源,临时文件等。
  • 把持正在进行的绘图作业(挂起,恢复以及终止和清算临时文件)。
  • 交互式实时仪表板模式以及命令行模式工具都可以。
  • (非常Alpha)分析过去作业的性能统计信息,以汇总各种绘图参数或临时目录类型。

Plotman设计用于以下配置:

  • 一台绘图机,该绘图机具有一个tmpdirs数组,一个tmp2目录和一个dstdirs数组,绘图作业将在该数组上进行绘图。该dst目录用作生成图的临时缓冲区。
  • 一台具有大批驱动器的农业机械,可通过rsyncd模块进行访问 ,并完整填充地块。这些被称为archive目录。
  • 应用STDOUT / STDERR重定向到已配置目录中的日志文件的情况下运行绘图作业。这样就可以分析进度(绘图阶段)以及时序(例如,用于分析性能)。

功效性

Plotman工具是无状态的。Plotman不会保存内部记载已开端的作业,而是依附绘图作业的过程表,打开文件和日志文件来懂得“正在产生的事情”。这意味着即使在不同的登录会话中也可以结束和启动工具,而不会丧失信息。这也意味着Plotman可以查看和管理手动或通过其他工具启动的作业,只要将它们的STDOUT / STDERR重定向到已知日志文件目录中的文件即可。(注意:该工具依附于浏览chia plot命令行参数和绘图工具输出的格式。更改这些内容可能会损坏该工具。)

通过自开端履行上一个作业以来等候必定时间的墙面时间,找到最佳(例如最近最少应用)tmp的绘图目录,并确保作业至少进行到某个特定点(例如阶段2 ),来完成绘图调度,子阶段5)。

地块输出到dst目录,目录用作临时缓冲区,直到它们被同步(“存档”)到农民/收割者。存档器做了几件事,试图避免并发IO。首先,它一次只容许一个rsync过程(更复杂的调度可以打消此限制,但这是不平常的)。其次,它检查情节作业的流水线,以查看dst将要写入情节的目录。这与dst优先级方案中驱动器的容量已达到平衡。

显然,您的rsync带宽一定要超过绘图带宽。鉴于此,在正常操作中,dst目录将保持为空,直到完成绘图为止,此后不久便由存档作业将其拾取。但是,通过应用dst驱动器作为缓冲区供给的解耦意味着如果农民/收割机或网络不可用,则绘图将持续进行而不会中断。

屏幕截图概述

Plotman 19:01:06 (refresh 9s/20s)  |  Plotting: stagger (1623s/1800s) Archival: active pid 1599918
Prefixes:  tmp=/mnt/tmp  dst=/home/chia/chia/plots  archive=/plots (remote)

  #       plot id    k   tmp   dst    wall   phase    tmp       pid   stat      mem    user    sys     io               
  0   6b4e7375...   32    03   001    0:27     1:2    71G   1590196    SLP     5.5G    0:52   0:02     0s
  1   9ab50d0e...   32    02   005    1:00     1:4   199G   1539209    SLP     5.5G    3:50   0:09     0s
  2   018cf561...   32    01   000    1:32     1:5   224G   1530045    SLP     5.5G    4:46   0:11     2s
  3   f771de9c...   32    00   004    2:03     1:5   241G   1524772    SLP     5.5G    5:43   0:14     2s
...
 16   58045bef...   32    10   002   11:23     3:5   193G   1381622    RUN     5.4G   15:02   0:53   0:02
 17   8134a2dd...   32    11   003   11:55     3:6   148G   1372206    RUN     5.4G   15:27   0:57   0:03
 18   50165422...   32    08   001   12:43     3:6   102G   1357782    RUN     5.4G   16:14   1:00   0:03
 19   100df84f...   32    09   005   13:19     4:0      0   1347430    DSK   705.9M   16:44   1:04   0:06

tmp   ready    phases     tmp   ready    phases        dst   plots   GB free         phases         priority 
 00      --   1:5, 3:4     06      --   2:4            000   1       1890      1:5, 2:2, 3:4        47
 01      --   1:5, 3:4     07      --   2:2            001   0       1998      1:2, 1:7, 3:2, 3:6   34
 02      --   1:4, 3:3     08      --   1:7, 3:6       002   0       1967      1:6, 2:5, 3:5        42
 03      --   1:2, 3:2     09      --   2:1, 4:0       003   0       1998      1:6, 3:1, 3:6        34
 04      OK   3:1          10      --   1:6, 3:5       004   0       1998      1:5, 2:4, 3:4        46
 05      OK   2:5          11      --   1:6, 3:6       005   0       1955      1:4, 2:1, 3:3, 4:0   18

Archive dirs free space
000:   94GB | 005:   94GB | 012:   24GB | 017:   99GB | 022:   94GB | 027:   94GB | 032: 9998GB | 037: 9998GB
001:   94GB | 006:   93GB | 013:   25GB | 018:   94GB | 023:   94GB | 028:   94GB | 033: 9998GB |
002:   93GB | 009:   25GB | 014:   93GB | 019:   31GB | 024:   94GB | 029: 7777GB | 034: 9998GB |
003:   94GB | 010:   25GB | 015:   94GB | 020:   47GB | 025:   94GB | 030: 9998GB | 035: 9998GB |
004:   94GB | 011:   25GB | 016:   99GB | 021:   93GB | 026:   94GB | 031: 9998GB | 036: 9998GB |

Log:
01-02 18:33:53 Starting plot job: chia plots create -k 32 -r 8 -u 128 -b 4580 -t /mnt/tmp/03 -2 /mnt/tmp/a -d /home/chi
01-02 18:33:53 Starting archive: rsync --bwlimit=100000 --remove-source-files -P /home/chia/chia/plots/004/plot-k32-202
01-02 18:52:40 Starting archive: rsync --bwlimit=100000 --remove-source-files -P /home/chia/chia/plots/000/plot-k32-202

屏幕截图显示了Plotman的一些重要功效。

第一行显示状态。绘图状态显示了我们是不是刚刚开端绘图,如果不开端,为啥(例如,交错时间,tmp目录已筹备好;在这种情况下,尚未达到绘图之间的1800s交错)。归档状态表明我们当前正在归档(并供给rsyncpid)还是dst驱动器中没有可用的地块进行归档。

第二行供给了一些通篇应用的目录缩写的键。对于tmpdst目录,我们假定它们具有一个公共前缀,在此处进行盘算和唆使,然后可以通过其唯一后缀(在高低文中)对其进行引用。例如,如果我们有tmp迪尔斯/mnt/tmp/00/mnt/tmp/01/mnt/tmp/02等,我们显示/mnt/tmp如下前缀,然后可以谈论tmp迪尔斯0001archive目录是雷同的,只是这些都是在远程主机上的路径,并通过访问 rsyncd模块(见src/plotman/resources/plotman.yaml的细节)。

下表显示了有关运动绘图作业的信息。缩写为显示最近启动的作业和最少启动的作业(完整列表可通过命令行模式获得)。它显示了有关打印作业的各种信息,包含打印ID(前8个字符),应用的目录,挂墙时间,当前打印阶段和子阶段,tmp驱动器上应用的空间,PID等。

接下来的表格有些难以浏览。实际上tmp,左侧有一个表格,为了浮现目标,该dst表格分为两个表格,右侧有一个表格。这些tmp表显示了应用它们的绘图作业的阶段,以及它们是不是筹备好进行新的绘图作业。该dst表显示了已累积了多少个图块,剩余了多少可用空间以及将要写入这些图块的作业阶段,最后显示了为存档作业盘算出的将图块移开的优先级。

上一张表仅显示了远程harverster /农民上的驱动器的可用空间。

最后,最后一部分显示了已履行操作的日志-即启动的打印和存档作业。这是交互式工具中有状态的一部分。这些履行的命令行没有永久记载,因此,如果启动新的交互式绘图员会话,则该日志为空。

局限性和问题

该系统仅在Linux上进行了测试。Plotman应当可以推广到其他平台,但这还没有完成。一些周围打电话出去的命令行程序(例如,运行问题dfssh获得有关远程归档目录的自由空间)都非常的linux-Y。

交互模式应用curses库…很差。未收到按键,无法调剂屏幕大小,并且最小终端尺寸非常大。

绘图仪假定所有绘图均为k32。同样,这只是一个未实现的概括。

在“交互”模式或命令行模式之间不一致地支撑许多功效。

有很多毛病和待办事项。

Plotman始终会plotman.yaml在基于OS的默认地位的盘算机中查找文件。要生成默认值plotman.yaml,请运行:

> plotman config generate

要显示plotman.yaml文件的当前地位并检查它是不是存在,请运行:

> plotman config path

安装

Linux的安装:

  1. Plotman假定 系统上存在可运行的Chia安装。chia输入激活您的环境 source /path/to/your/chia/install/activate
  2. 然后,应用以下命令安装Plotman:
    > pip install --force-reinstall git+https://github.com/ericaltendorf/plotman@main
  3. Plotman将plotman.yaml在您的盘算机中基于OS的默认地位查找。要创立默认值plotman.yaml并显示其地位,请运行以下命令:
    > plotman config generate

    用作起点的默认配置文件位于此处

  4. 就是这样!现在,您可以通过键入plotman version以验证其版本来运行Plotman 。运行plotman --help以懂得可用的命令。

开发阐明:

如果要派遣Plotman,只需pip install --editable .[dev]从项目根目录调换安装步骤,即可应用测试和开发附加功效安装的Plotman版本。

最新solo项目:1天1P云端方案,性价比高。云主机挖Chia币解决方案,p盘解决方案,一站式农场收割解决方案,详询在线QQ客服。

TikTok千粉号购买平台:https://tiktokusername.com/