gpt4 book ai didi

powershell - 具有大型包的 Set-AzureVMDscExtension 会导致 PowerShell DSC 扩展中的内存使用量极大

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

我最终成功地使用所需状态配置和 Azure PowerShell SDK 方法(特别是 Publish-AzureVMDscConfiguration -> Set-AzureVMDscExtension -> Update-AzureVM 组合)来自动化我们的发布过程。

a way to send my build outputs somewhere accessible by the VM思考了一段时间后,我最终采取了将构建包附加到上传到 Azure 存储的配置包中的策略。

我现在的问题是,一旦虚拟机中的 PowerShell DSC 扩展开始下载该包,它的内存消耗就会急剧增加。当我打开任务管理器时,我可以看到新创建的 PowerShell 进程从 30 兆左右增加到 300,然后到 1.3GB,完全毁掉了我的虚拟机。

昨天下午,我离开工作并让它进行处理,但是当我今天登录虚拟机时,包含我的构建输出的内部 zip 文件在 DSCWork 文件夹中具有 0 字节。我的问题是,即使最终有效,也会花费很长时间并使我的虚拟机毫无用处......我什至无法在窗口之间进行更改远程访问,因为机器完全卡在 100% RAM 使用率。

为什么 PowerShell 需要这么多内存和时间来下载我的配置包?压缩后只有 60MB,解压后大约有 200MB。我可以做些什么来防止这种情况发生吗?

更新:

刚刚测试了一下,终于正确完成了。花了一个多小时,但文件还在那里……但这令人无法接受。

最佳答案

此问题应在扩展的下一次迭代中得到解决。同时,您可能需要考虑将构建内容上传到与配置 ZIP 包分开的 blob(您可以为此使用 Set-AzureStorageBlobContent)。

然后,您可以使用原始配置中的远程文件或脚本资源来下载 blob。请务必在配置中添加适当的依赖项,以便在使用 Blob 之前下载它。

configuration DownloadSample
{
Import-DscResource -Module xPSDesiredStateConfiguration

xRemoteFile Download
{
Uri = 'https://....blob.core.windows.net/windows-powershell-dsc/foo.zip?sv=...'
DestinationPath = 'd:\tmp\download.zip'
}
}

关于powershell - 具有大型包的 Set-AzureVMDscExtension 会导致 PowerShell DSC 扩展中的内存使用量极大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26653975/

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