TL; DR : есть ли способ динамически устанавливать параметры или политики ресурсов для ServicePackageResourceGovernancePolicy
и / или ResourceGovernancePolicy
, когда мы создаем новый экземпляр определенного ServiceType во время выполнения?
У нас есть сценарий использования для динамического управления ресурсами для каждого экземпляра службы (не типа).
Итак, в основном, у нас есть тип службы: VotingDataType .
Итак, вы описываете управление ресурсами в ApplicationManifest
, , взятом из документов , вот пример:
<ApplicationManifest>
...
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="VotingDataPkg" ServiceManifestVersion="1.0.0" />
...
<!-- Set resource governance at the service package level. -->
<ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[Memory]"/>
<!-- Set resource governance at the code package level. -->
<ResourceGovernancePolicy CodePackageRef="Code" CpuPercent="10" MemoryInMB="[Memory]" BlockIOWeight="[BlockIOWeight]"
MaximumIOBandwidth="[MaximumIOBandwidth]" MaximumIOps="[MaximumIOps]" MemoryReservationInMB="[MemoryReservationInMB]"
MemorySwapInMB="[MemorySwapInMB]"/>
</Policies>
</ServiceManifestImport>
...
</ApplicationManifest
Теперь для каждого клиента моя служба пользовательского размещения создаст новуюэкземпляр VotingDataType.Однако с помощью некоторых метаданных, которые мы получаем до того, как собираемся создать экземпляр нового экземпляра, мы решаем, нужен ли ему для начала экземпляр большего размера.поэтому вместо предела 10% ЦП мы хотим установить предел ЦП в 20%.
Затем наша служба размещения будет использовать следующий метод для создания нового экземпляра этой службы VotingDataType.fabricClient.ServiceManager.CreateServiceAsync(...)
.Однако мы не можем настроить параметры для ResourceGovernancePolicy
.
Есть ли способ динамически устанавливать параметры или политики ресурсов для ServicePackageResourceGovernancePolicy
и / или ResourceGovernancePolicy
, когда мы создаем новый экземпляр определенного ServiceType во время выполнения?