首页 > 技术文章 > Unity Acceleratorc与Cache Server unity的缓存服务器

euph 2021-06-03 09:57 原文

1.作用概述

编辑器模式下,导入资源,切换平台unity都会重新识别资源,大型项目很浪费时间,使用Cache Server 缓存导入的资源,大大减少导入资源用时。(主要和Library文件夹有关)

因此使用Cache Server 主要目的是节约团队开发时的资源导入,平台切换的用时。

2.用法(使用,看这个就够了)

服务端下载

2018以后Cache Server升级了,换名:Unity Accelerator
在这里插入图片描述
2018以及以前为:Cache Server
在这里插入图片描述

部署Unity Acceleratorc

使用引擎的2019.3或更高版本。
安装完成后 会弹出网页管理的IP地址和端口号(安装过程中 需要 设置用户和密码,这是服务端管理用户)
Unity Accelerator is Running
Instructions to configure the Unity Editor to use Unity Accelerator.

In the Unity Editor preferences, use the following host and port number to configure the Cache Server Asset Import Pipeline (v2):

Host: 10.2.5.113 Port: 80

拥有网页配置,配置简单方便,同时有CPU 磁盘使用情况
在这里插入图片描述

账号:unitycache
密码:123456
使用地址:10.2.5.113:10080

修改http管理端口

在网页 Configuration 填写Desired HTTP Port 然后会弹出 Restart 按钮,点击即可
在这里插入图片描述

修改Editor连接端口

找到加速器安装位置,然后修改unity-accelerator,重启服务/进程即可(网页重启或者本地重启)
在这里插入图片描述

windows本地重启

在这里插入图片描述

客户端使用(设置好一次提交设置,团队拉取即可全部生效)

1.打开偏好(Edit->Preferences->Cache Server),模式切换为Enable,默认IP地址输入 服务器部署地址 与端口
2.点击Check Connection 测试连接是否成功

在这里插入图片描述

3.打开Editor(Edit->Project Settings->Editor)
Cache Server 三种模式

第一种:使用偏好设置,preferences 只有enable和disable(使用偏好后,新建的项目也会自动 开启CacheServer),如果preferences 没有开启enabled,则无法使用

在这里插入图片描述

第二种:只有当前项目开启CacheServer,可以控制 只上传/下载Cache,(是否使用加速以 Editor此处设置为准)
在这里插入图片描述

Namepace prefix:可以确保与其他项目隔离,相同项目使用同名Namespace prefix
不同配置,同文件,会多份上传
同配置,同文件,即使移动文件位置,不会多份上传

TLS/SSL :特性标签

第三种:关闭CacheServer

没有特殊需求:默认第一种即可

3.测试

平台切换测试

在这里插入图片描述

第一次切换需要上传资源,第二次(第二个人)再切换相同平台,速度很快(3秒左右)。
关键:
1.平台切换要相同版本才可以共享CacheServer
2.全局模式与enabled 都可以
3.同版本,不同项目不共享Cache(即使同资源)

资源导入测试(打开编辑器的情况下)

unity版本:2020.3.10f1
Cache Server:使用v2
资源大小:2.05G
不使用Cache Server
在这里插入图片描述

工程放到机械硬盘中,平均时间大概6分30秒
使用Cahce Server

前三次:

在这里插入图片描述

后三次:
在这里插入图片描述

总结:在资源导入方面,第一个导入的可能花时间更长(要将缓存上传服务器),但是后续导入资源,速度会加快(从缓存服务器下载资源),且多次导入越来越快直到达到一个峰值。

项目启动测试(不打开编辑器的情况下)

流程:编辑器关闭 Cache Server, 关闭编辑器,拉资源,再次启动项目,计时

不开启Cache Server (删除Library)
在这里插入图片描述

开启Cache Server

在这里插入图片描述

总结:Cache Server 对多人项目资源导入,新项目启动 都有提升速度的作用。作用大小取决于服务器与本地网速,以及本地硬件等多方面。

4.不同版本表现

2021版,2020版 下角增加Cache标志,使用方便,
(2020之后只剩下V2 新版的Unity Accelerator)

在这里插入图片描述

2019版没有小图标,
Preferences 里面拥有两个缓存选择 (V1 老版本 CacheServer V2新版本 Unity Accelerator)
在这里插入图片描述

新版本默认 V2
建议使用V2
V1 需要使用 Cache Server(2018版本及以下可以下载,官方已停更,不建议使用)

5.服务端监控

输入服务端部署地址,即可进入缓存监控界面
在这里插入图片描述

1.当前服务端 的简易指标,
详细指标需要 prometheus 检测
在这里插入图片描述

2.当前加速器服务的配置(配置可使用缓存大小等,简易配置)
需要输入安装时配置的 账户和密码
如果忘记,重置密码:重新启动安装程序即可重置密码。
在这里插入图片描述

3.服务日志(有限的简易日志)
详细日志需要在安装位置查看 log 如图:
在这里插入图片描述

.cfg 后缀是服务端详细配置
.json后缀是用户名与密码存放(内容加密不可修改)

6.服务端缓存

两种方式规定缓存大小,
基于百分比Basic Custom第一行
基于大小,Custom 第二行(如图绿色,规定不可以使用1G(意思即除了1G 硬盘剩下的全部可以使用))
蓝色表示可用多少,绿色表示规定多少不可用
在这里插入图片描述

7.冲突

冲突情况一般不会发生,因为在SVN 和Git 中的如果冲突才会有可能出现缓存冲突,而当SVN 和Git冲突解决(使用”自己“或”他人“)后缓存文件也就使用当前解决冲突的版本
(关键:先Git或SVN 解决冲突后,才会打开项目,只有当项目启动才会触发 加速缓存)

8.预警

加速器本身并没有提供预警,可以考虑 接入 prometheus
在这里插入图片描述

如果不考虑接入,可以自己做预警(写一个程序,监控缓存文件夹大小),或者手动预警(隔一段时间看一下即可)

9.不同项目/不同配置-同种资源

根据官方文档,加速器可以不加速的资源有这样几类
1.脚本文件会被忽略
2.3D建模软件生成的本机文件或中间FBX,3D建模软件导出的FBX会被缓存
在这里插入图片描述

同种资源在不同项目会被多次缓存(同种资源不同路径也会被多次缓存),只要是被unity所识别的文件(相同文件在不同地方,也会有两份的缓存),基本可缓存,可加速。

相同项目,相同文件,相同位置,如果配置不同,会有多份缓存,且不会加速下载(因为第一次要上传缓存,即使服务端有相同的文件缓存)。

总结:
建议同项目使用同配置文件,可以减小缓存大小
所有项目使用统一配置,也许可以进一步减少缓存大小,但是可能造成未知错误。

10.缓存清除

缓存文件无法识别,所以手动选择性清理难以做到,根据官网所说,加速器会自动清理缓存,但是并没有给出详细的清除机制的说明。
在这里插入图片描述

官网说有定期清理功能
在这里插入图片描述

推荐阅读