私は24 GBを実行していますKVM 8 Xeon 3.2 SSD RAID 0で。そして、MariaDB sqlサーバーを最大限に活用したいと思います。
私は次のmy.cfgを使用しています
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[client]
# hostname = panel.uhlhosting.ch
#default-character-set = utf8mb4
[mysqld]
max_allowed_packet=268435456
max_connect_errors = 10
max_connections = 50
#safe-show-database
#skip-innodb
#skip-locking
skip-networking
open_files_limit = 25000
local-infile = 0
performance_schema = OFF
# Enable logs
general-log = ON
explicit_defaults_for_timestamp = true
# Character collation
#character_set_server = utf8mb4
#collation_server = utf8mb4_unicode_ci
bulk_insert_buffer_size = 8M
connect_timeout = 10
interactive_timeout = 50
query_cache_type = 1
query_cache_limit = M
query_cache_min_res_unit = 2k
query_cache_size = 0
table_open_cache = 2048
#ft_min_Word_len = 2
# Skip reverse DNS lookup of clients
# skip-name-resolve
thread_stack = 256K
transaction_isolation = REPEATABLE-READ
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
table_cache = 4096
join_buffer_size = 2M
key_buffer_size = 256M
max_allowed_packet = 16M
read_buffer_size = 2M
bulk_insert_buffer_size = 64M
default-storage-engine = MYISAM
myisam_recover_options = BACKUP,FORCE
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 5G
myisam_repair_threads = 4
myisam-recover-options
thread_cache_size = 1024
thread_concurrency = 8
max_heap_table_size = 64M
tmp_table_size = 64M
wait_timeout = 200
innodb_large_prefix = true
innodb_file_format = barracuda
innodb_file_format_max = barracuda
innodb_file_per_table = true
innodb_file_per_table = 1
innodb_buffer_pool_size = 3G
innodb_buffer_pool_instances = 8
innodb_flush_method = O_DIRECT
innodb_io_capacity = 100
innodb_read_io_threads = 8
innodb_thread_concurrency = 16
innodb_write_io_threads = 8
innodb_log_file_size = 256M
innodb_fast_shutdown = 1
innodb_additional_mem_pool_size = 16M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
log-queries-not-using-indexes = 1
# Error log
#err-log = /var/log/mysql/error.log
binlog_cache_size = 1M
# Slow Query Log
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 5
# General Log
general_log_file = /var/log/mysql/general.log
[mysqld_safe]
Nice = -5
open_files_limit = 8192
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 16M
write_buffer = 16M
[mysqldump]
# Do not buffer the whole result set in memory before writing it to
# file. Required for dumping very large tables
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Only allow UPDATEs and DELETEs that use keys.
#safe-updates
私はこれをmysqlreportから取得しました:
MariaDB 10.1.12-MariaDB uptime 0 0:5:20 Fri Mar 11 15:33:00 2016
__ Key _________________________________________________________________
Buffer used 897.00k of 256.00M %Used: 0.34
Current 47.57M %Usage: 18.58
Write hit 14.81%
Read hit 98.43%
__ Questions ___________________________________________________________
Total 3.24k 10.1/s
DMS 3.05k 9.5/s %Total: 94.29
Com_ 135 0.4/s 4.17
COM_QUIT 51 0.2/s 1.57
-Unknown 1 0.0/s 0.03
Slow 5 s 0 0/s 0.00 %DMS: 0.00 Log:
DMS 3.05k 9.5/s 94.29
SELECT 3.00k 9.4/s 92.56 98.17
INSERT 32 0.1/s 0.99 1.05
UPDATE 13 0.0/s 0.40 0.43
DELETE 9 0.0/s 0.28 0.29
REPLACE 2 0.0/s 0.06 0.07
Com_ 135 0.4/s 4.17
set_option 83 0.3/s 2.56
change_db 23 0.1/s 0.71
show_fields 21 0.1/s 0.65
__ Rows ________________________________________________________________
Rows 781.09k 2.4k/s
Using idx 224.56k 701.7/s %Index: 28.75
Rows/question 241.15
__ SELECT and Sort _____________________________________________________
Scan 232 0.7/s %SELECT: 7.74
Range 325 1.0/s 10.84
Full join 22 0.1/s 0.73
Range check 0 0/s 0.00
Full rng join 1 0.0/s 0.03
Sort scan 476 1.5/s
Sort range 382 1.2/s
Sort mrg pass 0 0/s
__ Table Locks _________________________________________________________
Waited 0 0/s %Total: 0.00
Immediate 4.12k 12.9/s
__ Tables ______________________________________________________________
Open 127 of 4096 %Cache: 3.10
Opened 116 0.4/s
__ Connections _________________________________________________________
Max used 3 of 50 %Max: 6.00
Total 53 0.2/s
__ Created Temp ________________________________________________________
Disk table 222 0.7/s %Disk: 51.39
Table 432 1.4/s Size: 64.0M
File 6 0.0/s
__ Threads _____________________________________________________________
Running 1 of 1
Created 3 0.0/s
Slow 0 0/s
Cached 2 of 50 %Hit: 94.34
__ Aborted _____________________________________________________________
Clients 0 0/s
Connects 0 0/s
__ Bytes _______________________________________________________________
Sent 13.73M 42.9k/s
Received 802.94k 2.5k/s
__ InnoDB Buffer Pool __________________________________________________
Usage 30.67M of 3.00G %Usage: 1.00
Read hit 99.66%
Pages
Free 194.64k %Total: 99.00
Data 1.90k 0.96 %Drty: 0.00
Misc 68 0.03
Latched 0 0.00
Reads 476.66k 1.5k/s
From disk 1.63k 5.1/s %Disk: 0.34
Ahead Rnd 0 0/s
Writes 384 1.2/s
Wait Free 0 0/s %Wait: 0.00
Flushes 131 0.4/s
LRU 0 0/s %Flush: 0.00
__ InnoDB Lock _________________________________________________________
Waits 0 0/s
Current 0
Time acquiring
Total 0 ms
Average 0 ms
Max 0 ms
Trx history 664
__ InnoDB Data, Pages, Rows ____________________________________________
Data
Reads 2.45k 7.6/s
Writes 206 0.6/s
fsync 104 0.3/s
Pending
Reads 0
Writes 0
fsync 0
Pages
Created 8 0.0/s
Read 1.89k 5.9/s
Written 131 0.4/s
Rows
Deleted 8 0.0/s
Inserted 12 0.0/s
Read 378.27k 1.2k/s
Updated 8 0.0/s
__ Aria Pagecache ______________________________________________________
Buffer used 40.00k of 128.00M %Used: 0.03
Current 5.30M %Usage: 4.14
Write hit 100.00%
Read hit 98.17%
これが私のmysqltunnerl.plレポートです。
root@panel [~/uhlhosting/mysql]# ./mysqltuner.pl
>> MySQLTuner 1.5.1 - Major Hayden <[email protected]>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Modified by George Liu (eva2000) at http://vbtechsupport.com/
>> Run with '--help' for additional options and output filtering
[OK] Currently running supported MySQL version 10.1.12-MariaDB
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Aria +CSV +InnoDB +MRG_MyISAM +SEQUENCE
[--] Data in MyISAM tables: 92M (Tables: 257)
[--] Data in InnoDB tables: 108M (Tables: 481)
[!!] Total fragmented tables: 21
-------- Security Recommendations -------------------------------------------
[OK] There is no anonymous account in all database users
[OK] All database users have passwords assigned
[--] There is 605 basic passwords in the list.
-------- Performance Metrics -------------------------------------------------
[--] Up for: 6m 20s (4K q [10.624 qps], 65 conn, TX: 18M, RX: 937K)
[--] Reads / Writes: 98% / 2%
[--] Binary logging is disabled
[--] Total buffers: 3.5G global + 28.2M per thread (50 max threads)
[OK] Maximum reached memory usage: 3.5G (15.15% of installed RAM)
[OK] Maximum possible memory usage: 4.8G (20.70% of installed RAM)
[OK] Slow queries: 0% (0/4K)
[OK] Highest usage of available connections: 6% (3/50)
[OK] Aborted connections: 0.00% (0/65)
[!!] Query cache is disabled
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 973 sorts)
[!!] Joins performed without indexes: 22
[!!] Temporary tables created on disk: 52% (245 on disk / 467 total)
[OK] Thread cache hit rate: 95% (3 created / 65 connections)
[OK] Table cache hit rate: 107% (151 open / 140 opened)
[OK] Open file limit used: 1% (121/10K)
[OK] Table locks acquired immediately: 100% (5K immediate / 5K locks)
-------- MyISAM Metrics -----------------------------------------------------
[!!] Key buffer used: 18.7% (50M used / 268M cache)
[OK] Key buffer size / total MyISAM indexes: 256.0M/18.3M
[OK] Read Key buffer hit rate: 98.9% (109K cached / 1K reads)
[!!] Write Key buffer hit rate: 14.1% (85 cached / 73 writes)
-------- InnoDB Metrics -----------------------------------------------------
[--] InnoDB is enabled.
[OK] InnoDB buffer pool / data size: 3.0G/108.6M
[!!] InnoDB buffer pool instances: 8
[!!] InnoDB Used buffer: 1.07% (2107 used/ 196600 total)
[OK] InnoDB Read buffer efficiency: 99.64% (492623 hits/ 494395 total)
[!!] InnoDB Write buffer efficiency: 0.00% (0 hits/ 1 total)
[OK] InnoDB log waits: 0.00% (0 waits / 44 writes)
-------- AriaDB Metrics -----------------------------------------------------
[--] AriaDB is disabled.
-------- Replication Metrics -------------------------------------------------
[--] No replication slave(s) for this server.
[--] This is a standalone server..
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Adjust your join queries to always utilize indexes. Please note this
calculation is made by adding Select_full_join + Select_range_check
status values and triggered when the total >250
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Variables to adjust:
query_cache_size (>= 8M)
join_buffer_size (> 2.0M, or always use indexes with joins)
tmp_table_size (> 64M)
max_heap_table_size (> 64M)
innodb_buffer_pool_instances(=3)
root@panel [~/uhlhosting/mysql]#
そして最後のtunningprimerレポート:
MySQL Version 10.1.12-MariaDB x86_64
Uptime = 0 days 0 hrs 7 min 15 sec
Avg. qps = 25
Total Questions = 10953
Threads Connected = 2
Warning: Server has not been running for at least 48hrs.
It may not be safe to use these recommendations
To find out more information on how each of these
runtime variables effects performance visit:
http://dev.mysql.com/doc/refman/10.1/en/server-system-variables.html
Visit http://www.mysql.com/products/enterprise/advisors.html
for info about MySQL's Enterprise Monitoring and Advisory Service
SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 5.000000 sec.
You have 0 out of 10974 that take longer than 5.000000 sec. to complete
Your long_query_time seems to be fine
BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery
See http://dev.mysql.com/doc/refman/10.1/en/point-in-time-recovery.html
WORKER THREADS
Current thread_cache_size = 50
Current threads_cached = 1
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine
MAX CONNECTIONS
Current max_connections = 50
Current threads_connected = 2
Historic max_used_connections = 3
The number of used connections is 6% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See "MEMORY USAGE" section to make sure you are not over-allocating
No InnoDB Support Enabled!
MEMORY USAGE
Max Memory Ever Allocated : 3.35 G
Configured Max Per-thread Buffers : 1.37 G
Configured Max Global Buffers : 3.27 G
Configured Max Memory Limit : 4.65 G
Physical Memory : 23.38 G
Max memory limit seem to be within acceptable norms
KEY BUFFER
Current MyISAM index space = 18 M
Current key_buffer_size = 256 M
Key cache miss rate is 1 : 90
Key buffer free ratio = 81 %
Your key_buffer_size seems to be fine
QUERY CACHE
Query cache is supported but not enabled
Perhaps you should set the query_cache_size
SORT OPERATIONS
Current sort_buffer_size = 8 M
Current read_rnd_buffer_size = 16 M
Sort buffer seems to be fine
JOINS
./tuning-primer.sh: line 402: export: `2097152': not a valid identifier
Current join_buffer_size = 2.00 M
You have had 26 queries where a join could not use an index properly
You should enable "log-queries-not-using-indexes"
Then look for non indexed joins in the slow query log.
If you are unable to optimize your queries you may want to increase your
join_buffer_size to accommodate larger joins in one pass.
Note! This script will still suggest raising the join_buffer_size when
ANY joins not using indexes are found.
OPEN FILES LIMIT
Current open_files_limit = 10000 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine
TABLE CACHE
Current table_open_cache = 4096 tables
Current table_definition_cache = 400 tables
You have a total of 820 tables
You have 842 open tables.
The table_cache value seems to be fine
You should probably increase your table_definition_cache value.
TEMP TABLES
Current max_heap_table_size = 64 M
Current tmp_table_size = 64 M
Of 1035 temp tables, 28% were created on disk
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tables
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.
TABLE SCANS
Current read_buffer_size = 2 M
Current table scan ratio = 91 : 1
read_buffer_size seems to be fine
TABLE LOCKING
Current Lock Wait ratio = 0 : 11338
Your table locking seems to be fine
どんな助けでも、ガイダンスは本当に役に立つでしょう。
よろしく.
エグゼクティブサマリー:データがほとんどない、比較的アイドルなシステムがあります。まだ心配はありません。 slowlogを使用して問題を監視します。
詳細
long_query_time
-1に設定して、スローログを監視します。
log-queries-not-using-indexes
を有効にしないでください。(a)小さなテーブルを使用したクエリ、または(b)小さいlong_query_time
でとにかく表示されるクエリで、スローログが乱雑になるだけです。
my.cnf
に大量の残骸(重複行など)があります。
thread_cache_size
-10は1024ではなく妥当な設定です
一部のキャッシュ設定は24 GBのRAMに対して低いですが、データが多くありません。
インデックスが不足しているようです。それらがスローログに表示されたら、クエリを再構成するか、複合インデックスを追加することで、それらに対処できます。
「断片化」-偽物、無視してください。 OPTIMIZE TABLE
を実行しないでください。
「クエリキャッシュが無効になっています」-これは運用システムに適しています。
InnoDBとMyISAMの混合-完全にInnoDBに移行することを検討してください。
「稼働時間= 0日0時間7分15秒」-このようなツールを実行する前に、少なくとも1日はシステムを実行する必要があります。
SSDを襲撃したので、innodb...io_capacity
を大幅に増やします。
他の理由(TEXT
列の選択など)でtmpテーブルがディスクに流出するかどうかを判断するまで、tmp_table_size
について心配する必要はありません。