Volans has submitted this change and it was merged.
Change subject: MariaDB: separate external storage my.cnf
......................................................................
MariaDB: separate external storage my.cnf
- Increased max_connection=10000 (was 5000)
- Set thread_pool_max_threads=2000 (was the default 500)
- Set thread_pool_size=40 (was 32)
Bug: T133265
Change-Id: I56da6dd098106888a5f8832ed975681fb38ac601
---
M manifests/role/mariadb.pp
A templates/mariadb/production-es.my.cnf.erb
2 files changed, 171 insertions(+), 1 deletion(-)
Approvals:
Jcrespo: Looks good to me, but someone else must approve
Volans: Looks good to me, approved
jenkins-bot: Verified
diff --git a/manifests/role/mariadb.pp b/manifests/role/mariadb.pp
index 924cb4c..8727f81 100644
--- a/manifests/role/mariadb.pp
+++ b/manifests/role/mariadb.pp
@@ -511,9 +511,15 @@
mariadb10 => true,
}
+ if ($shard in ['es1', 'es2', 'es3']) {
+ $config = 'mariadb/production-es.my.cnf.erb'
+ } else {
+ $config = 'mariadb/production.my.cnf.erb'
+ }
+
class { 'mariadb::config':
prompt => "PRODUCTION ${shard}",
- config => 'mariadb/production.my.cnf.erb',
+ config => $config,
password => $passwords::misc::scripts::mysql_root_pass,
datadir => '/srv/sqldata',
tmpdir => '/srv/tmp',
diff --git a/templates/mariadb/production-es.my.cnf.erb
b/templates/mariadb/production-es.my.cnf.erb
new file mode 100644
index 0000000..df65849
--- /dev/null
+++ b/templates/mariadb/production-es.my.cnf.erb
@@ -0,0 +1,164 @@
+# Warning: This file is managed by Puppet!
+# Production
+
+[client]
+port = 3306
+socket = /tmp/mysql.sock
+<% if @ssl == 'on' %>
+# ssl
+ssl-ca=/etc/mysql/ssl/cacert.pem
+ssl-cert=/etc/mysql/ssl/server-cert.pem
+ssl-key=/etc/mysql/ssl/server-key.pem
+# skip server cert validation until we generate one cert per server
+# it would check the cert's common name against the host
+# ssl-verify-server-cert
+<% elsif @ssl == 'puppet-cert' %>
+# ssl
+ssl-ca=/etc/ssl/certs/Puppet_Internal_CA.pem
+ssl-cert=/etc/mysql/ssl/cert.pem
+ssl-key=/etc/mysql/ssl/server.key
+ssl-verify-server-cert
+<% elsif @ssl == 'multiple-ca' %>
+# ssl
+ssl-ca=/etc/mysql/ssl/ca.crt
+ssl-cert=/etc/mysql/ssl/cert.pem
+ssl-key=/etc/mysql/ssl/server.key
+# skip server cert validation until we generate one cert per server
+# it would check the cert's common name against the host
+# ssl-verify-server-cert
+<% end %>
+
+[mysqld]
+
+user = mysql
+socket = /tmp/mysql.sock
+port = 3306
+extra_port = 3307
+datadir = <%= @datadir %>
+tmpdir = <%= @tmpdir %>
+server_id = <%= @server_id %>
+
+# Always start in read_only mode.
+# Master selection will be handled by cluster control.
+read_only = on
+
+log_bin
+log_slave_updates
+skip-external-locking
+skip-name-resolve
+temp-pool
+
+thread_handling = pool-of-threads
+thread_pool_stall_limit = 100
+thread_pool_size = 40
+thread_pool_max_threads = 2000
+max_connections = 10000
+back_log = 500
+extra_max_connections = 10
+max_connect_errors = 1000000000
+max_allowed_packet = 32M
+connect_timeout = 3
+query_cache_size = 0
+query_cache_type = 0
+event_scheduler = 1
+log-warnings = 0
+thread_stack = 192K
+thread_cache_size = 300
+interactive_timeout = 28800
+wait_timeout = 3600
+transaction-isolation = REPEATABLE-READ
+use_stat_tables = preferably
+
+sync_binlog = 1
+binlog_cache_size = 1M
+max_binlog_size = 1000M
+binlog_format = <%= @binlog_format %>
+expire_logs_days = 7
+slave_transaction_retries = 4294967295
+sql-mode = IGNORE_BAD_TABLE_OPTIONS
+tmp_table_size = 64M
+max_heap_table_size = 64M
+
+table_open_cache = 50000
+table_definition_cache = 40000
+open-files-limit = 200000
+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_stats_sample_pages = 16
+innodb_stats_method = nulls_unequal
+aria_pagecache_buffer_size = 1G
+join_cache_level = 8
+
+# dump and load innodb buffer at start and stop
+innodb_buffer_pool_load_at_startup = 1
+innodb_buffer_pool_dump_at_shutdown = 1
+
+<% if @kernelversion < "3.19" %>
+# Until kernel 3.16 http://www.spinics.net/lists/stable/msg61873.html
+# At least, I think so. For now we need to avoid the an assertion failure on
Trusty w/ 3.13
+innodb_use_native_aio = 0
+innodb_read_io_threads = 16
+innodb_write_io_threads = 8
+<% end %>
+<% if @ssl == 'on' %>
+# ssl
+ssl-ca=/etc/mysql/ssl/cacert.pem
+ssl-cert=/etc/mysql/ssl/server-cert.pem
+ssl-key=/etc/mysql/ssl/server-key.pem
+ssl-cipher=TLSv1.2
+<% elsif @ssl == 'puppet-cert' %>
+# ssl
+ssl-ca=/etc/ssl/certs/Puppet_Internal_CA.pem
+ssl-cert=/etc/mysql/ssl/cert.pem
+ssl-key=/etc/mysql/ssl/server.key
+ssl-cipher=TLSv1.2
+<% elsif @ssl == 'multiple-ca' %>
+# ssl
+ssl-ca=/etc/mysql/ssl/ca.crt
+ssl-cert=/etc/mysql/ssl/cert.pem
+ssl-key=/etc/mysql/ssl/server.key
+ssl-cipher=TLSv1.2
+<% end %>
+<% if @p_s == 'on' %>
+# Enabling performance_schema (disabled by default in MariaDB10)
+performance_schema = 1
+# downsizing performance schema memory usage: T99485
+performance_schema_digests_size = -1
+performance_schema_max_thread_instances = 500
+performance_schema_max_cond_instances = 1000
+performance_schema_accounts_size = 300
+performance_schema_hosts_size = 300
+performance_schema_events_statements_history_size = 10
+performance_schema_events_statements_history_long_size = 1000
+performance_schema_events_waits_history_size = 10
+performance_schema_events_waits_history_long_size = 1000
+performance_schema_events_stages_history_size = 10
+performance_schema_events_stages_history_long_size = 1000
+performance_schema_max_mutex_instances = 5000
+performance_schema_max_rwlock_instances = 2000
+performance_schema_max_socket_instances = 500
+performance_schema_max_table_instances = 1000
+<% else %>
+# only enable userstat if p_s is disabled
+performance_schema = 0
+userstat = 1
+<% end %>
+
+optimizer_switch =
'mrr=on,mrr_cost_based=on,mrr_sort_keys=on,optimize_join_buffer_size=on'
+
+[mysqldump]
+
+quick
+max_allowed_packet = 32M
+
+#!includedir /etc/mysql/conf.d/
--
To view, visit https://gerrit.wikimedia.org/r/284666
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I56da6dd098106888a5f8832ed975681fb38ac601
Gerrit-PatchSet: 6
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Volans <[email protected]>
Gerrit-Reviewer: Jcrespo <[email protected]>
Gerrit-Reviewer: Volans <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits