• 検索結果がありません。

KSMを用いたメモリ最適化による仮想化環境におけるCassandra性能の向上

N/A
N/A
Protected

Academic year: 2021

シェア "KSMを用いたメモリ最適化による仮想化環境におけるCassandra性能の向上"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

DEIM Forum 2016

KSM を用いたメモリ最適化による

仮想化環境における

Cassandra 性能の向上

徳田 大輝

御代川 翔平

山口 実靖

†‡工学院大学工学部工学研究科電気電子工学専攻 〒163-8677 東京都新宿区西新宿 1-24-2

E-mail: †{cm14022,cm14034}@ns.kogakuin.ac.jp, ‡[email protected]

あらまし クラウドコンピューティングの普及により,大量の計算機資源を容易に入手できるようになった.そ

のため,ユーザ数やサービスへの負荷の増減に応じてサーバ数の増減が可能となる高いスケーラビリティを持つ DBMS が重要視されている.このスケーラビリティの高い DBMS の一つに KVS がある.KVS は仮想計算機上に構

築されることも多く,仮想化環境におけるKVS 性能が重要であると考えられる.本論文では,著名な KVS の一つ

であるCassandra に着目し,仮想化環境における Cassandra 性能の向上手法を提案する.具体的には,Cassandra の

Java ヒープサイズの縮小,KSM の適用,高頻度でアクセスされるデータを固定的にページキャッシュ内に格納する 既存手法の適用を行う.そして,性能評価によりその有効性を示す. キーワード 仮想化,KVM,KVS,Cassandra,データベース,ページキャッシュ

1. はじ め に

情 報 シ ス テ ム や ネ ッ ト ワ ー ク サ ー ビ ス の 大 規 模 化 に 伴 い , デ ー タ ベ ー ス 管 理 シ ス テ ム の ス ケ ー ラ ビ リ テ ィ が 重 要 視 さ れ る よ う に な っ て い る . ス ケ ー ラ ビ リ テ ィ の 高 い デ ー タ ベ ー ス 管 理 シ ス テ ム の 一 つ に KVS (Key-Value Store)が あ る .KVS は ,デ ー タ 構 造 の 簡 素 化 と 一 貫 性 保 証 の 程 度 を 下 げ る こ と で ス ケ ー ラ ビ リ テ ィ の 向 上 を 図 っ て お り , サ ー バ 増 設 に よ る 性 能 向 上 と 耐 障 害 性 向 上 を 実 現 し て い る[1]. ま た , 仮 想 計 算 機 を 用 い る ク ラ ウ ド コ ン ピ ュ ー テ ィ ン グ が 普 及 し , 仮 想 化 環 境 に て 情 報 サ ー ビ ス が 稼 働 す る 状 況 が 増 加 し て い る . 仮 想 計 算 機 を 用 い る ク ラ ウ ド コ ン ピ ュ ー テ ィ グ を 使 用 す る こ と に よ り , サ ー バ 管 理 の 負 荷 や サ ー バ 設 置 ス ペ ー ス な ど の 問 題 の 解 決 や , 短 期 間 で の サ ー ビ ス の 開 始 を 実 現 し た り す る こ と が 可 能 で あ り , 今 後 ま す ま す 重 要 性 が 増 し て い く と 考 え ら れ る . 特 に 多 数 の 仮 想 計 算 機 を 用 い て 性 能 の ス ケ ー ル ア ウ ト が 可 能 で あ る KVS は 仮 想 計 算 機 を 用 い る ク ラ ウ ド コ ン ピ ュ ー テ ィ ン グ 環 境 で 動 作 す る こ と が 多 い と 予 想 さ れ ,仮 想 化 環 境 に お け る KVS 性 能 の 向 上 は 重 要 な 課 題 の 一 つ で あ る と 考 え ら れ る . ま た , ク ラ ウ ド 環 境 で は 単 一 の 物 理 計 算 機 上 で 複 数 の VM や 複 数 の デ ー タ ベ ー ス が 稼 働 す る マ ル チ テ ナ ン ト 環 境 で あ る こ と も 想 定 さ れ る . 本 研 究 で は ,KVS の 一 つ で あ る Cassandra[2]と , 仮 想 計 算 機 シ ス テ ム の 一 つ で あ る KVM に 着 目 し , 複 数 VM 環 境 に お け る KVS の 性 能 向 上 手 法 に つ い て 考 察 す る .

2. Cassandra と KVM

2.1. KVS

KVS は , Key と Value の 組 を 書 き 込 み , Key を 指 定 す る こ と で Value を 得 る こ と が で き る シ ン プ ル な デ ー タ 管 理 手 法 の 1 つ で あ る . RDBMS な ど よ り 機 能 が 単 純 に な っ て い る が , 高 い ス ケ ー ラ ビ リ テ ィ を 得 る こ と が で き る .KVS の 代 表 的 な 実 装 に Cassandra が あ る .

2.2. Cassandra

Cassandra は Facebook 社 が 開 発 し た KVS で あ り ,現 在 は Apache Software Foundation の ト ッ プ レ ベ ル プ ロ ジ ェ ク ト で あ る .Amazon 社 の Dynamo[3]の 分 散 ハ ッ シ ュ テ ー ブ ル と Google 社 の BigTable[4]の デ ー タ モ デ ル を 併 せ 持 ち , 結 果 整 合 性 の 一 貫 性 を 持 つ . 耐 障 害 性 の 高 さ , ノ ー ド の 非 集 中 性 , 高 可 用 性 , 動 的 に 伸 縮 可 能 な ス ケ ー ラ ビ リ テ ィ な ど の 特 徴 を 持 つ . Cassandra で は 複 数 の ノ ー ド で 分 散 し て デ ー タ を 保 持 し , そ の ノ ー ド の 集 合 は ク ラ ス タ と 呼 ば れ る . Cassandra ク ラ ス タ を 構 成 す る 各 ノ ー ド は ,ト ー ク ン と 呼 ば れ る ハ ッ シ ュ 値 が 割 り 当 て ら れ , リ ン グ 上 の ハ ッ シ ュ 空 間 に ト ー ク ン を 元 に 配 置 さ れ る . リ ン グ 上 の 各 ノ ー ド は , ハ ッ シ ュ 値 が 自 身 の ト ー ク ン 値 以 下 で , か つ 直 前 の ノ ー ド の ト ー ク ン 値 よ り 大 き い 範 囲 を 担 当 し , そ の 範 囲 の Key と Value の 組 を 保 持 す る . こ の と き , ト ー ク ン 値 の 担 当 範 囲 を ノ ー ド 別 に 指 定 す る こ と で , 各 ノ ー ド に 公 平 に デ ー タ 量 を 分 散 す る こ と が で き る . KVS の 読 み 込 み 処 理 ま た は 書 き 込 み 処 理 を 行 う 際 , Key を ハ ッ シ ュ 関 数 に か け , そ の ハ ッ シ ュ 値 を 担 当 す る ノ ー ド が 読 み 込 み 処 理 や 書 き 込 み 処 理 を 実 行 す る ノ ー ド と な る . た だ し , レ プ リ カ が 存 在 す る 場 合 , そ れ を 持 つ ノ ー ド も 実 行 す る ノ ー ド の 対 象 と な る .

(2)

Cassandra で は デ ー タ ベ ー ス の 複 製( レ プ リ カ )の 数 を 指 定 す る こ と が 可 能 で あ る . レ プ リ カ 数 は 初 期 設 定 で は 1 で あ る が , 2 以 上 の 値 に す る こ と に よ っ て 耐 障 害 性 を 向 上 さ せ る こ と が で き る . レ プ リ カ は 上 記 の 担 当 ノ ー ド の 後 続 ノ ー ド に 配 置 さ れ る . Cassandra は Java 言 語 で 実 装 さ れ て お り , 起 動 す る 際 に メ モ リ 量 や CPU コ ア 数 に 基 づ き Java ヒ ー プ サ イ ズ を 決 定 し , メ モ リ 領 域 を 確 保 し て い る . 設 定 さ れ る ヒ ー プ サ イ ズ に Max_heap_size( 最 大 ヒ ー プ 領 域 ) と Heap_NewSize(若 い 世 代 の ヒ ー プ サ イ ズ )が あ る . 表 1 にCassandra に お け る Java ヒ ー プ サ イ ズ 決 定 方 法 を 示 す . 表1. Cassandra の Java ヒ ー プ サ イ ズ 自 動 決 定 方 法 Memory Max_heap_size Heap_NewSize 2GB 未 満 メ モ リ の1/2 「Max_heap_size の 1/4」 と 「 100MB」 の 大 き い 方 2GB~4GB 1GB 4GB~32GB メ モ リ の1/4 32GB~ 8GB

2.3. Cassandra におけるデータ保存

Cassandra シ ス テ ム に 保 存 さ れ て い る デ ー タ は Memtable と SStable の 二 種 類 の テ ー ブ ル に 保 存 さ れ る . Memtable は メ モ リ 上 に 作 成 さ れ る テ ー ブ ル で あ り , SStable は デ ィ ス ク 上 に 作 成 さ れ る テ ー ブ ル で あ る .書 き 込 み 要 求 を 受 け た 時 に ノ ー ド は Commitlog を デ ィ ス ク に 書 き 込 み ,そ の 後Memtable に デ ー タ を 書 き 込 む . そ し て 書 き 込 み 要 求 に 完 了 の 返 答 を す る .Flush 命 令 が 発 行 さ れ た り ,Memtable の 大 き さ が Memtable に 設 定 さ れ た 閾 値 を 超 え る と ,Memtable は デ ィ ス ク に 書 き 込 ま れ SStable と な る . 読 み 込 み 要 求 受 信 時 に は Memtable と SStable が 同 時 に 読 み 込 ま れ る . SStable は 主 に Data.db,Index.db,Filter.db の 3 つ の フ ァ イ ル で 構 成 さ れ て い る .Data.db に key と value の ペ ア と い っ た SStable の 主 な デ ー タ を 格 納 す る . Index.db は key と offset の ペ ア が 保 存 さ れ て お り , Data.db の 各 key と value ペ ア が 格 納 さ れ て い る 場 所 へ の ポ イ ン タ が 格 納 さ れ て い る .Filter.db に は 自 ノ ー ド が 担 当 す る key が 保 存 さ れ て い る . 読 み 込 み 要 求 を 受 け た 時 は ,SStable は Filter.db,Index.db,Data.db の 順 で 読 み 込 ま れ る .

2.4. KVM (Kernel-based Virtual Machine)

KVM は 代 表 的 な 仮 想 化 シ ス テ ム の 一 つ で あ り ,本 研 究 で は KVM を 用 い て 調 査 を 行 う .KVM は Linux カ ー ネ ル 内 に 実 装 さ れ て お り ,OS を ハ イ パ バ イ ザ と し て 稼 働 す る .KVM の 仮 想 HDD の 構 築 方 法 に は イ メ ー ジ フ ァ イ ル を 使 用 す る モ ー ド と パ ー テ ィ シ ョ ン を 用 い る モ ー ド が あ る . 本 研 究 で は , 仮 想 HDD は イ メ ー ジ フ ァ イ ル モ ー ド を 使 用 し , 同 モ ー ド で は ゲ ス ト OS 上 の ア プ リ ケ ー シ ョ ン は ゲ ス ト OS フ ァ イ ル シ ス テ ム , 仮 想 計 算 機 , ホ ス ト OS フ ァ イ ル シ ス テ ム を 介 し て HDD へ の ア ク セ ス が 行 わ れ る .

2.5. KSM (Kernel Same-page Merging)

KSM[5]は 各 VM が 利 用 し て い る ペ ー ジ の 内 ,同 一 内 容 の メ モ リ ペ ー ジ 群 を 1 つ の 物 理 ペ ー ジ に ま と め る 機 能 で あ り ,VM の ペ ー ジ キ ャ ッ シ ュ サ イ ズ を 減 ら す こ と な く 利 用 可 能 な 物 理 ペ ー ジ を 増 や す こ と が で き る . KSM は カ ー ネ ル 内 で デ ー モ ン と し て 動 作 し ,匿 名 ペ ー ジ を 周 期 的 に 観 測 し , 重 複 す る ペ ー ジ 群 を 特 定 し て CoW 方 式 で マ ー ジ す る .

2.6. ActCache

ActCache[6]手 法 は ,特 定 の フ ァ イ ル が 頻 繁 に ア ク セ ス さ れ る こ と が 既 知 で あ る 環 境 に て , そ の フ ァ イ ル を 定 期 的 に ア ク セ ス し OS の ペ ー ジ キ ャ ッ シ ュ に 格 納 さ せ 続 け る 手 法 で あ る . 通 常 , 頻 繁 に ア ク セ ス さ れ る フ ァ イ ル は OS の ペ ー ジ 置 換 ア ル ゴ リ ズ ム に よ り 優 先 的 に キ ャ ッ シ ュ 内 に 格 納 さ れ , 破 棄 さ れ な い . た だ し , 該 当 フ ァ イ ル 以 外 の フ ァ イ ル に 対 し て 膨 大 な 量 の ア ク セ ス が 発 生 す る 様 な 環 境 で は , 頻 繁 に ア ク セ ス さ れ る 様 な フ ァ イ ル も ペ ー ジ キ ャ ッ シ ュ か ら 破 棄 さ れ て し ま い , そ の 様 な 環 境 で は 本 手 法 が 有 効 と な る . フ ァ イ ル を 積 極 的 に ペ ー ジ キ ャ ッ シ ュ 内 に 格 納 さ せ る 別 の 手 法 と し て linux-fadvice コ マ ン ド が あ る が , 両 手 法 の 比 較 に つ い て は 付 録 に て 言 及 す る .

3. 基本 性 能 評価

本 章 に て , 仮 想 化 環 境 に お け る Cassandra 性 能 の 評 価 を 行 う .

3.1. 測定 環 境

