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

Reply via email to