2017-11-20 6 views
1

私は16GB RAM &コアサーバーを購入して以来、MY.cnfファイルを最適化していません。Mysql&My.cnfを16g Ram&8 Core CPUに最適化しますか? [30-80同時接続ユーザー、ピーク時に200-300]

この最適化のすべてが新しくなったので、私は何をすべきか分かりません。 サーバーには通常の時間で約60-80人の同時ユーザーがおり、悪い時間には20-40人のユーザーがおり、時々200-300くらいがピークになります。

どうすればよいですか?

>> MySQLTuner 1.7.4 - Major Hayden <[email protected]> 
>> 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 
Please enter your MySQL administrative login: forge 
Please enter your MySQL administrative password: [OK] Currently running supporte                                        d MySQL version 5.7.20-0ubuntu0.16.04.1 
[OK] Operating on 64-bit architecture 

-------- Log file Recommendations ----------------------------------------------                                        -------------------- 
[--] Log file: /var/lib/mysql/crypto-boi.err(0B) 
[!!] Log file /var/lib/mysql/crypto-boi.err doesn't exist 
[!!] Log file /var/lib/mysql/crypto-boi.err isn't readable. 

-------- Storage Engine Statistics ---------------------------------------------                                        -------------------- 
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MEMORY +MRG_MYISAM +My                                        ISAM +PERFORMANCE_SCHEMA 
[--] Data in InnoDB tables: 514M (Tables: 66) 
[OK] Total fragmented tables: 0 

-------- Security Recommendations ----------------------------------------------                                        -------------------- 


-------- CVE Security Recommendations ------------------------------------------                                        -------------------- 
[OK] NO SECURITY CVE FOUND FOR YOUR VERSION 

-------- Performance Metrics ---------------------------------------------------                                        -------------------- 
[--] Up for: 4m 0s (49K q [205.421 qps], 286 conn, TX: 38M, RX: 7M) 
[--] Reads/Writes: 78%/22% 
[--] Binary logging is disabled 
[--] Physical Memory  : 15.7G 
[--] Max MySQL memory : 2.0G 
[--] Other process memory: 1.6G 
[--] Total buffers: 1.5G global + 2.0M per thread (214 max threads) 
[--] P_S Max memory usage: 72B 
[--] Galera GCache Max memory usage: 0B 
[OK] Maximum reached memory usage: 1.6G (9.95% of installed RAM) 
[OK] Maximum possible memory usage: 2.0G (12.54% of installed RAM) 
[OK] Overall possible memory usage with other process is compatible with memory available 
[OK] Slow queries: 0% (0/49K) 
[OK] Highest usage of available connections: 2% (6/214) 
[OK] Aborted connections: 0.35% (1/286) 
[!!] name resolution is active : a reverse name resolution is made for each new connection and can reduce performance 
[!!] Query cache may be disabled by default due to mutex contention. 
[!!] Query cache efficiency: 0.0% (0 cached/37K selects) 
[OK] Query cache prunes per day: 0 
[OK] Sorts requiring temporary tables: 0% (0 temp sorts/283 sorts) 
[!!] Joins performed without indexes: 187 
[OK] Temporary tables created on disk: 4% (10 on disk/227 total) 
[OK] Thread cache hit rate: 97% (6 created/286 connections) 
[OK] Table cache hit rate: 75% (340 open/453 opened) 
[OK] Open file limit used: 0% (0/1K) 
[OK] Table locks acquired immediately: 100% (102 immediate/102 locks) 

-------- Performance schema ------------------------------------------------------------------------ 
[--] Memory used by P_S: 72B 
[--] Sys schema is installed. 

-------- ThreadPool Metrics ------------------------------------------------------------------------ 
[--] ThreadPool stat is disabled. 

-------- MyISAM Metrics ---------------------------------------------------------------------------- 
[!!] Key buffer used: 18.2% (48M used/268M cache) 
[OK] Key buffer size/total MyISAM indexes: 256.0M/43.0K 
[!!] Read Key buffer hit rate: 50.0% (6 cached/3 reads) 

-------- InnoDB Metrics ---------------------------------------------------------------------------- 
[--] InnoDB is enabled. 
[--] InnoDB Thread Concurrency: 0 
[OK] InnoDB File per table is activated 
[OK] InnoDB buffer pool/data size: 1.0G/514.4M 
[!!] Ratio InnoDB log file size/InnoDB Buffer pool size (9.375 %): 48.0M * 2/1.0G should be equal 25% 
[!!] InnoDB buffer pool <= 1G and Innodb_buffer_pool_instances(!=1). 
[--] Number of InnoDB Buffer Pool Chunk : 8 for 8 Buffer Pool Instance(s) 
[OK] Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances 
[OK] InnoDB Read buffer efficiency: 99.82% (11564032 hits/ 11585189 total) 
[!!] InnoDB Write Log efficiency: 54.07% (3734 hits/ 6906 total) 
[OK] InnoDB log waits: 0.00% (0 waits/10640 writes) 

-------- AriaDB Metrics ---------------------------------------------------------------------------- 
[--] AriaDB is disabled. 

-------- TokuDB Metrics ---------------------------------------------------------------------------- 
[--] TokuDB is disabled. 

-------- XtraDB Metrics ---------------------------------------------------------------------------- 
[--] XtraDB is disabled. 

-------- RocksDB Metrics --------------------------------------------------------------------------- 
[--] RocksDB is disabled. 

-------- Spider Metrics ---------------------------------------------------------------------------- 
[--] Spider is disabled. 

-------- Connect Metrics --------------------------------------------------------------------------- 
[--] Connect 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: 
    Set up a Password for user with the following SQL statement (SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password');) 
    Restrict Host for [email protected]% to [email protected] 
    MySQL started within last 24 hours - recommendations may be inaccurate 
    Configure your accounts with ip or subnets only, then update your configuration with skip-name-resolve=1 
    Adjust your join queries to always utilize indexes 
    Read this before changing innodb_log_file_size and/or innodb_log_files_in_group: 
Variables to adjust: 
    query_cache_size (=0) 
    query_cache_type (=0) 
    query_cache_limit (> 1M, or use smaller result sets) 
    join_buffer_size (> 256.0K, or always use indexes with joins) 
    innodb_log_file_size should be (=128M) if possible, so InnoDB total log files size equals to 25% of buffer pool size. 
    innodb_buffer_pool_instances (=1) 

は、ここで私はあなたのMySQLデータベースエンジンはInnoDBのだと思う私のmy.cnf

[mysqld_safe] 
socket   = /var/run/mysqld/mysqld.sock 
nice   = 0 

[mysqld] 
user   = mysql 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 3306 
basedir   = /usr 
datadir   = /var/lib/mysql 
tmpdir   = /tmp 
lc-messages-dir = /usr/share/mysql 
skip-external-locking 
bind-address = * 
# 
max_connections   = 300 
key_buffer_size   = 256M 
read_buffer_size = 1M 
table_open_cache = 15000 
thread_cache_size = 384 
connect_timeout = 10 
interactive_timeout = 7000 
tmp_table_size = 256M 
max_heap_table_size = 256M 
query_cache_size = 0 
query_cache_type = 0 
innodb_buffer_pool_size = 1G 

# This replaces the startup script and checks MyISAM tables if needed 
# the first time they are touched 
myisam-recover-options = BACKUP 
#max_connections  = 100 
#table_cache   = 64 
#thread_concurrency  = 10 
# 
# * Query Cache Configuration 
# 
query_cache_limit  = 1M 
query_cache_size  = 32M 
# 
# 
expire_logs_days  = 10 
max_binlog_size = 100M 
default_password_lifetime = 0 
+0

16GBのRAMですか、それとも1GBですか? –

+0

@RickJames 16GB – Edwin

答えて

0

です:

は、ここに私のmysqltuner.plです。私の経験から、innodb_buffer_pool_sizeを増やすとmysqlのパフォーマンスが大幅に向上します。特に16G Ramがあります。サーバーがmysqlのために専用されている場合は、ここで12G

まで、この値を設定することができますいくつかの有用な最適化ガイドラインは、私はしばしばhttps://www.percona.com/blog/2013/09/20/innodb-performance-optimization-basics-updated/

+0

お返事いただきありがとうございますが、サーバーはMySQL専用ではありませんが、これは推奨されるものですか? – Edwin

+0

dbがinnodbの場合、innodb_buffer_pool_sizeをより大きな値に増やすことをお勧めします。 –

+0

buffer_poolはすでにデータの2倍のサイズです。したがって、それをさらに増やしてもパフォーマンスは向上しません。 「InnoDBバッファプール/データサイズ:1.0G/514.4M」を参照してください。ただし、データが増加した場合は、buffer_poolを_available_ RAMの70%まで増やしてください。 –

0

に従っているあなたは、InnoDBのデータの514Mを持っています。あなたのinnodbストレージ要件が成長するまで、それを残しておきます。

#read_buffer_size=1M # disabled to allow default to serve your needs 
thread_cache_size=100 # from 384 to avoid OOM per V8 CAP at 100 threads_cached. 

シャットダウン/再起動:

あなたのmy.cnfは/ INIに変更する必要があります。

あなたが少なくとも24時間忙しかった場合、現在のMySQLTunerレポートを再投稿してください。

4分であなたの情報は、私たちが完全な1日または1週間後に見るものに比べて何もありません。

関連する問題