Hallo Community,
ich betreibe ein recht datenbankintensives Projekt und habe deshalb zwei vServer (die Größten von Server4You mit SSD, 16 vCores und 18GB RAM ) im Einsatz, jeweils mit Ubuntu 14.04. als:
Mir geht es hier um den Datenbankserver, auf dem lediglich MariaDB als MySQL-Server läuft.
Die Konfiguration: my.cnf
Das Ergebnis von mysqltuner.pl:
Die Maschine lief einige Monate lang stabil, macht aktuell aber ein paar Probleme. Läuft instabil: Queries brauchen sehr lange, Verbindungszeit zum Server stieg teilweise von 0.002 auf 0.4 Sekunden, Serverload ungewöhnlich hoch bis hin zum Super-GAU: Der MySQL-Dienst hängt sich gänzlich auf.
Ich vermute, dass es an der Natur der Virtual Server liegt: Das Hostsystem ist punktuell hoch ausgelastet und meine Maschine muss auch darunter leiden. Nun stellt sich mir die Frage, wie ich diese auch in solchen Fällen stabilisiere.
Laut mysqltuner ist die theoretische RAM-Auslastung des Servers zu hoch. Okay. Allerdings habe ich diese schon deutlich reduziert und früher (um ein vielfaches höher) hat das auch keine Probleme bereitet.
Habt ihr Tipps für mich?
ich betreibe ein recht datenbankintensives Projekt und habe deshalb zwei vServer (die Größten von Server4You mit SSD, 16 vCores und 18GB RAM ) im Einsatz, jeweils mit Ubuntu 14.04. als:
- Webserver
- Datenbankserver
Mir geht es hier um den Datenbankserver, auf dem lediglich MariaDB als MySQL-Server läuft.
Die Konfiguration: my.cnf
Code:
# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
skip-name-resolve
key_buffer_size = 1024M
max_allowed_packet = 2M
table_open_cache = 1024
sort_buffer_size = 64M
read_buffer_size = 64M
read_rnd_buffer_size = 64M
myisam_sort_buffer_size = 64M
thread_cache_size = 16
query_cache_size = 256M
join_buffer_size = 128M
tmp_table_size = 96M
max_heap_table_size = 96M
interactive_timeout = 30
wait_timeout = 30
max_connections = 50
low_priority_updates = 1
innodb_file_per_table = 1
innodb_buffer_pool_size = 6G
innodb_buffer_pool_instances = 6
innodb_thread_concurrency = 0
innodb_read_io_threads = 32
innodb_write_io_threads = 32
innodb_sort_buffer_size = 64M
thread_concurrency = 32
Das Ergebnis von mysqltuner.pl:
Code:
>> MySQLTuner 1.6.18 - Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
[--] Skipped version check for MySQLTuner script
[OK] Logged in using credentials from debian maintenance account.
[!!] Currently running unsupported MySQL version 10.0.25-MariaDB-0ubuntu0.16.04.1
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -----------------------------------------------------------------
[--] Status: +ARCHIVE +Aria +BLACKHOLE +CSV +FEDERATED +InnoDB +MEMORY +MRG_MyISAM +MyISAM +PERFORMANCE_SCHEMA
[--] Data in MyISAM tables: 976M (Tables: 19)
[--] Data in InnoDB tables: 5G (Tables: 5)
[OK] Total fragmented tables: 0
-------- Security Recommendations ------------------------------------------------------------------
[OK] There are no anonymous accounts for any database users
[OK] All database users have passwords assigned
[!!] User 'osDB2015usr@%' hasn't specific host restriction.
[!!] There is no basic password file list!
-------- CVE Security Recommendations --------------------------------------------------------------
[--] Skipped due to --cvefile option undefined
-------- Performance Metrics -----------------------------------------------------------------------
[--] Up for: 16h 27m 26s (2M q [37.194 qps], 17K conn, TX: 8G, RX: 592M)
[--] Reads / Writes: 98% / 2%
[--] Binary logging is disabled
[--] Physical Memory : 18.0G
[--] Max MySQL memory : 23.1G
[--] Other process memory: 37.8M
[--] Total buffers: 7.5G global + 320.2M per thread (50 max threads)
[--] P_S Max memory usage: 0B
[--] Galera GCache Max memory usage: 0B
[!!] Maximum reached memory usage: 18.1G (100.64% of installed RAM)
[!!] Maximum possible memory usage: 23.1G (128.44% of installed RAM)
[!!] Overall possible memory usage with other process exceeded memory
[OK] Slow queries: 0% (2/2M)
[OK] Highest usage of available connections: 68% (34/50)
[OK] Aborted connections: 0.00% (0/17319)
[!!] Query cache may be disabled by default due to mutex contention.
[OK] Sorts requiring temporary tables: 0% (26 temp sorts / 412K sorts)
[!!] Joins performed without indexes: 2447
[OK] Temporary tables created on disk: 15% (27K on disk / 184K total)
[OK] Thread cache hit rate: 99% (34 created / 17K connections)
[OK] Table cache hit rate: 157% (167 open / 106 opened)
[OK] Open file limit used: 6% (129/2K)
[OK] Table locks acquired immediately: 99% (1M immediate / 1M locks)
-------- Performance schema ------------------------------------------------------------------------
[--] Performance schema is disabled.
-------- ThreadPool Metrics ------------------------------------------------------------------------
[--] ThreadPool stat is enabled.
[--] Thread Pool Size: 16 thread(s).
[--] Using default value is good enough for your version (10.0.25-MariaDB-0ubuntu0.16.04.1)
-------- MyISAM Metrics ----------------------------------------------------------------------------
[!!] Key buffer used: 61.6% (661M used / 1B cache)
[OK] Key buffer size / total MyISAM indexes: 1.0G/444.3M
[OK] Read Key buffer hit rate: 99.7% (173M cached / 455K reads)
[!!] Write Key buffer hit rate: 0.3% (9K cached / 9K writes)
-------- AriaDB Metrics ----------------------------------------------------------------------------
[--] AriaDB is enabled.
[OK] Aria pagecache size / total Aria indexes: 128.0M/1B
[OK] Aria pagecache hit rate: 99.5% (3M cached / 18K reads)
-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] InnoDB is enabled.
[OK] InnoDB buffer pool / data size: 6.0G/5.2G
[OK] InnoDB buffer pool instances: 6
[--] InnoDB Buffer Pool Chunk Size not used or defined in your version
[OK] InnoDB Read buffer efficiency: 100.00% (12856547005 hits/ 12856705594 total)
[!!] InnoDB Write Log efficiency: 82.53% (147298 hits/ 178486 total)
[OK] InnoDB log waits: 0.00% (0 waits / 31188 writes)
-------- TokuDB Metrics ----------------------------------------------------------------------------
[--] TokuDB is disabled.
-------- Galera Metrics ----------------------------------------------------------------------------
[--] Galera is disabled.
-------- Replication Metrics -----------------------------------------------------------------------
[--] Galera Synchronous replication: NO
[--] No replication slave(s) for this server.
[--] This is a standalone server.
-------- Recommendations ---------------------------------------------------------------------------
General recommendations:
Restrict Host for user@% to user@SpecificDNSorIp
MySQL started within last 24 hours - recommendations may be inaccurate
Reduce your overall MySQL memory footprint for system stability
Dedicate this server to your database for highest performance.
Adjust your join queries to always utilize indexes
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
query_cache_type (=0)
join_buffer_size (> 128.0M, or always use indexes with joins)
Die Maschine lief einige Monate lang stabil, macht aktuell aber ein paar Probleme. Läuft instabil: Queries brauchen sehr lange, Verbindungszeit zum Server stieg teilweise von 0.002 auf 0.4 Sekunden, Serverload ungewöhnlich hoch bis hin zum Super-GAU: Der MySQL-Dienst hängt sich gänzlich auf.
Ich vermute, dass es an der Natur der Virtual Server liegt: Das Hostsystem ist punktuell hoch ausgelastet und meine Maschine muss auch darunter leiden. Nun stellt sich mir die Frage, wie ich diese auch in solchen Fällen stabilisiere.
Laut mysqltuner ist die theoretische RAM-Auslastung des Servers zu hoch. Okay. Allerdings habe ich diese schon deutlich reduziert und früher (um ein vielfaches höher) hat das auch keine Probleme bereitet.
Habt ihr Tipps für mich?