# piece\_cache解释,GPU不工作,绘图速度过慢等等问题解决方法

**URL:** <https://forum.autonomys.xyz/t/piece-cache-gpu/4601>\
**Category:** Guides and FAQs\
**Created:** [November 25, 2024, 7:12am UTC](https://forum.autonomys.xyz/t/piece-cache-gpu/4601 "2024-11-25T07:12:37Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![z\_W](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.autonomys.xyz/z_w/32/1135_2.png) [@z\_W](https://forum.autonomys.xyz/u/z_W)\
**Post date:** [November 25, 2024, 7:12am UTC](https://forum.autonomys.xyz/t/piece-cache-gpu/4601/1 "2024-11-25T07:12:37Z")

</div>

# [参考链接](https://forum.autonomys.xyz/t/the-mechanics-and-nuances-of-the-piece-cache/4479)

# 本文操作系统为Windows10 高级CLI

## 碎片缓存如何工作？

以下是绘图过程中发生事件的详细步骤：

1. **初始化** ：首次开始绘图或调整绘图大小时，会填充片段缓存。每次软件重新启动时，都会根据应保存的片段检查和更新缓存。
2. **绘图** ：绘图过程运行时，它会从缓存中请求片段，以将其编码为绘图。如果缓存中保存了该片段，则该过程会快速继续。如果没有，则会触发“缓存未命中”。
3. **缓存未命中处理** ：当发生缓存未命中时，农夫节点必须联系 DSN 来查找并从另一个农夫那里下载所需的内容。此步骤明显较慢，因为它涉及搜索网络并根据您的互联网速度传输数据。

## 缓存配置选项

各个软件对缓存的配置：

- **Space Acres-GUI：** 默认使用指定地块大小的 1% 作为块缓存。(固定死的,无法修改)
- **高级 CLI** ：允许设置特定的片段缓存大小，平衡初始绘图速度与分配给农业的空间。(可以通过–cache-percentage参数修改)
- **CLI-集群模式** ：将缓存分离成自己的组件，允许 100% 的地块空间用于地块数据。  
将碎片缓存配置为与存档历史记录的大小相匹配可以防止缓存未命中并加快初始绘图速度。但是，这有一个权衡：缓存大小越大，耕作空间就越小，除非使用外部缓存组件。(直接指定一个目录,使用这个目录放缓存,你自己设置目录位置和大小,最方便的一种)

# 容易出现问题的配置(会导致GPU不动)

地块总数量的默认百分1没有大于 Archived History Size  
比如目前缓存总大小是105G,如果你所有地块总大小小于10T,就存在缓存空间不足  
因为这个缓存大小会随着区块链的时间越来越大,并不是固定的,你需要在区块链浏览器查看需要预留多少空间来存缓存文件  
P好的盘换来换去,导致整体缓存结构混乱,

# 查询 Archived History Size的链接

# [链接1](https://astral.autonomys.xyz/mainnet/consensus)

 ![image](https://canada1.discourse-cdn.com/flex011/uploads/subspace/original/2X/a/ace4d56a45f5e9de73732796b0b78e54349af76e.jpeg)

# [链接2](https://autonomys.subscan.io/)

# 如何查看缓存空间

缓存空间是在地块内部,而不是你硬盘的剩余空间

 ![image](https://canada1.discourse-cdn.com/flex011/uploads/subspace/original/2X/c/c10a29503c013a83e600dd70ac443388989eb744.png)  
比如我的这台矿机  
一共10个地块,每个地块是6.9Tib  
我们直接进入地块文件夹,找到piece\_cache.bin这个文件  
 ![image](https://canada1.discourse-cdn.com/flex011/uploads/subspace/original/2X/2/2b426b0d6587edb78b1e4d122c6245c92a24e9e8.png)  
这里的71.1g就是6.9Tib的百分1,farm会使用占位模式,先把这百分1空间占用,里面实际缓存数据有多少是不清楚的.  
在我这里,我每个地块大小都是一样的,我有10个地块,每个地块我使用的默认参数启动百分1,所以每个地块都有一个这个71.1的缓存文件  
我一共有10个地块,用的一个farm.exe来启动,  
那么我这台机器给缓存的预留空间高达71.1\*10,也就是一共有711G的缓存,这几乎大于7倍,完全足够使用  
在缓存空间足够,启动farm的时候会进入缓存下载阶段.大概如下  
 ![image](https://canada1.discourse-cdn.com/flex011/uploads/subspace/original/2X/6/6debd36ac2b313b1949aad23c36100b47ea1d5f7.png)

# 在保证缓存空间正常,缓存下载完毕后,你的GPU就可以全速工作

# 如果我只有一个盘,如何更改缓存空间

直接在启动参数添加–cache-percentage参数  
默认是百分1

```auto
--cache-percentage 1

```

比如你是7T的盘,只有一个地块,百分1只有70G左右,是不够的  
那么就改成百分3 就有200G左右的缓存空间,那么缓存就够了

```auto
--cache-percentage 3

```

# 是所有地块的加起来,并不是说你单个地块的单个缓存

# 比如你3个7t的盘,运行farm创建了3个地块,那么默认百分1 就应该足够了

# 图片示范

 ![image](https://canada1.discourse-cdn.com/flex011/uploads/subspace/original/2X/f/f52da7dbd4f3a11b133abca8f258fd3d14029890.png)  
因为这是我的机器,我就算使用百分1的默认值,也已经远远超过目前100多G需要的空间了,如果你不够就需要修改这个参数

# 修改后

 ![image](https://canada1.discourse-cdn.com/flex011/uploads/subspace/original/2X/3/3f93007cf0c52c1107615178858d598a3d1b7d55.png)  
修改后记得观察每个地块里面的这个缓存文件,如果空间不是你想要的,或者修改后没有重新缓存,可以直接删掉这个缓存文件重新缓存

# 使用未绘图的空间来当缓存

有一个参数是使用未绘图的空间来存储缓存,这个参数默认启动的  
但是这个参数有一个恨明显的迹象,就是绘图百分90左右,后面GPU就基本不工作

```auto
--plot-cache <PLOT_CACHE>

绘图缓存使用未绘图空间作为附加缓存，以提高绘图速度，尤其是对于小型农场。
在 Windows 上，如果总绘图空间不超过 7TiB，则默认启用；对于其他操作系统，无论农场大小如何，都默认启用。

```

# 完整的缓存

在高级CLI里面  
完整的缓存存储在不同的地块里面,比如缓存一共100G  
很有可能第一个地块存储了10g,第二个地块存储了20g,第三个等等这样,所有地块的缓存加起来才是一份完整的缓存,不要随便更换结构

# P好的盘换来换去,导致整体缓存结构混乱

某些人把P好的盘换来换去,以上所说,破坏了结构,你的缓存就不是完整的,  
直接删除每个地块里面的piece\_cache.bin文件重新缓存

## [点击查询加速缓存方法](https://forum.autonomys.xyz/t/piece-cache-farm-ipv4-ipv6/4559)
