はじめに

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

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

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

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

Vertica環境に存在するキャッシュは大きく分けて以下の2つに分類できます。
1. Verticaの内部的なキャッシュファイル
2. ファイルシステム上のキャッシュ
それぞれのキャッシュをクリアする方法を記載します。

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

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

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

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

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

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

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

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

検証バージョンについて

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