gpt4 book ai didi

performance - 打包大量文件以便将它们快速部署到 Azure 上的好方法是什么?

转载 作者:行者123 更新时间:2023-12-03 03:20:17 25 4
gpt4 key购买 nike

我的 Azure 角色依赖于一个巨大的 native 库,该库作为一组目录提供,总大小约为 700 MB。该库大约每年更新一次。当前的解决方案是将整个树打包到单个 .zip 文件中,然后将其拆分为 block 并上传到 Blob 存储中。当角色实例启动时,它会一一下载 block 并按顺序将它们保存到单个文件中,从而恢复原始 .zip。然后使用 Info-ZIP unzip 程序解压 .zip。

现在下载大约需要 25 秒,但解压可能需要 2-4 分钟,这还不够快。我查看了每个进程的性能计数器,看起来 unzip.exe 消耗的 CPU 时间不超过 25%,因此问题可能是繁重的 I/O - 必须从中读取 .zip磁盘,然后需要将提取的数据写入磁盘。我正在寻找其他一些方法来打包(和解包)库,以实现更快的部署。

如何打包该库,以便当我的代码在 Azure 上运行时它能尽快解压?

最佳答案

长时间运行的安装(即使在您的情况下大约需要 5 分钟)是您使用 VM 角色的完美原因。您构建自定义镜像(包含这些库),上传该镜像并将其用作实例的镜像。现在,如果您查看文档,则不应使用 VM 角色进行生产部署 - http://msdn.microsoft.com/en-us/library/windowsazure/gg433107

另一种选择是云驱动器。这是您在实例中作为 NTFS 驱动器安装的页 blob。您遇到的问题是只有一个实例可以挂载云驱动器(不真正支持多个实例)。

我的建议是:

  1. 在本地计算机上创建包含所需库的 VHD
  2. 将其作为页面 blob 上传到您的存储帐户
  3. 确保缓存足够大,以便可以容纳所有文件,以避免网络延迟(更多信息:CloudDrive.InitializeCache Method)
  4. 为每个实例创建一个快照并将该快照装载为云驱动器。这是一种能够在多个实例上使用“相同”云驱动器的解决方法。 (更多信息:CloudDrive.Snapshot Method)

另一种解决方案是将 VHD 下载到 LocalResource 并使用 diskpart 挂载它(在启动任务中)。

注意:我认为 VHD 文件是打包文件的另一种方式。

关于performance - 打包大量文件以便将它们快速部署到 Azure 上的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com