[#956] node: Allow to reload goroutine pool sizes
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
426cf58b98
commit
805862f4b7
2 changed files with 24 additions and 0 deletions
|
@ -1235,6 +1235,7 @@ func (c *cfg) reloadConfig(ctx context.Context) {
|
||||||
setRuntimeParameters(c)
|
setRuntimeParameters(c)
|
||||||
return nil
|
return nil
|
||||||
}})
|
}})
|
||||||
|
components = append(components, dCmp{"pools", c.reloadPools})
|
||||||
components = append(components, dCmp{"tracing", func() error {
|
components = append(components, dCmp{"tracing", func() error {
|
||||||
updated, err := tracing.Setup(ctx, *tracingconfig.ToTracingConfig(c.appCfg))
|
updated, err := tracing.Setup(ctx, *tracingconfig.ToTracingConfig(c.appCfg))
|
||||||
if updated {
|
if updated {
|
||||||
|
@ -1279,6 +1280,28 @@ func (c *cfg) reloadConfig(ctx context.Context) {
|
||||||
c.log.Info(logs.FrostFSNodeConfigurationHasBeenReloadedSuccessfully)
|
c.log.Info(logs.FrostFSNodeConfigurationHasBeenReloadedSuccessfully)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *cfg) reloadPools() error {
|
||||||
|
newSize := objectconfig.Put(c.appCfg).PoolSizeLocal()
|
||||||
|
c.reloadPool(c.cfgObject.pool.putLocal, newSize, "object.put.local_pool_size")
|
||||||
|
|
||||||
|
newSize = objectconfig.Put(c.appCfg).PoolSizeRemote()
|
||||||
|
c.reloadPool(c.cfgObject.pool.putRemote, newSize, "object.put.remote_pool_size")
|
||||||
|
|
||||||
|
newSize = replicatorconfig.PoolSize(c.appCfg)
|
||||||
|
c.reloadPool(c.cfgObject.pool.replication, newSize, "replicator.pool_size")
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *cfg) reloadPool(p *ants.Pool, newSize int, name string) {
|
||||||
|
oldSize := p.Cap()
|
||||||
|
if oldSize != newSize {
|
||||||
|
c.log.Info(logs.FrostFSNodePoolConfigurationUpdate, zap.String("field", name),
|
||||||
|
zap.Int("old", oldSize), zap.Int("new", newSize))
|
||||||
|
p.Tune(newSize)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (c *cfg) reloadAppConfig() error {
|
func (c *cfg) reloadAppConfig() error {
|
||||||
unlock := c.LockAppConfigExclusive()
|
unlock := c.LockAppConfigExclusive()
|
||||||
defer unlock()
|
defer unlock()
|
||||||
|
|
|
@ -451,6 +451,7 @@ const (
|
||||||
FrostFSNodeLoggerConfigurationPreparation = "logger configuration preparation"
|
FrostFSNodeLoggerConfigurationPreparation = "logger configuration preparation"
|
||||||
FrostFSNodeTracingConfigationUpdated = "tracing configation updated"
|
FrostFSNodeTracingConfigationUpdated = "tracing configation updated"
|
||||||
FrostFSNodeStorageEngineConfigurationUpdate = "storage engine configuration update"
|
FrostFSNodeStorageEngineConfigurationUpdate = "storage engine configuration update"
|
||||||
|
FrostFSNodePoolConfigurationUpdate = "adjust pool configuration"
|
||||||
FrostFSNodeUpdatedConfigurationApplying = "updated configuration applying"
|
FrostFSNodeUpdatedConfigurationApplying = "updated configuration applying"
|
||||||
FrostFSNodeConfigurationHasBeenReloadedSuccessfully = "configuration has been reloaded successfully"
|
FrostFSNodeConfigurationHasBeenReloadedSuccessfully = "configuration has been reloaded successfully"
|
||||||
FrostFSNodeReadNewlyCreatedContainerAfterTheNotification = "read newly created container after the notification"
|
FrostFSNodeReadNewlyCreatedContainerAfterTheNotification = "read newly created container after the notification"
|
||||||
|
|
Loading…
Reference in a new issue