gpt4 book ai didi

powershell - "OutOfMemoryException"对 60Gb 文件使用压缩归档时

转载 作者:行者123 更新时间:2023-12-03 09:42:42 27 4
gpt4 key购买 nike

我正在尝试使用 Compress-Archive 压缩 IIS 日志文件(总共 60GB) ,但是我收到错误:

"Exception of type 'System.OutOfMemoryException' was thrown."


$exclude = Get-ChildItem -Path . | Sort-Object -Descending | Select-Object -First 1
$ArchiveContents = Get-ChildItem -Path . -Exclude $exclude | Sort-Object -Descending
Compress-Archive -Path $ArchiveContents -DestinationPath .\W3SVC2.zip -Force

我已经调整好了 MaxMemoryPerShellMB2048MB并重新启动 WinRM 服务。

RAM 执行命令时内存消耗超过 6GB。

最佳答案

正如马特所建议的那样,我建议将其归档为文件集。就像是:

For($i=0;$i -le $ArchiveContents.Count;$i=$i+10){
Compress-Archive -Path $ArchiveContents[$i..($i+9)] -DestinationPath .\W3SVC2-$i.zip -Force
}

这样您一次只能处理 10 个文件。您可能想要调整文件的数量,具体取决于您拥有的文件数量和大小,即:如果您有 300 个文件,每个文件大小为 200MB,那么一次 10 个可能会很好,而如果您有 3000 个文件,每个文件大小为 20MB每个你可能想要增加到 50 甚至 100。

编辑:我刚看了, Compress-Archive支持通过指定 -Update 将文件添加到存档中范围。您应该能够做与上面相同的事情,稍作修改,以制作 1 个大文件。
For($i=0;$i -le $ArchiveContents.Count;$i=$i+10){
Compress-Archive -Path $ArchiveContents[$i..($i+9)] -DestinationPath .\W3SVC2.zip -Update
}

这应该一次向目标存档添加 10 个文件,而不是尝试一次添加所有文件。

关于powershell - "OutOfMemoryException"对 60Gb 文件使用压缩归档时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43616028/

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