OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

Vertica環境でのキャッシュのクリア方法

公開日:
更新日:
アーキテクチャ
#パフォーマンス
#ベンチマーク

はじめに

Vertica環境のキャッシュをクリアする方法をご紹介します。

一般的に、クエリ実行時に発生するディスクI/Oによるボトルネックを緩和するためにキャッシュの存在は重宝します。
しかし、パフォーマンステストやベンチマークなどを行う場合には、より精度の高い計測値を得るためにキャッシュの存在が邪魔になる事があります。

このようなケースで使える「キャッシュをクリアする方法」をご紹介します。

Vertica環境のキャッシュをクリアする方法

Vertica環境に存在するキャッシュは大きく分けて以下の2つに分類できます。

1. Verticaの内部的なキャッシュファイル
2. ファイルシステム上のキャッシュ

それぞれのキャッシュをクリアする方法を記載します。

1. Verticaの内部的なキャッシュファイルをクリア

以下のコマンドをデータベースユーザのスーパーユーザで実行します。
(デフォルトはdbadminユーザです)

dbadmin=> SELECT CLEAR_CACHES();
 CLEAR_CACHES
--------------
 Cleared
(1 row)

2. ファイルシステム上のキャッシュをクリア

これはLinux OS上のファイルシステムのキャッシュです。
以下のコマンドをOSのrootユーザで実行します。

ファイルシステムのメモリバッファをディスクと同期させます。

# sync

ページキャッシュをクリアする場合

# echo 1 > /proc/sys/vm/drop_caches

ディレクトリエントリ(dentry)とinodeをクリアする場合

# echo 2 > /proc/sys/vm/drop_caches 

ページキャッシュ、ディレクトリエントリ(dentry)とinodeをクリアする場合

# echo 3 > /proc/sys/vm/drop_caches

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。