From 3f1bb863313f4a4bd2d39aae0d7988b68b63df31 Mon Sep 17 00:00:00 2001 From: Claudio Maggioni Date: Thu, 27 May 2021 15:20:08 +0200 Subject: [PATCH] report work --- report/Claudio_Maggioni_report.pdf | Bin 723632 -> 725141 bytes report/Claudio_Maggioni_report.tex | 76 +++++++++++++++++++---------- 2 files changed, 49 insertions(+), 27 deletions(-) diff --git a/report/Claudio_Maggioni_report.pdf b/report/Claudio_Maggioni_report.pdf index 32d4fa93e760ee7337fd801998ff2d1454d179c5..92ba70f9cbfa966613e275dab641ce89201928fb 100644 GIT binary patch delta 23051 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 delta 21547 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 diff --git a/report/Claudio_Maggioni_report.tex b/report/Claudio_Maggioni_report.tex index 146eba54..625eee10 100644 --- a/report/Claudio_Maggioni_report.tex +++ b/report/Claudio_Maggioni_report.tex @@ -449,10 +449,7 @@ computing slowdown values given the previously computed execution attempt time deltas. Finally, the mean of the computed slowdown values is computed resulting in the clear and coincise tables found in figure~\ref{fig:taskslowdown}. - - \section{Analysis: Performance Input of Unsuccessful Executions} -\input{figures/machine_time_waste} Our first investigation focuses on replicating the methodologies used in the 2015 DSN Ros\'a et al.\ paper\cite{vino-paper} regarding usage of machine time @@ -465,6 +462,7 @@ from the 2019 traces to the ones that were obtained in 2015 to understand the workload evolution inside Borg between 2011 and 2019. \subsection{Temporal Impact: Machine Time Waste} +\input{figures/machine_time_waste} This analysis explores how machine time is distributed over task events and submissions. By partitioning the collection of all terminating tasks by their @@ -565,35 +563,59 @@ higher machine time spent for unsuccesful executions (as observed in the previous analysis) and increase slowdown rate for this class is not particularly surprising. -\textbf{TBD} - The \% of finishing jobs is relatively low comparing with the 2011 - traces. +The amount of non-successful task terminations in the 2019 traces is also rather +high when compared to 2011 data, as it can evinced by the low percentage of +\texttt{FINISH}ed tasks across priority tiers. +Another noteworthy difference is in the mean response times for all and last +executions: while the mean response is overall shorter in time in the 2019 +traces by an order of magnitude, the new traces show an overall significantly +higher mean response time than in the 2011 data. + +Across 2019 single clusters (as in figure~\ref{fig:taskslowdown-csts}), the data +shows a mostly uniform behaviour, other than for some noteworthy mean slowdown +spikes. Indeed, cluster A has 82.97 mean slowdown in the ``Free'' tier, +cluster G has 19.06 and 14.57 mean slowdown in the ``BEB'' and ``Production'' +tier respectively, and Cluster D has 12.04 mean slowdown in its ``Free'' tier. + +\subsection{Spatial Impact: Resource Waste} \input{figures/spatial_resource_waste} + +In this analyzis we aim to understand how physical resources of machines +in the Borg cluster are used to complete tasks. In particular, we compare how +CPU and Memory resource allocation and usage are distributed among tasks based +on their termination +type. + +Due to limited computational resources w.r.t.\ the data analysis process, the +resource usage for clusters E to H in the 2019 traces is missing. However, a +comparison between 2011 resource usage and the aggregated resource usage of +clusters A to D in the 2019 traces can be found in +figure~\ref{fig:spatialresourcewaste-actual}. Additionally, a +cluster-by-cluster breakdown for the 2019 data can be found in +figure~\ref{fig:spatialresourcewaste-actual-csts}. + +From these figures it is clear that, compared to the relatively even +distribution of used resources in the 2011 traces, the distribution of resources +in the 2019 Borg clusters became strikingly uneven, registering a combined +86.29\% of +CPU resource usage and 84.86\% memory usage for \texttt{KILL}ed tasks. Instead, +all other task termination types have a significantly lower resource usage: +\texttt{EVICT}ed, \texttt{FAIL}ed and \texttt{FINISH}ed tasks register respectively +8.53\%, 3.17\% and 2.02\% CPU usage and 9.03\%, 4.45\%, and 1.66\% memory usage. +This resource distribution can also be found in the data from individual +clusters in figure~\ref{fig:spatialresourcewaste-actual-csts}, with always more +than 80\% of resources devoted to \texttt{KILL}ed tasks. + +With more than 98\% of CPU and memory resources used by ultimately +non-successful tasks, it is clear the spatial resource waste is high in the 2019 +traces. + +\textbf{TBD figure~\ref{fig:spatialresourcewaste-requested}} + \input{figures/table_iii} % has table III and table IV in it \input{figures/figure_5} -\hypertarget{reserved-and-actual-resource-usage-of-tasks}{% -\subsection{Reserved and actual resource usage of -tasks}\label{reserved-and-actual-resource-usage-of-tasks}} - - -Refer to figures \ref{fig:spatialresourcewaste-actual} and -\ref{fig:spatialresourcewaste-requested}. - -\textbf{Observations}: - -\begin{itemize} -\item - Most (mesasured and requested) resources are used by killed job, even - more than in the 2011 traces. -\item - Behaviour is rather homogeneous across datacenters, with the exception - of cluster G where a lot of LOST-terminated tasks acquired 70\% of - both CPU and RAM -\end{itemize} - - Refer to figure \ref{fig:tableIII}. \textbf{Observations}: