メタデータの末尾にスキップ
メタデータの先頭に移動

Clustrix はシステムのリソースを不釣合いに消費するクエリを識別するためのいくつかの仕組みを提供します。そのようなクエリは一般的にはインデックスが貧弱かあるいはアプリケーションにバグがあります。 

Clustrix はクエリをkillするために以下の構文をサポートします:

KILL [QUERY | CONNECTION] <session_id>;

長時間実行しているクエリを識別する

以下のステートメントはシステムのもっとも長く実行しているクエリを出力するでしょう。管理者にとって、無作法なクラスタ上で問題になりそうなものを識別することは、しばしば最初のステップになります。セッションのバーチャルリレーションは、それぞれのセッションの実行状態を詳細に提供します。セッションリレーションは、現在のステートメントに加えて接続情報とトランザクション状態も表示します。

mysql> select * from sessions where statement_state = 'executing' order by time_in_state desc limit 1\G
*************************** 1. row ***************************
            nodeid: 2
        session_id: 99938306
         source_ip: 10.2.2.243
       source_port: 40758
          local_ip: 10.2.14.15
        local_port: 3306
              user: 4099
          database: system
         trx_state: open
   statement_state: executing
               xid: 5832691561615822852
         isolation: REPEATABLE-READ
    last_statement: select * from sessions where statement_state = 'executing' order by time_in_state desc limit 1
     time_in_state: 0
           created: 2013-01-12 22:01:40
           trx_age: 0
          trx_mode: autocommit
trx_counter_select: 1
trx_counter_insert: 0
trx_counter_update: 0
trx_counter_delete: 0
     trx_is_writer: 0
1 row in set (0.00 sec)
 

長く実行しているwriterトランザクションを識別する

Clustrixのような完全なリレーショナルSQLデータベースにおいて、長く実行しているwriteトランザクションが問題を起こすかもしれません。無作法なアプリケーションは誤ってAUTOCOMMITオプションをOFFにしたままにし、全てのセッションを一つのとても長いトランザクションの中で実行したままにすることが良くあります。そのようなことが起きた場合、これらのトランザクションは大きなwriteロックの集合を生じさせ、同じデータを修正しようとする他のトランザクションの実行を妨げるでしょう。そのような事態を捉えるために、Clustrixチームはセッションリレーションに、トランザクションの年齢(秒数)、現在のトランザクション内で実行されたステートメントの数と種類、およびトランザクションが何らかのwriteを発行したかどうか(真偽値 0,1)を表すいくつかの列を追加しました。 

例えば、システム内で最も古いwriteトランザクションを見つけたい場合は、以下のコマンドをデータベースに発行します。

mysql> select * from system.sessions where trx_is_writer order by trx_age desc limit 1\G
*************************** 1. row ***************************
            nodeid: 2
        session_id: 99938306
         source_ip: 10.2.2.243
       source_port: 40758
          local_ip: 10.2.14.15
        local_port: 3306
              user: 4099
          database: sergei
         trx_state: open
   statement_state: executing
               xid: 5832694275126951940
         isolation: REPEATABLE-READ
    last_statement: select * from system.sessions where trx_is_writer order by trx_age desc limit 1
     time_in_state: 0
           created: 2013-01-12 22:01:40
           trx_age: 31
          trx_mode: explicit
trx_counter_select: 2
trx_counter_insert: 5
trx_counter_update: 1
trx_counter_delete: 3
     trx_is_writer: 1
1 row in set (0.00 sec)
 
  • ラベルなし
TOP
inserted by FC2 system