仮 想 計 算 機 上 で Cassandra を 稼 働 さ せ , ク ラ イ ア ン トPC 上 か ら YCSB(Yahoo! Cloud Serving Benchmark)[7] で 得 ら れ る 性 能 を 評 価 し た . 2 台 の 物 理 計 算 機 を 使 用 し ,1 台 の 物 理 計 算 機 上 で 3 台 の 仮 想 計 算 機 を 起 動 し , 合 計 6 台 の 仮 想 計 算 機 上 で Cassandra ク ラ ス タ を 構 築 し た . Cassandra の デ ー タ ベ ー ス サ イ ズ は 17[GB],レ プ リ カ 数 1 と し ,各 ノ ー ド が 担 当 す る デ ー タ 範 囲 は 均 等 と し た(各 ノ ー ド 約 2.9[GB] の デ ー タ を 保 持).以 下 こ の 環 境 をシ ン グ ル テ ナ ン ト 環 境と 呼 ぶ . シ ン グ ル テ ナ ン ト 環 境 の 模 式 図 を 図 1 に 示 す . ま た , デ ー タ ベ ー ス の 数 を 3 に 増 や し , 仮 想 計 算 機 2 台 ず つ で デ ー タ ベ ー ス サ イ ズ 17[GB]の Cassandra ク ラ ス タ を 構 築 し , 各 ノ ー ド が 約 8.5[GB]の デ ー タ を 保 持 す る 環 境 を 構 築 し た . こ の 環 境 を 以 下マ ル チ テ ナ ン ト 環 境と 呼 ぶ .

(3)

YCSB は 読 込 負 荷 100%,ス レ ッ ド 数 18,操 作 数 50000 回 , 一 貫 性 レ ベ ル ONE と し , 10 回 測 定 し た 平 均 を 結 果 と し た .測 定 環 境 を 図1,2 に 示 し ,使 用 し た 物 理 計 算 機 と 仮 想 計 算 機 の 仕 様 を 表2 に 示 す . 表2. 使 用 計 算 機 の 仕 様 物 理 計 算 機 仮 想 計 算 機 ク ラ イ ア ン ト OS CentOS6.5 Kernel Linux 2.6.32.27 Memory 8[GB] 2[GB] 8[GB] CPU AMD Turion II Neo N54L Dual-Core Processor QEMU Virtual CPU version (cpu64-rhel6) Intel Core i7-2600 図1 シ ン グ ル テ ナ ン ト 環 境 図2 マ ル チ テ ナ ン ト 環 境

3.2. 仮想 化 環 境における Cassandra 性能

シ ン グ ル テ ナ ン ト 環 境 と マ ル チ テ ナ ン ト 環 境 に お け る Cassandra 性 能 (以 下 ,こ の 実 験 を ”default”と 呼 ぶ ) を 図 3 の “single_tenant”と “multi_tenant”に ,ベ ン チ マ ー ク 中 に お け る 物 理 計 算 機 の 平 均 CPU・ I/O 使 用 率 を 図 4 に 示 す . 図 3 よ り , マ ル チ テ ナ ン ト 環 境 で は シ ン グ ル テ ナ ン ト 環 境 に 比 べ て ス ル ー プ ッ ト が 低 く な る こ と が 確 認 さ れ た . こ れ は , 各 VM が 担 当 す る デ ー タ ベ ー ス サ イ ズ が マ ル チ テ ナ ン ト 環 境 の 方 が 大 き く , こ れ が 原 因 で マ ル チ テ ナ ン ト 環 境 の ス ル ー プ ッ ト が 低 く , 負 荷 が 高 く な っ た も の と 思 わ れ る . ま た , 図 4 よ り ど ち ら の 環 境 で も ベ ン チ マ ー ク 中 に お け る disk I/O 使 用 率 が 高 く な る こ と が 確 認 さ れ た . こ の こ と か ら , ベ ン チ マ ー ク 時 の ボ ト ル ネ ッ ク は 物 理 計 算 機 の disk I/O で あ る こ と が 考 え ら れ る . 図3 仮 想 化 環 境 に お け る シ ン グ ル テ ナ ン ト 環 境 と マ ル チ テ ナ ン ト 環 境 で の Cassandra 性 能 図4 ベ ン チ マ ー ク 中 に お け る 物 理 計 算 機 の 平 均 CPU・ I/O 使 用 率

3.3. ファイルアクセス回数 .

前 節 の 結 果 よ り , ボ ト ル ネ ッ ク は 物 理 計 算 機 の disk I/O で あ る こ と が 考 え ら れ る .こ こ で ,Cassandra の disk I/O 処 理 の 調 査 と し て Cassandra フ ァ イ ル へ の ア ク セ ス 回 数 を 調 査 し た . ア ク セ ス 回 数 は 仮 想 計 算 機(ゲ ス ト OS)上 の SCSI サ ブ シ ス テ ム 実 装 を 改 変 し て 観 察 し ,各

0

50

100

150

200

250

300

single_tenant

multi_tenant

Th

roug

hpu

t [op

s/

sec

]

0

20

40

60

80

100

CPU

I/O

CPU

I/O

single_tenant

multi_tenant

Uti

liz

at

ion

[%]

(4)

