2016-08-22 4 views
0

最近、私は1つのMySQLインスタンスから3つのノードを持つGaleraクラスタに運用システムを移行しました。すべてが正常に動作しているようですが、SELECTクエリでは問題ありません。クエリのパフォーマンスは、移動が大幅に減少し、現在は耐え難い面になっています。クエリのパフォーマンスが悪いGalera Cluster

誰でもGaleraのパフォーマンスチューニングのヒントを手に入れましたか?私はガレラの新人です。私が作った設定はおそらく最も簡単です。

これは、my.cnfファイルのガレラの一部です:

# Galera 
wsrep_provider  =/usr/lib/galera/libgalera_smm.so 
wsrep_cluster_address ="gcomm:// 213.179.3.90, 213.179.3.91, 213.179.3.92" 
wsrep_sst_method =rsync 
wsrep_cluster_name =galera_cluster 
binlog_format  =ROW 
default_storage_engine =InnoDB 
innodb_autoinc_lock_mode=2 
innodb_locks_unsafe_for_binlog=1 

、ここで永遠にかかる1つのクエリです:

SELECT 
    r.customerid, 
    r.operator, 
    r.account, 
    CAST(r.requesttype AS char), 
    CAST(SUM(r.nofsms) AS char), 
    COALESCE(r.subid1, ''), 
    COALESCE(r.subid2, ''), 
    COALESCE(r.subid3, '') 
FROM 
    `smspro`.`smspro_cc_result` r 
INNER JOIN smspro.smspro_customer sc ON sc.customerid = r.customerid 
    AND sc.smsproinvoice = 0 
WHERE 
    r.status = 0 
     AND r.timestamp >= '2016-05-25' 
     AND r.timestamp < '2016-06-25' 
     AND r.requesttype IN (1 , 2, 4, 5) 
GROUP BY r.customerid , r.operator , r.account , r.requesttype , r.subid1 , r.subid2 , r.subid3 
ORDER BY r.customerid , r.operator , r.account , r.requesttype , r.subid1 , r.subid2 , r.subid3 

そして、いくつかの統計

mysql> select count(*) from smspro_cc_result; 
+----------+ 
| count(*) | 
+----------+ 
| 9170870 | 
+----------+ 

mysql> show index from smspro_cc_result; 
+------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| Table   | Non_unique | Key_name  | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | 
+------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| smspro_cc_result |   0 | PRIMARY  |   1 | smsproid | A   |  8825169 |  NULL | NULL |  | BTREE  |   |    | 
| smspro_cc_result |   1 | idx_sms_req_1 |   1 | customerid | A   |  14757 |  NULL | NULL |  | BTREE  |   |    | 
| smspro_cc_result |   1 | idx_sms_req_2 |   1 | timestamp | A   |  4412584 |  NULL | NULL |  | BTREE  |   |    | 
| smspro_cc_result |   1 | idx_sms_req_3 |   1 | customerid | A   |  18233 |  NULL | NULL |  | BTREE  |   |    | 
| smspro_cc_result |   1 | idx_sms_req_3 |   2 | msisdn  | A   |  8825169 |  NULL | NULL |  | BTREE  |   |    | 
| smspro_cc_result |   1 | idx_sms_req_3 |   3 | timestamp | A   |  8825169 |  NULL | NULL |  | BTREE  |   |    | 
| smspro_cc_result |   1 | idx_sms_req_5 |   1 | msisdn  | A   |  8825169 |  NULL | NULL |  | BTREE  |   |    | 
+------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 

がいました私は何かを忘れてしまったのですか?

+0

「クエリ」は「SELECT」またはすべてのクエリを意味しますか? –

+0

私が知る限り、SELECTが問題です。システムがデータを生成することに問題はないようです。それはパフォーマンスの面で大きな打撃を受けたレポートです。 – koenig

+0

CPUにバインドされているかディスクにバインドされていますか?これらのマシンは以前のサーバーに匹敵しますか? ...特にディスクの性能とメモリだけでなく、コアのタイプと数も考慮する必要があります。 'innodb_buffer_pool_size'は匹敵しますか? –

答えて

1

My Tips

3つのノードが地理的に分散している場合、待ち時間はCOMMITに高価です。

あなたは単一のサーバーと比較していますか?またはレプリケーションの設定?または、他の何か?サーバーのクライアントがノードの1つを持っていますか?ロードバランサまたはプロキシが関与していますか?

複数のInnoDB設定を再調整していない場合、Galeraは最適に動作しません。あなたの設定ファイルを見てみましょう。 (またはSHOW VARIABLESSHOW GLOBAL STATUSの両方に加え、RAMサイズを加えたもの)

どのようなクエリで劣化が見られますか?それらを見ると、問題に焦点を当てるのに役立ちますし、うまくいけば回避策になるかもしれません。

+0

仲間を助けてくれてありがとう – Drew

+0

私は単一のサーバーと比較しています - 私はそれを冗長性のためにクラスタに置き換えました。すべてのサーバーは地理的に同じ場所にあります(仮想サーバーはすべて追加する必要があります)。 – koenig

+0

"すべての仮想" ...意味...同じ共有物理ハードウェア上で実行されており、同じディレクトリ上の異なるディレクトリに読み書きしていますか?または、VMである3つの独立したサーバー? –

関連する問題