comparison paper/chapter4.tex @ 39:63eca978482f

Writed description of experiment
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Wed, 29 Jan 2014 02:53:18 +0900
parents 92bc4faa9a37
children 8ea1a684bfbe
comparison
equal deleted inserted replaced
38:559589aec976 39:63eca978482f
1 \chapter{分散木構造データーベースJungleの評価} 1 \chapter{分散木構造データーベース Jungle の評価}
2 前章では Jungle における分散データベースの詳細な実装について述べた.
3 本章では実装を行った Jungle に対して Cassandra との性能比較を行い評価をする.
4 性能比較の為に簡易な掲示板プログラムを Jungle と Cassandra それぞれに作成した.
5 複数のノードに繋がっている状態においても性能を測りたいため, 学科提供する
6 VMWare の並列環境を利用する. また, 我々の研究室が利用しているブレードサーバ
7 上で動いている KVM もノードとして利用する.
2 8
3 \section{実験方法} 9 \section{実験方法}
10 実験は同じ機能を提供している簡易掲示板プログラムを Jungle と Cassandra それぞれで
11 動かし, HTTPリクエストにより負荷をかけて行う.
12 レスポンスが帰ってくるまでの時間をはかる.
4 13
5 \section{実験環境} 14 また, 実験は2つ行う.
15 まず行う実験は, 複数のノードで起動してるうちの1つのノードに負荷をかける方法である.
16 これはノードの数に比例してレスポンスが遅くなっていないか確かめるためである.
17 \begin{figure}[htpb]
18 \begin{center}
19 \includegraphics[scale=0.70]{figures/jungle_experiment.pdf}
20 \caption{複数起動中のJungle の1ノードへの負荷}
21 \label{fig:jungle_exp}
22 \end{center}
23 \end{figure}
24
25 \begin{figure}[htpb]
26 \begin{center}
27 \includegraphics[scale=0.70]{figures/cas_experiment.pdf}
28 \caption{複数起動中のCassandra の1ノードへの負荷}
29 \label{fig:cas_exp}
30 \end{center}
31 \end{figure}
32
33 次に行う実験は複数のノードに対し複数のクライアントから負荷をかける方法である.
34 それぞれ大量のHTTPリクエストをだし, 全てのリクエストの処理にかかる時間を測定する.
35
36 クライアントの数に比例してノードを増やすことでレスポンスを維持できるか
37 スケーラビリティを調べるためである.
38 \begin{figure}[htpb]
39 \begin{center}
40 \includegraphics[scale=0.70]{figures/clients_request_servers.pdf}
41 \caption{複数のクライアントから複数のノードへの負荷}
42 \label{fig:clients_servers}
43 \end{center}
44 \end{figure}
45
46 \subsection{weighttp}
47 最初の実験で1つのノードに負荷をかけるプログラムはウェブサーバの測定ツールであるweighttpを使用する.
48 weighttpは総リクエスト数, 同時接続数, ネイティブスレッド数をオプションとして指定することができる.
49
50
51 \subsection{掲示板プログラム}
52 今回使用する掲示板プログラムは組み込み用ウェブサーバであるJettyをフロントエンドとして利用し, バックエンド
53 に Jungle と Cassandra を利用している.
54
55
56 \subsection{実験環境}
57
58 \subsubsection{ノードを実行させるサーバの仕様}
59 使用するVMWareとKVMのクラスタの使用を以下に示す.
60 クラスタは仕様を表\ref{tab:cluster_spec_vmware}と表\ref{tab:cluster_spec_kvm}に示す.
61
62 \begin{table}[!htbp]
63 \caption{ノードを実行させるVMWareクラスタの仕様}
64 \label{tab:cluster_spec_vmware}
65 \begin{center}
66 \begin{tabular}{|c||c|} \hline
67 名前 & 概要 \\ \hline \hline
68 CPU & Intel(R) Xeon(R) CPU X5650@2.67GHz \\ \hline
69 Memory & 8GB \\ \hline
70 OS & CentOS 5.8 \\ \hline
71 HyperVisor & VMWare ESXi \\ \hline
72 \end{tabular}
73 \end{center}
74 \end{table}
75
76 \begin{table}[!htbp]
77 \caption{ノードを実行させるKVMクラスタの仕様}
78 \label{tab:cluster_spec_kvm}
79 \begin{center}
80 \begin{tabular}{|c||c|} \hline
81 名前 & 概要 \\ \hline \hline
82 CPU & Intel(R) Xeon(R) CPU X5650@2.67GHz \\ \hline
83 Memory & 8GB \\ \hline
84 OS & CentOS 5.8 \\ \hline
85 HyperVisor & KVM \\ \hline
86 \end{tabular}
87 \end{center}
88 \end{table}
89
90 \subsubsection{1台に負荷をかけるブレードサーバの仕様}
91 最初の実験で負荷をかける側としてブレードサーバを使用する.
92 ブレードサーバの仕様を表\ref{tab:server_spec_1}に示す
93
94 \begin{table}[!htbp]
95 \caption{}
96 \label{tab:server_spec_1}
97 \begin{center}
98 \begin{tabular}{|c||c|} \hline
99 名前 & 概要 \\ \hline \hline
100 CPU & Intel(R) Xeon(R) CPU X5650@2.67GHz \\ \hline
101 物理コア数 & 12 \\ \hline
102 論理コア数 & 24 \\ \hline
103 Memory & 132GB \\ \hline
104 OS & Fedora 16 \\ \hline
105 JavaVM & Java(TM) SE Runtime Environment (build 1.6.0\_39-b04) \\ \hline
106 \end{tabular}
107 \end{center}
108 \end{table}
109
110
111
112 \subsubsection{サーバの環境}
113 HTTPによりノードに負荷を掛ける場合気をつけることがある.
114 それはサーバの設定によりコネクション数やファイル記述子の制限である.
115 この2つの値はデフォルトでは小さなものとなっており, そのままではカーネル
116 の設定がネックとなったベンチマーク結果がでる可能性がある.
117 そこで次のようにコマンドを実行することでコネクション数の制限を増やすことができる.
118 \begin{lstlisting}[frame=lrbt,label=src:maxconn_up,caption=コネクション数を増やす,numbers=left]
119 % sudo sysctl -w net.core.somaxconn=10000
120 \end{lstlisting}
121 ファイル記述子の制限を増やす場合は次のコマンドを実行する
122 \begin{lstlisting}[frame=lrbt,label=src:max_up_filedisc,caption=ファイル記述子の制限を増やす,numbers=left]
123 % ulimit -n 10000
124 \end{lstlisting}
125
126
6 127
7 128
8 \section{実験結果} 129 \section{実験結果}
9 130
10 \begin{figure}[htpb] 131 \begin{figure}[htpb]