view chapter5.tex @ 4:14e96778c600

update
author oc
date Mon, 16 Feb 2015 01:03:14 +0900
parents dc17ac172c7d
children
line wrap: on
line source

\chapter{TreeVNC の評価}

\section{木の深さによるメッセージ伝達の遅延}
VNCServer から受信する画像データ、
TreeVNC で扱われるメッセージ通信は構成された木を伝って伝達される。
接続する人数が増える毎に木の段数は増えていく。
そこで root から木の末端の node まで、
メッセージが遅延することなく伝達できているかを検証する実験を行った。


\section{実験環境}

授業を受講している学生が TreeVNC を使用した状態で実験を行った。
TreeVNC には最大で34名が接続していた。

\section{メッセージを使用した実測}

TreeVNC を伝搬するメッセージに、CHECK\_DELAY・CHECK\_DELAY\_REPLY を追加した。
CHECK\_DELAY は root から node の末端まで伝達するメッセージ(図\ref{fig:checkdelay}, 左)、
CHECK\_DELAY\_REPLY は各 node から root まで伝達するメッセージ(図\ref{fig:checkdelay}, 右)である。

% heart beat 代わりにも使える等の違ったメリットも書く?
% デバッグに使用できたとかって

\begin{figure}[htpd]
  \begin{center}
    \includegraphics[scale=0.6]{./images/Test/checkDelay.pdf}
  \end{center}
  \caption{CHECH\_DELAY, CHECK\_DELAY\_REPLY}
  \label{fig:checkdelay}
\end{figure}

\newpage

CHECK\_DELAY message は、送信時刻を付けて送信する。
root から CHECK\_DELAY 送信し、
末端 node まで各 node を伝いながら伝達して行く。

CHECK\_DELAY\_REPLY には、CHECK\_DELAY から受け取った送信時刻をそのまま付つけて送信する。
CHECK\_DELAY を受け取った各 node は、
CHECK\_DELAY\_REPLY を接続している親 node に送信する。

CHECK\_DELAY\_REPLY を受け取った root は、
メッセージの伝達にどれだけの時間がかかったかを計算する。

計算方法を以下のソースコード\ref{calc}に記述する。
各 node にデータを下ろす際も、root にデータが上る際も、
木を伝い受け渡されている。
なので、データが root から末端 node に伝わる時間は、
CHECK\_DELAY を送信した時間と、
CHECK\_DELAY\_REPLY を受信した時間の半分であるといえる。

% あとでコメントアウトはずす
\begin{lstlisting}[caption=遅延時間の計算方法,label=calc]
  Long delay = System.currentTimeMillis() - time;
  double halfDelay = (double) delay / 2;
\end{lstlisting}


\section{depth毎の遅延結果}

バイナリツリーで木を構成した場合、
node 数が34台だと深さが5となる。
各木構造の階層毎に、メッセージの伝搬にかかった時間を測定した。

図\ref{fig:test}は遅延の分布を示したヒストグラムである。
X軸はメッセージ伝達にかかった秒数(ms)、
Y軸は CHECK\_DELAY\_REPLY を送信した node の割合を表している。

ほとんどのメッセージの伝達は 0.0 〜 4.0 ミリ秒内に収まっている。
木の段数毎に、メッセージ伝達速度の差が生じている。
深い段数の node ほど、メッセージ伝達速度が落ちている。


\begin{figure}[htpd]
  \begin{center}
    \includegraphics[scale=0.8]{./images/Test/test.pdf}
  \end{center}
  \caption{step1}
  \label{fig:test}
\end{figure}

%\begin{figure}[htpd]
%  \begin{center}
%    \includegraphics[scale=1.0]{./images/Test/step2.eps}
%  \end{center}
%  \caption{step2}
%  \label{fig:gpuarch}
%\end{figure}
%
%\begin{figure}[htpd]
%  \begin{center}
%    \includegraphics[scale=1.0]{./images/Test/step3.eps}
%  \end{center}
%  \caption{step3}
%  \label{fig:gpuarch}
%\end{figure}
%
%\begin{figure}[htpd]
%  \begin{center}
%    \includegraphics[scale=1.0]{./images/Test/step4.eps}
%  \end{center}
%  \caption{step1}
%  \label{fig:gpuarch}
%\end{figure}