
The max connection calculation uses the number of vcpus reported by ansible however it's using the wrong value in one portion of the calculation. The result is that the calculation returns 0 rather than the intended 200 when there are both x86 and POWER controllers. Change-Id: I48314a3b701da4df6aaa0c163b14da36a1e70b7f Closes-Bug: #1647106
97 lines
2.8 KiB
Django/Jinja
97 lines
2.8 KiB
Django/Jinja
{%- set all_calculated_max_connections = [] %}
|
|
{%- for galera_node in galera_cluster_members %}
|
|
{%- set vcpus = hostvars[galera_node]['ansible_processor_vcpus'] %}
|
|
{%- if all_calculated_max_connections.append((vcpus | int > 0) | ternary (vcpus, 2) * 100) %}
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
{%- set calculated_max_connections = all_calculated_max_connections|sort %}
|
|
|
|
# {{ ansible_managed }}
|
|
|
|
[client]
|
|
port = 3306
|
|
socket = /var/run/mysqld/mysqld.sock
|
|
|
|
|
|
[mysqld_safe]
|
|
socket = /var/run/mysqld/mysqld.sock
|
|
nice = 0
|
|
log_error = /var/log/mysql_logs/galera_server_error.log
|
|
|
|
|
|
[mysql]
|
|
default-character-set = utf8
|
|
|
|
|
|
[mysqld]
|
|
user = mysql
|
|
collation-server = utf8_general_ci
|
|
init-connect = 'SET NAMES utf8'
|
|
character-set-server = utf8
|
|
datadir = /var/lib/mysql
|
|
bind-address = ::
|
|
{% if galera_server_id is defined %}
|
|
server-id = {{ galera_server_id }}
|
|
{% endif %}
|
|
|
|
# LOGGING #
|
|
log-queries-not-using-indexes = {{ galera_unindexed_query_logging }}
|
|
slow-query-log = {{ galera_slow_query_logging }}
|
|
slow-query-log-file = /var/log/mysql_logs/mysql-slow.log
|
|
log_error = /var/log/mysql_logs/galera_server_error.log
|
|
log-bin = /var/lib/mysql/mariadb-bin
|
|
log-bin-index = /var/lib/mysql/mariadb-bin.index
|
|
expire-logs-days = 7
|
|
log_slave_updates = 1
|
|
log_bin_trust_function_creators = 1
|
|
|
|
# SAFETY #
|
|
max-allowed-packet = 16M
|
|
max-connect-errors = 1000000
|
|
|
|
# NOTE: The number of max connections is defined by ( host_vcpus * 100 ). This value
|
|
# is the lowest integer based on the ansible facts gathered from every galera node.
|
|
# Computing the connections value using the lowest denominator maintains cluster integrity
|
|
# by not attempting to over commit to a less capable machine.
|
|
# These are the computed max_connections based on cluster data {{ calculated_max_connections }}
|
|
max_connections = {{ galera_max_connections | default(calculated_max_connections[0]) }}
|
|
|
|
wait_timeout = {{ galera_wait_timeout }}
|
|
|
|
# CACHES AND LIMITS #
|
|
tmp-table-size = {{ galera_max_heap_table_size }}
|
|
max-heap-table-size = {{ galera_tmp_table_size }}
|
|
query-cache-type = 0
|
|
query-cache-size = 0M
|
|
thread-cache-size = 50
|
|
open-files-limit = {{ galera_file_limits }}
|
|
table-definition-cache = 4096
|
|
table-open-cache = 10240
|
|
|
|
# INNODB #
|
|
innodb-flush-method = O_DIRECT
|
|
innodb-log-file-size = {{ galera_innodb_log_file_size }}
|
|
innodb-flush-log-at-trx-commit = 1
|
|
innodb-file-per-table = 1
|
|
innodb-buffer-pool-size = {{ galera_innodb_buffer_pool_size }}
|
|
|
|
# Depending on number of cores and disk sub
|
|
innodb-read-io-threads = 4
|
|
innodb-write-io-threads = 4
|
|
innodb-doublewrite = 1
|
|
innodb-log-buffer-size = {{ galera_innodb_log_buffer_size }}
|
|
innodb-buffer-pool-instances = 8
|
|
innodb-log-files-in-group = 2
|
|
innodb-thread-concurrency = 64
|
|
|
|
# avoid statistics update when doing e.g show tables
|
|
innodb_stats_on_metadata = 0
|
|
|
|
[mysqldump]
|
|
quick
|
|
quote-names
|
|
max_allowed_packet = 16M
|
|
|
|
|
|
!includedir /etc/mysql/conf.d/
|