mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

MariaDB(MySQL) - クエリキャッシュヒット率の計算!

[ サーバ構築 ] [ MariaDB, MySQL ]

こんにちは。

MariaDB(MySQL) サーバをチューニングする際によく使用する計算式についてに備忘録です。

0. 前提条件

  • MySQL 5.6.23, MariaDB 10.0.15, MariaDB 5.5.42 での作業を想定。
  • クエリキャッシュ機能を有効にしている。
    (query_cache_type0 以外、query_cache_size0 以外)

1. クエリキャッシュ情報の出力

コマンドラインで以下のように実行する。

1
2
3
4
5
6
7
8
9
10
# mysqladmin -u root -p extended-status | grep Qcache
Enter password:
| Qcache_free_blocks                            | 3314        |
| Qcache_free_memory                            | 12395448    |
| Qcache_hits                                   | 823407      |
| Qcache_inserts                                | 843700      |
| Qcache_lowmem_prunes                          | 273787      |
| Qcache_not_cached                             | 28499       |
| Qcache_queries_in_cache                       | 50239       |
| Qcache_total_blocks                           | 103836      |

もしくは、MariaDB(MySQL) サーバに root でログイン後に以下のように実行してもよい。

1
> show global status like 'Qcache%';

2. クエリキャッシュヒット率の計算

クエリキャッシュのヒット率は以下のような式で計算する。

1
Qcache ヒット率 = Qcache_hits / (Qcache_hits + Qcache_inserts + Qcache_not_cached) * 100 [%]

前項の出力例で計算してみると、次のようになる。

1
2
Qcache ヒット率 = 823407 / (823407 + 843700 + 28499) * 100
                = 48.56 [%]

3. クエリキャッシュヒット率計算用 SQL

参考までに、クエリキャッシュヒット率計算用 SQL をご紹介。

1
2
3
4
5
6
7
SELECT (SELECT VARIABLE_VALUE
          FROM INFORMATION_SCHEMA.GLOBAL_STATUS
         WHERE VARIABLE_NAME = 'QCACHE_HITS')
     / (SELECT SUM(VARIABLE_VALUE)
          FROM INFORMATION_SCHEMA.GLOBAL_STATUS
         WHERE VARIABLE_NAME IN ('QCACHE_HITS', 'QCACHE_INSERTS', 'QCACHE_NOT_CACHED'))
     * 100 AS QCACHE_HIT_RATIO;

以上。

Comments