当我在本地部署或使用集群时,我在本地计算机上面临资源资源急剧下降。
我想知道您是否可以推荐一种方法来减轻这种负面影响(软件和硬件)?
其他信息:
It is important to understand that the Service Fabric local cluster is not an emulator or simulator. It runs the same platform code that is found on multi-machine clusters. The only difference is that it runs the platform processes that are normally spread across five machines on one machine.
我的一个办法是再添加一个 SSD,这样操作系统和 Service Fabric 就不会竞争总线资源。添加 SSD 并使用 PowerShell 将集群移动到新驱动器(没有操作系统的驱动器)后,我发现效果可以忽略不计。查看性能监视器,似乎大部分 IO 仍然流向主(操作系统)驱动器。有什么想法吗?
我有一台具有以下规范的标准开发机器:
- 较新的 i7 CPU
- 16GB 内存
- 一个 SSD
- 还有一个很棒的显示器(开玩笑:-)
这个问题也可能很适合硬件论坛
最佳答案
Service Fabric SDK 在您的开发计算机上创建一个 5 节点群集,这意味着每个系统服务都有 5 个实例(进程)。您可以将节点数量减少到 3 个(最小值)。
为此,您必须手动编辑集群 list 并重新创建它。 list 位于
%ProgramFiles%\Microsoft SDKs\Service Fabric\ClusterSetup\NonSecure\ClusterManifestTemplate.xml
- 删除
NodeType3
和NodeType4
- 删除
_Node_3
和_Node_4
- 更改:
ExpectedClusterSize
更改为2
,TargetReplicaSetSize
更改为3
,MinReplicaSetSize
更改为2
(出现多次;您可以在这里尝试较低的值,我还没有机会测试它)
注意:您每次更新 SDK 时都需要应用这些更改。
保存文件后,重新创建本地集群(例如使用集群管理器托盘应用程序)。
此外,您应该确保在部署应用程序时,它们也具有本地部署的默认值(即实例和分区计数设置为 1)。这些通常出现在 Local.xml
参数文件中。
您可以尝试的最后一件事是将服务 EXE 配置为“Windows 应用程序”而不是“控制台应用程序”(在每个服务的项目属性中),这将减少 conhost.exe
进程。
关于powershell - Azure Service Fabric - 提高本地性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38574983/