Xcode 服务器集成缓存位置、Ram 磁盘和 _xcsbuildd

Posted

技术标签:

【中文标题】Xcode 服务器集成缓存位置、Ram 磁盘和 _xcsbuildd【英文标题】:Xcode Server Integration Cache Location, Ram Disk, and _xcsbuildd 【发布时间】:2016-05-26 18:53:13 【问题描述】:

我正在使用 Xcode Server 和持续集成。我们正在经历非常缓慢的构建时间。

我的第一次加速尝试是使用 RAM DISK 并在其中存储构建文件。我们正在使用带有 SATA 驱动器的 mac mini,因此我试图了解通过从构建过程的一部分中删除该驱动器可以节省多少时间。

我创建了一个 RAM 磁盘: diskutil erasevolume HFS+ 'XcodeData' `hdiutil attach -nomount ram://8388608

我首先尝试将 DerivedData 位置设置到 ram 磁盘上,但是在运行 CI 构建数据时并没有存储在那里。

我在/Library/Developer/Integrations/Caches 找到了每个 CI 的构建数据。

我尝试符号链接ln -s /XcodeData/IntegrationCaches/ /Library/Developer/Integrations/Caches,但在运行 CI 时出现权限错误。

我尝试了chmod 777 /XcodeData/IntegrationCaches/,但仍然遇到权限问题。

我还尝试将我的 ramdisk 文件夹更改为 chown _xcsbuildd IntegrationsCaches 以获取 ram 磁盘文件夹。

到目前为止还没有运气。

有没有其他人尝试过这样做?

【问题讨论】:

当我需要查看集成缓存文件夹中的内容时,我会在查找器中打开它的检查器窗口,并将我的用户帐户添加到可以读取/写入它的已批准用户列表中。 @bolnad 是的,这就是我最终弄清楚的。默认情况下,ram 磁盘具有忽略所有权集,可以在该卷的 finder 中的 Get Info 窗口中将其关闭。谢谢! 很高兴它有帮助,我相信你知道这一点,但这是一个你可以浪费太多时间的地方,祝你好运! @bolnad 是的,我很快就明白了。 【参考方案1】:

就像 cmets 中提到的 @bolnad 一样,事实证明 RAM DISK 默认情况下会忽略所有权。您可以在该卷的查找器中“获取信息”,然后取消选中“忽略所有权”,这将允许您使用 chmod 和工具在需要时更改用户。

【讨论】:

以上是关于Xcode 服务器集成缓存位置、Ram 磁盘和 _xcsbuildd的主要内容,如果未能解决你的问题,请参考以下文章

缓存设计

20145336张子扬 《信息安全系统设计基础》第7周学习总结

2017-2018-1 20155334 《信息安全系统设计基础》第九周学习总结

集成后的 Xcode 6 Bot 将 .archive 文件下载到位置

华三阵列卡8g缓存

Cache As Ram