Révision 9d39d328

b/papers/2014/kwapi/cloudam2014.tex
162 162

  
163 163
\section{Performance Evaluation}
164 164

  
165
We can evaluate Kwapi in terms of CPU and network usage.
166

  
167
We have run kwapi-drivers and kwapi-api on a machine with a Core 2 Duo P8770 2.53Ghz processor, and 4GB of RAM.
168

  
169
We have simulated 1000 IPMI cards, each one monitored by one driver thread and emitting one value per second on the bus. Then we have simulated 100 PDUs with 10 outlets, each one monitored by one driver thread and emiting ten values per second on the bus. So in each scenarii, 1000 values per second are emitted on the bus.
170

  
171
We did multiple simulations with different parameters (table \ref{parameters_table}).
172

  
173
\begin{table}
174
\renewcommand{\arraystretch}{1.3}
175
\caption{Parameters}
176
\label{parameters_table}
177
\centering
178
\begin{tabular}{|l|l|}
179
\hline
180
\bfseries Name & \bfseries Values\\
181
\hline
182
Driver threads & 100 or 1000\\
183
Signature & on or off\\
184
Socket & IPC or TCP\\
185
\hline
186
\end{tabular}
187
\end{table}
188

  
189
\subsection{CPU}
190
We have measured the CPU impact of the different parameters.
191
The socket type and the number of driver threads have no impact on the CPU consumption.
192
On our machine, kwapi-drivers without signing enabled consumed around 20\% of the total CPU power.
193
And kwapi-api consumed around 10\% without signing enabled and 16\% with one request per second querying all probes.
194
Signing the message increases the CPU usage by 30\%.
195
The CPU usage depends very much on the drivers, plugins amount and complexity, and on the signing of messages (enabled or not).
196
If it lacks compute power, it is easy to add another machine with kwapi-drivers.
197

  
198
\subsection{Network}
199
Our experiments shows a consumption of around 230KBytes/s with the message signing enabled and a consumption of 135KBytes/s otherwise. Signing induces an overhead of 70\%.
200

  
201
To decrease the header overhead, it is better to send large packets. ZeroMQ has its own optimization mechanism: if several drivers send metrics simultaneously, ZeroMQ aggregates them in one TCP datagram. In our experiments, some packets contain up to fourty metrics.
202
The metrics are Json dictionaries, which has the advantage of being human readable and easily parsable, while keeping a very small surcharge. The size of those dictionaries may vary, depending on the number of fields set by the drivers (signing add some overhead), while the ACKs have a fixed size of 66 bytes (on a TCP link). In a simple architecture where kwapi-drivers and kwapi-api are on the same machine, the network traffic is null if Kwapi is configured to use an IPC socket.
203

  
204
The plugins can select the probes they want to watch, so any useless traffic is eliminated.
205

  
165 206
% ----------------------------------------------------------------------------------------
166 207

  
167 208
\section{Conclusion}

Formats disponibles : Unified diff