web-dev-qa-db-ja.com

小規模サーバー用のMySQLチューニング

Ubuntu 2コア、2 GBのRAM、2 GBのスワップの下で実行されている小さなクラウドサーバーがあり、Plesk Panel、Apache、Nginxをリバースプロキシとして、Mysql 5.5を使用しています。ここにホストされているドメインは約18あり、各ドメインに彼のDBがあります。ほとんどのWebサイトはWordPressまたはJoomlaで実行されています。

すべてのウェブサイトを合わせて、1日あたりの訪問数は2000を超えません。私の最大の問題はmysqlであり、それは私のRAMを食べているようであり、サーバーは1日間しかスワップに移行せず、サーバーは70%以上を使用しているようには見えません。 RAMしかし、それでもスワップが使用されます。スワップピンは10に設定されています。

Mysqlのチューニングにmysqltuner.plを使用しましたが、正常に機能しません。

Mysqltunerの出力は次のとおりです。

>>  MySQLTuner 1.6.1 - 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
[OK] Currently running supported MySQL version 5.5.46-0ubuntu0.14.04.2-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM 
[--] Data in MEMORY tables: 0B (Tables: 2)
[--] Data in MyISAM tables: 21M (Tables: 284)
[--] Data in InnoDB tables: 170M (Tables: 920)
[!!] Total fragmented tables: 129

-------- 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: 1d 15h 23m 44s (632K q [4.458 qps], 11K conn, TX: 2B, RX: 167M)
[--] Reads / Writes: 94% / 6%
[--] Binary logging is disabled
[--] Total buffers: 1.0G global + 3.6M per thread (100 max threads)
[OK] Maximum reached memory usage: 1.1G (55.03% of installed RAM)
[OK] Maximum possible memory usage: 1.4G (70.29% of installed RAM)
[OK] Slow queries: 0% (0/632K)
[OK] Highest usage of available connections: 16% (16/100)
[!!] Aborted connections: 4.23%  (473/11192)
[!!] Query cache is disabled
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 100K sorts)
[!!] Joins performed without indexes: 10841
[!!] Temporary tables created on disk: 49% (48K on disk / 98K total)
[OK] Thread cache hit rate: 99% (16 created / 11K connections)
[OK] Table cache hit rate: 80% (1K open / 2K opened)
[OK] Open file limit used: 7% (628/8K)
[OK] Table locks acquired immediately: 100% (802K immediate / 802K locks)

-------- MyISAM Metrics -----------------------------------------------------
[!!] Key buffer used: 18.5% (24M used / 134M cache)
[OK] Key buffer size / total MyISAM indexes: 128.0M/10.8M
[OK] Read Key buffer hit rate: 96.0% (2M cached / 115K reads)
[!!] Write Key buffer hit rate: 89.0% (27K cached / 3K writes)

-------- InnoDB Metrics -----------------------------------------------------
[--] InnoDB is enabled.
[OK] InnoDB buffer pool / data size: 512.0M/170.5M
[OK] InnoDB buffer pool instances: 1
[!!] InnoDB Used buffer: 33.34% (10925 used/ 32767 total)
[OK] InnoDB Read buffer efficiency: 99.99% (78464393 hits/ 78474138 total)
[!!] InnoDB Write buffer efficiency: 0.00% (0 hits/ 1 total)
[OK] InnoDB log waits: 0.00% (0 waits / 28642 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
    Reduce or eliminate unclosed connections and network issues
    Adjust your join queries to always utilize indexes
    Temporary table size is already large - reduce result set size
    Reduce your SELECT DISTINCT queries without LIMIT clauses
Variables to adjust:
    query_cache_type (=1)
    join_buffer_size (> 1.0M, or always use indexes with joins)

無料-mアウト:

             total       used       free     shared    buffers     cached
Mem:          1995       1727        267        282        245        692
-/+ buffers/cache:        789       1205
Swap:         1951        370       1581

私はどんな提案も本当に感謝します。あなたの時間をありがとう:)

Mysqlグローバル変数。約307行あるので、それらをPastebinに追加しました: http://Pastebin.com/bVUUG9zL

私はこれを askubunt で見つけました、それは可能ですか?サーバーモニターのログをチェックしたところ、最大RAM=使用率は25%でした。

2
emilushi

既に行われたアドバイスに同意します-ランナースクリプトのアドバイスは、何が起こるかを完全に理解している場合にのみチェックしてください。

構成パラメーターは、問題の片側だけを示します。それ以外は、実際に何が起こり、何が実際に負荷を与えますか?

実行中のサーバーから統計をチェックして収集するためのツールの1つを提案します。

80/20のルール1〜2のクエリで問題を特定して分割し、読み込みの80〜90%を簡単に実行できます。

そして、これはあなたに正確な情報を与えます-どのパラメーターがランナースクリプトによって提案されたものからチューニングするのにより良いですか。

1
a_vlad