Skip to content

Instantly share code, notes, and snippets.

@vitillo
Created January 12, 2016 21:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vitillo/718bf5f8d48d8a5d452a to your computer and use it in GitHub Desktop.
Save vitillo/718bf5f8d48d8a5d452a to your computer and use it in GitHub Desktop.
Gecko thread activity, number of hangs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### E10S Experiment Beta, thread activity"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"import ujson as json\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import numpy as np\n",
"import plotly.plotly as py\n",
"import IPython\n",
"import functools\n",
"\n",
"from __future__ import division\n",
"from moztelemetry.spark import get_pings, get_one_ping_per_client, get_pings_properties\n",
"from montecarlino import grouped_permutation_test\n",
"from whitelist import ADDON_WHITELIST\n",
"\n",
"%pylab inline\n",
"IPython.core.pylabtools.figsize(16, 7)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"16"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc.defaultParallelism"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Get e10s and non-e10s partitions"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dataset = sqlContext.read.load(\"s3://telemetry-parquet/e10s-experiment/e10s-enabled-beta-20151214@experiments.mozilla.org/generationDate=20160106\", \"parquet\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Only consider builds with [bug 1234618](https://bugzilla.mozilla.org/show_bug.cgi?id=1234618) BHR fix:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dataset = dataset.filter(dataset.buildId >= '20151228134903')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sample by clientId:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sampled = dataset.filter(dataset.sampleId <= 30)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"18640"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sampled.filter(dataset[\"experimentBranch\"] == \"experiment\").count()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"19208"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sampled.filter(dataset[\"experimentBranch\"] == \"control\").count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Transform Dataframe to RDD of pings"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def row_2_ping(row):\n",
" ping = {\"clientId\": row.clientId,\n",
" \"payload\": {\"threadHangStats\": json.loads(row.threadHangStats)},\n",
" \"environment\": {\"addons\": json.loads(row.addons)},\n",
" \"e10s\": True if row.experimentBranch == \"experiment\" else False}\n",
" return ping\n",
"\n",
"subset = sampled.rdd.map(row_2_ping)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Plotting"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Thread activity"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def get_activity(ping):\n",
" for thread in ping[\"payload\"][\"threadHangStats\"]:\n",
" if thread[\"name\"] != \"Gecko\":\n",
" continue\n",
"\n",
" values = {str(int(k) + 1): v for k, v in thread[\"activity\"][\"values\"].iteritems()} \n",
" yield {\"e10s\": ping[\"e10s\"],\n",
" \"clientId\": ping[\"clientId\"],\n",
" \"payload\": {\"histograms\": {\"GECKO_THREAD_ACTIVITY_MS\": {\"values\": values}}}}\n",
" \n",
"\n",
"\n",
"histograms = json.loads(\n",
" \"\"\"\n",
" {\n",
" \"GECKO_THREAD_ACTIVITY_MS\": {\n",
" \"expires_in_version\": \"default\",\n",
" \"kind\": \"exponential\",\n",
" \"high\": \"2**24\",\n",
" \"n_buckets\": 26,\n",
" \"description\": \"\"\n",
" }\n",
" }\n",
" \"\"\")\n",
" \n",
"histogram = \"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"\n",
"props = get_pings_properties(subset.flatMap(get_activity), [\"clientId\", \"e10s\", histogram], additional_histograms=histograms)\n",
"frame = pd.DataFrame(props.collect())\n",
" \n",
"e10s = frame[frame[\"e10s\"] == True]\n",
"none10s = frame[frame[\"e10s\"] == False]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f0355877f50>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAAGoCAYAAACHR/LqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+QXnV9N/z3B6JiILiIAoLgYgUlSv3Voq12TNVS7lYh\n1mdUitY8t9a7ow81Tp+OYNUuYwvo7Y+000FuW3+AFRRaG7U6CLV3vMWqUWoQBYz4sCggkFQDJLIk\nsN/nj1zGBXZhk+zu2T15vWYye873Ouc6713nmou353vOqdZaAAAAoE/26joAAAAAzDRlFwAAgN5R\ndgEAAOgdZRcAAIDeUXYBAADoHWUXAACA3pm1sltVH6mqW6vqqglj/7OqrqmqK6vq01X1qAmvnV5V\nP6iqa6vq+Anjz66qqwav/c1s5QUAAKA/ZvPM7keTnHC/sUuTPLW19vQk65OcniRVtTTJK5MsHexz\nTlXVYJ8PJnlda+2oJEdV1f3fEwAAAO5j1spua+0rSX52v7HLWmvjg9VvJHn8YPmkJBe21ra11kaT\nXJfkOVX1uCRLWmtrB9udn2T5bGUGAACgH7q8Zve/J/nCYPnQJDdOeO3GJIdNMn7TYBwAAACm1EnZ\nraq/SLK1tXZBF8cHAACg3xbN9QGrakWS30vyognDNyU5fML647P9jO5N+eVU51+M3zTF+7YZDQoA\nAMC80lqrh95quzktu4ObS/15khe01sYmvPTZJBdU1fuzfZryUUnWttZaVd1RVc9JsjbJa5L87VTv\n35q+C3NtZGQkIyMjXceAPY7PHnTDZw+688t7GE/PrJXdqrowyQuSPKaqfpzkL7P97ssPT3LZIOjX\nWmtvbK1dXVUXJbk6yT1J3th+2VzfmORjSR6Z5AuttUtmKzMAAAD9MGtlt7V28iTDH3mQ7c9McuYk\n41ckOXYGowEAANBzXd6NGeiBZcuWdR0B9kg+e9ANnz1YOKov17lWVevL7wIAAMB9VdX8vUEVAADA\nQrKzN0ViZszEiUxlFwAA4EGYQTq3Zur/YHDNLgAAAL2j7AIAANA7yi4AAAC9o+wCAADQO8ouAABA\nj3z3u9/N7/7u7+axj31s9trrgZXvpz/9aV72spdlv/32y/DwcC688MIOUs4+z9kFAACYwuDZrjvW\nV562MpvGNs3a8Yb2Gcqqs1ft1nusX78+X/3qV3PggQdm+fLlGR8fv8/rJ598cpLkwx/+cL797W/n\n93//9/Mf//EfWbp06W4dd6bc/29+v3HP2QUAAJhpm8Y2ZXj58Ky9/+jq0Wlve/PNN+fUU0/NV77y\nley33355y1veklNPPTVHH310jj766Fx33XUP2GfLli359Kc/ne9973tZvHhxnve85+Wkk07Kxz/+\n8Zx11lnZuHFjVqxYka9+9avZa6+98tSnPjVf/vKXF+TzhpVdAACABWZ8fDwvfelL87KXvSyf+tSn\n8uMf/zgvfvGL8+QnPznHH3/8lPutX78+ixYtypOe9KQdY09/+tOzZs2aJMn73ve+HH744dm4cWOS\n5Otf//qCLLqJa3YBAAAWnG9+85vZuHFj3v72t2fRokU58sgj8/rXvz6f/OQnH3S/zZs3Z//997/P\n2JIlS3LnnXcmSR7+8IfnJz/5SUZHR7P33nvnec973qz9DrNN2QUAAFhgbrjhhtx888054IADdvw7\n66yzcttttz3ofvvtt1/uuOOO+4zdfvvtWbJkSZLkz//8z/OkJz0pxx9/fH7lV34l7373u2ftd5ht\npjEDAAAsMEcccUSOPPLIrF+/fqf2O/roo3PPPffkuuuu2zGV+corr8zTnva0JNvL8Hvf+968973v\nzfe+97288IUvzK//+q/nhS984Yz/DrPNmV0AAIAF5rjjjsuSJUvynve8J3fddVfuvffefPe73823\nvvWtJMnY2Fi2bt2aJLn77rtz9913J0n23Xff/MEf/EHe+c535uc//3kuv/zyfO5zn8trXvOaJMnn\nP//5XHfddWmtZf/998/ee++dvffeu5tfcjcpuwAAAAvMXnvtlX/913/NunXr8sQnPjGPfexj84Y3\nvCF33HFHRkdHs3jx4jztaU9LVeWRj3xkjjnmmB37nnPOObnrrrty0EEH5dWvfnXOPffcHa//4Ac/\nyO/8zu9kyZIl+c3f/M286U1vygte8IKufs3d4jm7AAAAU1iIz9ld6GbqObvKLgAAwBSmKl7Mnpkq\nu6YxAwAA0DvKLgAAAL2j7AIAANA7yi4AAAC9o+wCAADQO8ouAAAAvaPsAgAA0DvKLgAAAL2j7AIA\nAPCQ3vGOd+TYY4/Nwx72sJxxxhkPeP2CCy7IE57whOy333552ctelp/97GcdpPylaq11GmCmVFXr\ny+8CAADMD1WViT1j5cqRbNo0e8cbGkpWrRqZvQPshvPPPz8HHXRQzj333DzrWc/KO9/5zh2vfe97\n38tv/MZv5Atf+EKe+cxn5g1veEPGx8dz4YUX7vRx7v83v994Tfd9Fu30kQEAAPZQmzYlw8Mjs/b+\no6PTe+/h4eGceuqpOf/883PDDTfkhBNOyHnnnZdHPOIR+fu///u85z3vyU9/+tM8//nPz7nnnpvH\nPe5xSZK99torH/zgB/O+970vGzZsyCmnnJK/+7u/2/G+H/nIR/Le9743t9xyS4477rh86EMfyhFH\nHJEk+aM/+qMkySc+8YkHlNFPfOITOfHEE/P85z8/SfKud70rxxxzTLZs2ZJ99903H/vYx/Kud70r\nGzZsyGMe85j81V/9Vf7wD/9wd/9cD8o0ZgAAgAWmqnLxxRfni1/8Yq6//vp85zvfycc+9rH8+7//\ne972trfl4osvzk9+8pM84QlPyKte9ar77Pv5z38+3/rWt/Kd73wnF110Ub74xS8mST7zmc/krLPO\nyr/8y79k48aN+a3f+q2cfPLJ08pz9dVX5+lPf/qO9Sc+8Yl5xCMekfXr12fLli1585vfnEsuuSR3\n3HFHvva1r+UZz3jGzP0xpqDsAgAALEB/+qd/mkMOOSQHHHBAXvrSl2bdunW54IIL8rrXvS7PeMYz\n8vCHPzxnnXVWvva1r+VHP/rRjv1OO+207L///jn88MPz27/927nyyiuTJOeee25OP/30PPnJT85e\ne+2V008/PevWrcuPf/zjh8yyefPmPOpRj7rP2P77758777wzyfYzyldddVXuuuuuHHzwwVm6dOkM\n/iUmp+wCAAAsQIcccsiO5cWLF2fz5s25+eabd0w7TpJ99903Bx54YG666aYH3S9Jbrjhhrz5zW/O\nAQcckAMOOCAHHnhgktxn36nst99+uf322+8zdvvtt2fJkiXZd99986lPfSrnnntuDj300LzkJS/J\n97///V37pXeCsgsAANAThx56aG644YYd61u2bMl//dd/5bDDDnvIfY844oh86EMfys9+9rMd/7Zs\n2ZLnPve5D9i26r73iXrqU5+64wxxkvzwhz/M1q1bc/TRRydJjj/++Fx66aW55ZZb8pSnPCV//Md/\nvKu/4rQpuwAAAAvcL24YdfLJJ+ejH/1orrzyytx9991529veluc+97n3Odt7//1+se+f/Mmf5Mwz\nz8zVV1+dZPuZ2YsvvnjHtvfcc0/GxsZy7733Ztu2bRkbG8v4+HiS5JRTTsnnPve5XH755dmyZUve\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0325d96950>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"e_sum = pd.Series(e10s[\"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"].map(lambda h: h[h.index >= 128].sum()))\n",
"n_sum = pd.Series(none10s[\"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"].map(lambda h: h[h.index >= 128].sum()))\n",
"pd.DataFrame({\"e10s\": np.log2(e_sum[e_sum > 1]), \"none10s\": np.log2(n_sum[n_sum > 1])}).plot(kind=\"hist\", alpha=0.5, bins=20, color=[\"green\", \"blue\"])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 9297.000000\n",
"mean 3247.663655\n",
"std 11512.409301\n",
"min 0.000000\n",
"25% 35.000000\n",
"50% 197.000000\n",
"75% 1668.000000\n",
"90% 7784.800000\n",
"95% 15659.800000\n",
"max 326100.000000\n",
"Name: payload/histograms/GECKO_THREAD_ACTIVITY_MS, dtype: float64"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e_sum.describe(percentiles=[0.25, 0.5, 0.75, 0.90, 0.95])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 9621.000000\n",
"mean 1796.814988\n",
"std 7622.926187\n",
"min 0.000000\n",
"25% 53.000000\n",
"50% 239.000000\n",
"75% 1122.000000\n",
"90% 3864.000000\n",
"95% 7640.000000\n",
"max 422336.000000\n",
"Name: payload/histograms/GECKO_THREAD_ACTIVITY_MS, dtype: float64"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n_sum.describe(percentiles=[0.25, 0.5, 0.75, 0.90, 0.95])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cohort = e10s.ix[e_sum[np.log2(e_sum) > 12].index][\"clientId\"]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment