gpt4 book ai didi

powershell - 使用 get-childItem 进行 PSRemoting 性能开销

转载 作者:行者123 更新时间:2023-12-05 01:09:16 24 4
gpt4 key购买 nike

这在 LOCALSERVER 上在 2.3 分钟内完成:

答:measure-command {$x = invoke-command {gci -recurse "C:\"}}
这在 LOCALSERVER 上完成 38.4 分钟:

乙:measure-command {$x = invoke-command -comp LOCALSERVER {gci -recurse "C:\"}}
为什么 B 这么慢?是否因为“输出被序列化为 XML,然后再次重组为对象”,如 here 所解释的, 有 B 但没有 A?还是有其他事情发生?

LOCALSERVER 运行带有 PS v3 的 Windows 2008R2。在这两种情况下 $x.count是 98973。

我想知道如何更改现有脚本以使用 PSRemoting 在远程服务器上进行文件搜索。我认为如果在远程目标上运行 gci,搜索可能会更快完成。在少数测试中,使用 PSRemoting 进行的搜索实际上运行的时间要长得多。我问回环方案只是因为它看起来是最简单的情况;我在远程服务器上看到了类似的结果。所以我会坚持这样的 UNC 路径搜索:

gci -recurse \\REMOTESERVER\C$\folder

...除非这些结果看起来很奇怪,并且对我的远程配置或语法进行一些调整可能会大大提高性能?

最佳答案

正如您所提到的,远程调用命令所需的时间还必须考虑反序列化从远程管道返回的任何给定对象所需的时间(在您的情况下是 C 驱动器的 FileSystemInfo 的整个树)。我建议限制您通过网络序列化和反序列化的对象数量,并且在比较服务器的性能时,也许可以考虑在您运行代码的机器上花费的时间:

Invoke-Command -comp LOCALSERVER { Measure-Command { gci -recurse "C:\" } }

关于powershell - 使用 get-childItem 进行 PSRemoting 性能开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16092778/

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