フ ァ イ ル の ア ド レ ス に 対 し て 発 行 さ れ た HDD ア ク セ ス 命 令 の 数 を 表 し て い る .す な わ ち ,OS ペ ー ジ キ ャ ッ シ ュ が ミ ス し 実 際 に HDD ア ク セ ス が 生 じ た 回 数 を 表 し て い る . 測 定 環 境 と し て シ ン グ ル テ ナ ン ト 環 境 を 使 用 し ,1 ノ ー ド 上 の 読 込 負 荷 中 に お け る Cassandra フ ァ イ ル ア ク セ ス 数 を 観 測 し た . 測 定 結 果 を 図 5 に 示 す 図5 フ ァ イ ル サ イ ズ と フ ァ イ ル ア ク セ ス 回 数 図5 の 左 縦 軸 は フ ァ イ ル サ イ ズ を 示 し , 右 縦 軸 は フ ァ イ ル ア ク セ ス 回 数 を 示 し て い る .図5 よ り ,Cassandra フ ァ イ ル へ の ア ク セ ス 回 数 は Data.db と Index.db が 最 も 多 い こ と が 確 認 さ れ た . よ っ て , ボ ト ル ネ ッ ク で あ る disk I/O 処 理 に は Index.db と Data.db へ の ア ク セ ス が 強 く 関 係 し て い る こ と が 考 え ら れ る .ま た ,Data.db の フ ァ イ ル サ イ ズ が16[GB]で あ る の に 対 し て Index.db の フ ァ イ ル サ イ ズ は 500[MB]と 小 さ い . 1 バ イ ト あ た り の ア ク セ ス 回 数 で 比 較 す る と ,Index.db が 8318[回 /MB]で あ り ,Data.db が 315[回 /MB]で あ り ,Index.db の 方 が 大 き く 上 回 っ て い る こ と が 分 か る .こ の こ と か ら , 既 存 手 法 で あ る ActCache 手 法 を 用 い て ア ク セ ス 回 数 の 多 いIndex.db フ ァ イ ル を ペ ー ジ キ ャ ッ シ ュ に 固 定 的 に 格 納 す る こ と に よ り , 性 能 向 上 が 可 能 で あ る と 考 え ら れ る .

4. 提案 手 法

本 稿 で は ,(1) 既 存 手 法 で あ る ActCache 手 法 を 用 い てIndex.db フ ァ イ ル を キ ャ ッ シ ュ に 載 せ る ,(2) Java ヒ ー プ サ イ ズ を 縮 小 し て ゲ ス ト OS 上 の ペ ー ジ キ ャ ッ シ ュ サ イ ズ を 増 や す ,(3) KSM を 適 用 し ホ ス ト OS ペ ー ジ キ ャ ッ シ ュ サ イ ズ を 増 や す , の 3 手 法 を 適 用 し , Cassandra の 性 能 を 向 上 さ せ る 手 法 を 提 案 す る . ActCache は 第 2.6 節 に て 紹 介 し た 手 法 で あ り , 本 手 法 に よ り 頻 繁 に ア ク セ ス さ れ るIndex.db フ ァ イ ル を ペ ー ジ キ ャ ッ シ ュ に 格 納 さ せ 続 け る こ と に よ り Cassandra 性 能 の 向 上 が 期 待 で き る .ま た ,Java ヒ ー プ サ イ ズ の 縮 小 は , ゲ ス ト OS ペ ー ジ キ ャ ッ シ ュ が 増 え る こ と が 期 待 さ れ ,ActCache 手 法 な ど に よ り ペ ー ジ キ ャ ッ シ ュ が 効 果 的 に 使 用 さ れ る 環 境 に お い て は メ モ リ をJava VM の ヒ ー プ に 与 え る こ と よ り も ゲ ス ト OS の ペ ー ジ キ ャ ッ シ ュ に 与 え る 方 が よ り 大 き な 性 能 向 上 を 可 能 で あ る と 考 え ら れ る .KSM の 適 用 は ,複 数 の ゲ ス ト OS 上 で 同 じ カ ー ネ ル , 同 じ ア プ リ ケ ー シ ョ ン が 起 動 し て い る こ と か ら 多 く の 重 複 ペ ー ジ を 集 約 す る こ と で き , ホ ス ト OS ペ ー ジ キ ャ ッ シ ュ サ イ ズ を 増 や す こ と で disk I/O 負 荷 の 低 減 に 繋 げ る こ と が 可 能 で あ る と 考 え ら れ る .

5. 評価

本 章 に て , 提 案 手 法 に よ る 性 能 の 向 上 の 評 価 を 行 う .

5.1. ヒープサイズ縮小

第3.2 節 の default と , Cassandra の Java ヒ ー プ サ イ ズ を 1/2,1/4,1/8 と 縮 小 し た 場 合 で の 性 能 比 較 を ,シ ン グ ル テ ナ ン ト 環 境 と マ ル チ テ ナ ン ト 環 境 で 行 っ た . こ の と き , 縮 小 し た ヒ ー プ サ イ ズ は Max_heap_size と Heap_NewSize で あ り ,測 定 環 境 と ベ ン チ マ ー ク の 内 容 は 3 章 の 基 本 性 能 調 査 時 と 同 一 で あ る . 測 定 結 果 を 図 6 に 示 す . 図6 ヒ ー プ サ イ ズ を 縮 小 し た と き の Cassandra 性 能 図6 よ り , シ ン グ ル テ ナ ン ト 環 境 に お い て ヒ ー プ サ イ ズ を 縮 小 す る と 性 能 が 向 上(default と 比 較 し 最 大 51%向 上 )す る こ と が 確 認 さ れ た .こ れ は ,Cassandra の Java VM が ヒ ー プ 領 域 と し て 確 保 し て い た メ モ リ を 減 ら し , 仮 想 計 算 機 の メ モ リ キ ャ ッ シ ュ を 増 や し た こ と が 性 能 向 上 に つ な が っ た こ と を 示 し て お り , 巨 大 な Java VM ヒ ー プ サ イ ズ は 必 ず し も 効 果 的 に 使 用 さ れ て い な い と 予 想 で き る . 同 様 に , マ ル チ テ ナ ン ト 環 境 で も 性 能 向 上 が 確 認 さ れ ,default 計 測 と 比 較 し て 最 大 28%の 性 能 向 上 が 確 認 さ れ た .

5.2. KSM 適 用

第3.2 節 の default に 対 し て KSM を 適 用 し , シ ン グ ル テ ナ ン ト 環 境 と マ ル チ テ ナ ン ト 環 境 で 性 能 評 価 を 行 っ た . こ の と き , 前 節 の 手 法 で あ る Cassandra ヒ ー プ サ イ ズ の 縮 小 時 に 対 し て も KSM を 適 用 し た . 測 定 環 境 と ベ ン チ マ ー ク の 内 容 は 3 章 の 基 本 性 能 調 査 時 と 同 一 で あ る . 測 定 結 果 を 図 7, 8 に 示 す . 0 50 100 150 200 250 300 350 400 defa ul t heap 1 /2 heap 1/ 4 heap 1 /8 defa ul t heap 1 /2 heap 1 /4 heap 1 /8 single_tenant multi_tenant Th roug hpu t[op s/ sec ] 0 1000 2000 3000 4000 5000 6000 0.01 0.1 1 10 100 1000 10000 100000

Data.db Index.db The others

N um ber o f acc es s Fi le Si ze [MB ] size[GB] number of access

(5)

図7 ヒ ー プ サ イ ズ 縮 小 時 に お け る KSM 適 用 時 のCassandra 性 能 (シ ン グ ル テ ナ ン ト 環 境 ) 図8 ヒ ー プ サ イ ズ 縮 小 時 に お け る KSM 適 用 時 のCassandra 性 能 (マ ル チ テ ナ ン ト 環 境 ) 図9 ヒ ー プ サ イ ズ 毎 に お け る KSM に よ る 共 有 物 理 ペ ー ジ サ イ ズ の 比 較 図7,8 よ り ,KSM を 適 用 す る こ と に よ り default よ り も ス ル ー プ ッ ト が 向 上 す る こ と が 確 認 さ れ た . こ れ は , す べ て の 仮 想 計 算 機 上 で 同 じ ア プ リ ケ ー シ ョ ン , 同 じ カ ー ネ ル が 起 動 し て い る た め ,KSM に よ る ペ ー ジ マ ー ジ ン グ が 効 果 的 に 働 き , 物 理 ペ ー ジ の 重 複 削 除 に よ り ホ ス トOS の メ モ リ キ ャ ッ シ ュ が 増 え ,disk I/O 処 理 が 速 く な っ た こ と が 原 因 だ と 考 え ら れ る . ま た , 図 7,8 よ り ,ヒ ー プ サ イ ズ を 縮 小 し て い く ほ ど ,KSM に よ る 性 能 向 上 率 が 減 少 す る こ と が 確 認 さ れ た . default 時 と ヒ ー プ サ イ ズ 縮 小 時 の KSM に よ る 共 有 物 理 ペ ー ジ 数 に つ い て 調 査 し た . 結 果 を 図 9 に 示 す . 図 9 よ り , ヒ ー プ サ イ ズ と KSM に よ る ペ ー ジ マ ー ジ ン グ に 相 関 は な い こ と が 確 認 さ れ た . こ の こ と か ら , KSM の マ ー ジ 対 象 は Java ヒ ー プ で は な く ,Linux カ ー ネ ル に あ る と 考 え ら れ る .

5.3. ページキャッシュ固定

第3.2 節 の default に 対 し て ActCache 手 法 を 適 用 し , シ ン グ ル テ ナ ン ト 環 境 , マ ル チ テ ナ ン ト 環 境 で 性 能 評 価 を 行 っ た . 前 節 と 同 様 に Cassandra ヒ ー プ サ イ ズ の 縮 小 時 に 対 し て も ActCache 手 法 を 適 用 し た .測 定 環 境 と ベ ン チ マ ー ク の 内 容 は 3 章 の 基 本 性 能 調 査 時 と 同 一 で あ る . 測 定 結 果 を 図 10, 11 に 示 す . 図10 ヒ ー プ サ イ ズ 縮 小 時 に お け る ActCache 手 法 適 用 時 の Cassandra 性 能 (シ ン グ ル テ ナ ン ト 環 境 ) 図11 ヒ ー プ サ イ ズ 縮 小 時 に お け る ActCache 手 法 適 用 時 の Cassandra 性 能 (マ ル チ テ ナ ン ト 環 境 ) 図10,11 よ り ,Java VM ヒ ー プ サ イ ズ を 縮 小 し た 状 態 で ActCache 手 法 を 用 い る と ,同 手 法 に よ り 性 能 が 向 上 す る こ と が 確 認 さ れ た . こ れ は , 頻 繁 に ア ク セ ス さ れ るIndex.db フ ァ イ ル が ペ ー ジ キ ャ ッ シ ュ 内 に 破 棄 さ れ る こ と な く 固 定 的 に 格 納 さ れ つ づ け , こ れ に よ り 同 フ ァ イ ル に 起 因 す る デ ィ ス ク ア ク セ ス(仮 想 化 環 境 で あ る た め 仮 想 デ ィ ス ク で あ る イ メ ー ジ フ ァ イ ル へ の ア ク セ ス)が 軽 減 さ れ Cassandra 性 能 が 向 上 し た と た め で 0 20 40 60 80 100 120 140 160 180

heap_default heap 1/2 heap 1/4 heap 1/8

共有物理ペ ー ジサイ ズ [MB ] 0 50 100 150 200 250 300 350 400 d efau lt KS M d efau lt KS M d efau lt KS M d efau lt KS M

heap_default heap 1/2 heap 1/4 heap 1/8

Thr o ugh pu t [o p s/ sec ] 0 50 100 150 200 250 300 350 400 d efau lt Act C ac h e d efau lt Act C ac h e d efau lt Act C ac h e d efau lt Act C ac h e

heap_default heap 1/2 heap 1/4 heap 1/8

Th roug h p u t [o p s/ sec ] 0 50 100 150 200 250 300 default Act C ac h e default Act C ac h e default Act C ac h e de fault Ac tC ac h e

heap_default heap 1/2 heap 1/4 heap 1/8

Th rough p u t [o p s/ sec ] 0 50 100 150 200 250 d efau lt KS M d efau lt KS M d efau lt KS M d efau lt KS M

heap_default heap 1/2 heap 1/4 heap 1/8

Th rough p u t [o p s/ sec ]

(6)

あ る と 考 え ら れ る . た だ し , ヒ ー プ サ イ ズ を 初 期 設 定 の ま ま ActCache 手 法 を 適 用 す る と 性 能 が 劣 化 す る こ と も 確 認 さ れ た . こ れ は , 初 期 設 定 で は Java VM の ヒ ー プ サ イ ズ が 仮 想 計 算 機 の メ モ リ の 半 分 を 占 有 し て お り ,ペ ー ジ キ ャ ッ シ ュ が 小 さ く Index.db フ ァ イ ル を 安 定 的 に 格 納 し 続 け る こ と が で き ず , 同 手 法 が 性 能 を 劣 化 さ せ た と 思 わ れ る . 同 様 に , マ ル チ テ ナ ン ト 環 境 で も 性 能 向 上 を 確 認 で き る .ま た ,シ ン グ ル テ ナ ン ト 環 境 で の ActCache 手 法 に よ る 性 能 向 上 率 は 3%だ っ た の に 対 し , マ ル チ テ ナ ン ト 環 境 で の ActCache 手 法 に よ る 性 能 向 上 率 は 最 大 18%と な っ て い る .こ の こ と か ら ,Index フ ァ イ ル サ イ ズ が 大 き く な る に つ れ て ActCache 手 法 に よ る 性 能 向 上 率 が 高 く な る こ と が 分 か る .

5.4. 三手 法 適 用

前 述 の 三 手 法 の す べ て を 用 い な い 場 合 と , す べ て を 用 い る 場 合 の 性 能 を 図 12 に 示 す . 図 12 よ り , 提 案 手 法 を す べ て 用 い る こ と に よ り 大 幅 な 性 能 向 上 が 実 現 さ れ ,本 計 測 の 例 に て 56%の 性 能 向 上 が 実 現 さ れ て い る こ と が 分 か る . 図12 三 手 法 適 用 時 に お け る Cassandra 性 能 (シ ン グ ル テ ナ ン ト 環 境)

6. まと め

本 稿 で は , ペ ー ジ キ ャ ッ シ ュ 固 定 化 ,Java ヒ ー プ サ イ ズ の 縮 小 ,KSM の 適 用 に よ り KVS 性 能 を 向 上 さ せ る 手 法 を 提 案 し た . そ し て , 性 能 評 価 に よ り 提 案 手 法 の 有 効 性 を 確 認 し た . 今 後 は さ ら な る 性 能 向 上 を 目 指 し て い く 予 定 で あ る .

謝 辞

本 研 究 は JSPS 科 研 費 25280022, 26730040,15H02696 の 助 成 を 受 け た も の で あ る .

参 考 文 献

[1] 堀 内 浩 基 ,山 口 実 靖 ,“KVS に お け る 動 的 性 能 拡 張 性 の 向 上”, 研 究 報 告 マ ル チ メ デ ィ ア 通 信 と 分 散 処 理(DPS-154, 03, 2013)

[2] Avinash Lakshman and Prashant Malik,

“Cassandra- A Decentralized Structured Storage System”, LADIS 09, 2009

[3] Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels, “Dynamo: Amazon’s Highly Available Key-value Store”, SOSP ’07, 2007 [4] Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson

C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes and Robert E. Gruber,“Bigtable: A Distributed Storage System for Structured Data”, IOSDI ’06 pages 205--218, 2006 [5] Andrea Arcangeli, Izik Eidus, Chris

Wright,"Increasing memory density by using KSM",Proceedings of the Linux Symposium,2009 [6] ShoheiMiyokawa, TaikiTokuda, SaneyasuYamaguchi,

"ElasticityImprovementofCassandra," ACM IMCOM (ICUIMC) 2016, The 10th International Conference on Ubiquitous Information Management and Communication, 2016

[7] Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, Russell Sears “Benchmarking Cloud Serving Systems with YCSB”

付 録

3 章 の シ ン グ ル テ ナ ン ト 環 境 に お い て , Index.db を ActCache 手 法 を 用 い て ペ ー ジ キ ャ ッ シ ュ 内 に 格 納 さ せ よ う と し た 場 合 と ,fadvice 手 法 を 用 い て 格 納 さ せ よ う と し た 場 合 の 性 能 を 図 13 に 示 す . fadvice を 用 い る 手 法 で は , ゲ ス ト OS 内 に て 1 秒 お き に POSIX_FADV_WILLNEED オ プ シ ョ ン を つ け た linux-fadvice コ マ ン ド を 用 い て *Index.db フ ァ イ ル を 優 先 的 に ペ ー ジ キ ャ ッ シ ュ 内 に 格 納 す る よ う に 指 示 を し た .こ の 時 ,Java ヒ ー プ サ イ ズ は 1/2 と し て 測 定 し た . 図 よ り ,fadvice を 用 い る 手 法 よ り ,ActCache を 用 い る 手 法 の 方 が 性 能 向 上 を 実 現 で き て い る こ と が 分 か る . 図13 ActCache 手 法 と fadvise 手 法 に お け る ヒ ー プ サ イ ズ1/2 に お け る Cassandra 性 能 の 比 較 0 50 100 150 200 250 300 350 400

heap 1/2 heap 1/4 heap 1/8 default KSM + ActCache Th roug h p u t [o p s/ sec ] 0 50 100 150 200 250 300 350

default ActCache fadvise

Th roug h p u t [o p s/ sec ]

図 7  ヒ ー プ サ イ ズ 縮 小 時 に お け る KSM 適 用 時 の Cassandra 性 能 (シ ン グ ル テ ナ ン ト 環 境 )  図 8  ヒ ー プ サ イ ズ 縮 小 時 に お け る KSM 適 用 時 の Cassandra 性 能 (マ ル チ テ ナ ン ト 環 境)  図 9  ヒ ー プ サ イ ズ 毎 に お け る KSM に よ る 共 有 物 理 ペ ー ジ サ イ ズ の 比 較 図 7,8 よ り ,KSM を 適 用 す る こ と に よ り

参照

関連したドキュメント

最近の電装工事における作業環境は、電気機器及び電線布設量の増加により複雑化して

[r]

小・中学校における環境教育を通して、子供 たちに省エネなど環境に配慮した行動の実践 をさせることにより、CO 2

小学校における環境教育の中で、子供たちに家庭 における省エネなど環境に配慮した行動の実践を させることにより、CO 2

洋上環境でのこの種の故障がより頻繁に発生するため、さらに悪化する。このため、軽いメンテ

「二酸化窒素に係る環境基準について」(昭和 53 年、環境庁告示第 38 号)に規定する方法のう ちオゾンを用いる化学発光法に基づく自動測

会におけるイノベーション創出環境を確立し,わが国産業の国際競争力の向

当面の施策としては、最新のICT技術の導入による設備保全の高度化、生産性倍増に向けたカイゼン活動の全