Springle has submitted this change and it was merged. Change subject: Add a clean coredb-equivalent configuration MariaDB role. Use it on db1020 as a slave for m2 not handling real traffic. ......................................................................
Add a clean coredb-equivalent configuration MariaDB role. Use it on db1020 as a slave for m2 not handling real traffic. Change-Id: I34d81c880c6de849277af4fae6135d47ad2b9281 --- M manifests/role/mariadb.pp M manifests/site.pp A templates/mariadb/production.my.cnf.erb 3 files changed, 110 insertions(+), 0 deletions(-) Approvals: Springle: Looks good to me, approved jenkins-bot: Verified diff --git a/manifests/role/mariadb.pp b/manifests/role/mariadb.pp index 45edb64..4204181 100644 --- a/manifests/role/mariadb.pp +++ b/manifests/role/mariadb.pp @@ -183,3 +183,33 @@ jobdefaults => "Weekly-${backup::host::day}-${backup::host::pool}", } } + +# Not suitable for S1-S7 yet. Fine for M1-M3. +class role::mariadb::production( + $shard, + ) { + + system::role { "role::mariadb::production::${shard}": + description => "Core DB Server ${shard}", + } + + include standard + include mariadb::packages_wmf + include passwords::misc::scripts + + class { 'mariadb::config': + prompt => "PRODUCTION ${shard}", + config => 'mariadb/production.my.cnf.erb', + password => $passwords::misc::scripts::mysql_root_pass, + datadir => '/a/sqldata', + tmpdir => '/a/tmp', + } + + class { 'mariadb::monitor_disk': + contact_group => 'admins', + } + + class { 'mariadb::monitor_process': + contact_group => 'admins', + } +} diff --git a/manifests/site.pp b/manifests/site.pp index 804eb80..cf15b3b 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -788,6 +788,14 @@ } } +node 'db1020.eqiad.wmnet' { + include admin + $cluster = 'mysql' + class { 'role::mariadb::production': + shard => 'm2', + } +} + ## m3 shard node 'db1043.eqiad.wmnet' { include admin diff --git a/templates/mariadb/production.my.cnf.erb b/templates/mariadb/production.my.cnf.erb new file mode 100644 index 0000000..910debc --- /dev/null +++ b/templates/mariadb/production.my.cnf.erb @@ -0,0 +1,72 @@ +# Production + +[client] +port = 3306 +socket = /tmp/mysql.sock + +[mysqld] + +user = mysql +socket = /tmp/mysql.sock +port = 3306 +datadir = <%= @datadir %> +tmpdir = <%= @tmpdir %> +server_id = <%= @server_id %> +read_only = 1 + +log_bin +log_slave_updates +skip-external-locking +skip-name-resolve +temp-pool + +max_connections = 2500 +max_connect_errors = 1000000000 +max_allowed_packet = 16M +connect_timeout = 3 +query_cache_size = 0 +query_cache_type = 0 +event_scheduler = 1 +userstat = 1 +log-warnings = 0 +thread_stack = 192K +thread_cache_size = 300 +interactive_timeout = 28800 +wait_timeout = 3600 + +sync_binlog = 1 +binlog_cache_size = 1M +max_binlog_size = 1000M +binlog_format = statement +expire_logs_days = 30 +slave_transaction_retries = 4294967295 + +table_open_cache = 50000 +table_definition_cache = 40000 +character_set_server = binary +character_set_filesystem = binary +collation_server = binary + +default-storage-engine = InnoDB +innodb_file_per_table = 1 +innodb_buffer_pool_size = <%= (Float(@memorysize.split[0]) * 0.75).round %>G +innodb_log_file_size = 2G +innodb_flush_log_at_trx_commit = 1 +innodb_flush_method = O_DIRECT +innodb_thread_concurrency = 0 +innodb_io_capacity = 1000 +innodb_read_io_threads = 16 +innodb_write_io_threads = 8 +innodb_stats_sample_pages = 16 +innodb_stats_method = nulls_unequal +innodb_locks_unsafe_for_binlog = 1 +aria_pagecache_buffer_size = 1G + +optimizer_switch = 'mrr=on,mrr_cost_based=on,mrr_sort_keys=on,optimize_join_buffer_size=on' + +[mysqldump] + +quick +max_allowed_packet = 16M + +#!includedir /etc/mysql/conf.d/ \ No newline at end of file -- To view, visit https://gerrit.wikimedia.org/r/138296 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I34d81c880c6de849277af4fae6135d47ad2b9281 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Springle <sprin...@wikimedia.org> Gerrit-Reviewer: Springle <sprin...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits