Files
2023-12-21 20:07:48 +08:00

67 lines
2.9 KiB
Python

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
#############################################################################
# Copyright (c) 2023 Huawei Technologies Co.,Ltd.
#
# openGauss is licensed under Mulan PSL v2.
# You can use this software according to the terms
# and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#
# http://license.coscl.org.cn/MulanPSL2
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# ----------------------------------------------------------------------------
# Description : gs_perfconfg is a utility to optimize system and database configure about openGauss
#############################################################################
from impl.perf_config.basic.project import Project
from impl.perf_config.basic.tuner import Tuner, TunerGroup
from impl.perf_config.basic.guc import GucMap, GUCTuneGroup
class ConnectionGUC(GUCTuneGroup):
def __init__(self):
super(ConnectionGUC, self).__init__()
self.light_comm = self.bind('light_comm')
self.listen_addresses = self.bind('listen_addresses')
self.local_bind_address = self.bind('local_bind_address')
self.port = self.bind('port')
self.max_connections = self.bind('max_connections')
self.max_inner_tool_connections = self.bind('max_inner_tool_connections')
self.sysadmin_reserved_connections = self.bind('sysadmin_reserved_connections')
self.unix_socket_directory = self.bind('unix_socket_directory')
self.unix_socket_group = self.bind('unix_socket_group')
self.unix_socket_permissions = self.bind('unix_socket_permissions')
self.connection_info = self.bind('connection_info')
self.enable_dolphin_proto = self.bind('enable_dolphin_proto')
self.dolphin_server_port = self.bind('dolphin_server_port')
self.tcp_keepalives_idle = self.bind('tcp_keepalives_idle')
self.tcp_keepalives_interval = self.bind('tcp_keepalives_interval')
self.tcp_keepalives_count = self.bind('tcp_keepalives_count')
self.tcp_user_timeout = self.bind('tcp_user_timeout')
self.comm_proxy_attr = self.bind('comm_proxy_attr')
def calculate(self):
infos = Project.getGlobalPerfProbe()
self.light_comm.set('on')
max_connections = max(int(infos.business.parallel) * 5, 100)
self.max_connections.set(str(max_connections))
class PoolerGUC(GUCTuneGroup):
def __init__(self):
super(PoolerGUC, self).__init__()
self.pooler_maximum_idle_time = self.bind('pooler_maximum_idle_time')
self.minimum_pool_size = self.bind('minimum_pool_size')
self.cache_connection = self.bind('cache_connection')
def calculate(self):
pass