From 7cb1295d55c432d18c504a283a591426f7a34326 Mon Sep 17 00:00:00 2001 From: Jake Hillion Date: Fri, 14 May 2021 11:13:04 +0100 Subject: [PATCH] added graphs --- python/evaluation.ipynb | 279 ++-- results/manual/inbound/1p1/0.json | 454 +++--- results/manual/inbound/1p1/1.json | 432 +++--- results/manual/inbound/1p1/2.json | 392 ++--- results/manual/inbound/1p1/3.json | 328 ++++ results/manual/inbound/1p1/4.json | 328 ++++ results/manual/inbound/1p2/0.json | 450 +++--- results/manual/inbound/1p2/1.json | 428 +++--- results/manual/inbound/1p2/2.json | 410 ++--- results/manual/inbound/1p2/3.json | 328 ++++ results/manual/inbound/1p2/4.json | 328 ++++ results/manual/inbound/2p2/0.json | 450 +++--- results/manual/inbound/2p2/1.json | 364 ++--- results/manual/inbound/2p2/2.json | 448 +++--- results/manual/inbound/2p2/3.json | 328 ++++ results/manual/inbound/2p2/4.json | 328 ++++ results/manual/inbound/bw_decreasing/0.json | 1528 +++++++++++++++++++ results/manual/inbound/bw_increasing/0.json | 1528 +++++++++++++++++++ results/manual/outbound/1p1/0.json | 322 ++-- results/manual/outbound/1p1/1.json | 408 ++--- results/manual/outbound/1p1/2.json | 322 ++-- results/manual/outbound/1p1/3.json | 328 ++++ results/manual/outbound/1p1/4.json | 328 ++++ results/manual/outbound/1p2/0.json | 322 ++-- results/manual/outbound/1p2/1.json | 322 ++-- results/manual/outbound/1p2/2.json | 322 ++-- results/manual/outbound/1p2/3.json | 328 ++++ results/manual/outbound/1p2/4.json | 328 ++++ results/manual/outbound/2p2/0.json | 322 ++-- results/manual/outbound/2p2/1.json | 322 ++-- results/manual/outbound/2p2/2.json | 322 ++-- results/manual/outbound/2p2/3.json | 328 ++++ results/manual/outbound/2p2/4.json | 328 ++++ results/manual/outbound/2p4/0.json | 328 ++++ results/manual/outbound/2p4/1.json | 328 ++++ results/manual/outbound/2p4/2.json | 328 ++++ results/manual/outbound/2p4/3.json | 328 ++++ results/manual/outbound/2p4/4.json | 328 ++++ results/manual/outbound/4p4/0.json | 328 ++++ results/manual/outbound/4p4/1.json | 328 ++++ results/manual/outbound/4p4/2.json | 328 ++++ results/manual/outbound/4p4/3.json | 328 ++++ results/manual/outbound/4p4/4.json | 328 ++++ 43 files changed, 14134 insertions(+), 3229 deletions(-) create mode 100644 results/manual/inbound/1p1/3.json create mode 100644 results/manual/inbound/1p1/4.json create mode 100644 results/manual/inbound/1p2/3.json create mode 100644 results/manual/inbound/1p2/4.json create mode 100644 results/manual/inbound/2p2/3.json create mode 100644 results/manual/inbound/2p2/4.json create mode 100644 results/manual/inbound/bw_decreasing/0.json create mode 100644 results/manual/inbound/bw_increasing/0.json create mode 100644 results/manual/outbound/1p1/3.json create mode 100644 results/manual/outbound/1p1/4.json create mode 100644 results/manual/outbound/1p2/3.json create mode 100644 results/manual/outbound/1p2/4.json create mode 100644 results/manual/outbound/2p2/3.json create mode 100644 results/manual/outbound/2p2/4.json create mode 100644 results/manual/outbound/2p4/0.json create mode 100644 results/manual/outbound/2p4/1.json create mode 100644 results/manual/outbound/2p4/2.json create mode 100644 results/manual/outbound/2p4/3.json create mode 100644 results/manual/outbound/2p4/4.json create mode 100644 results/manual/outbound/4p4/0.json create mode 100644 results/manual/outbound/4p4/1.json create mode 100644 results/manual/outbound/4p4/2.json create mode 100644 results/manual/outbound/4p4/3.json create mode 100644 results/manual/outbound/4p4/4.json diff --git a/python/evaluation.ipynb b/python/evaluation.ipynb index 2c5ea7b..3ed4da1 100644 --- a/python/evaluation.ipynb +++ b/python/evaluation.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 166, "metadata": { "pycharm": { "name": "#%%\n" @@ -26,10 +26,11 @@ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", - "DRAFT = True\n", "RESULTS_PATH = '../results/'\n", "OUTPUT_PATH = '../output/'\n", "\n", + "DRAFT=False\n", + "\n", "!mkdir -p $OUTPUT_PATH" ] }, @@ -47,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 167, "outputs": [], "source": [ "def load_results(path):\n", @@ -78,16 +79,19 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 168, "outputs": [], "source": [ - "def plot_bar_graph(series, filename=None):\n", + "def plot_bar_graph(series, filename=None, compare=False):\n", " bw_datas = {k: load_results(v)[0] for (k, v) in series.items()}\n", "\n", " medians = {k: np.median(v) / 1e6 for (k, v) in bw_datas.items()}\n", " q1s = {k: medians[k] - (np.quantile(v, 0.25) / 1e6) for (k, v) in bw_datas.items()}\n", " q3s = {k: (np.quantile(v, 0.75) / 1e6) - medians[k] for (k, v) in bw_datas.items()}\n", "\n", + " if compare:\n", + " print({k: v / max(medians.values()) for (k, v) in medians.items()})\n", + "\n", " fig = plt.figure()\n", " axes = fig.add_axes([0, 0, 1, 1])\n", "\n", @@ -135,13 +139,13 @@ "collapsed": false }, "source": [ - "### Section 4.3: Success Criteria\n", - "#### Subsection 4.3.2: Bidirectional Performance Gains" + "### Section 4.1: Success Criteria\n", + "#### Subsection 4.1.2: Bidirectional Performance Gains" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 169, "metadata": { "pycharm": { "name": "#%%\n" @@ -152,26 +156,14 @@ "name": "stderr", "output_type": "stream", "text": [ - ":28: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", - " fig.show()\n", - ":28: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", + ":57: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "text/plain": "
", - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "
", - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAE/CAYAAACevBBvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkuklEQVR4nO3de5xdZXno8d+zZzKZ3EgCuRAImoCApI0gRGsP2IK3emk/2h5bixxFag+0VWtbe460tcqx7ameWvVYK4pVoS2CHi8HK/YoWhBBrQSMXEUpRCXBZELu98ye5/yx1sDOZO/JnsnsWZOZ3/fzmc+s9a7bk8za69nvu971rshMJEnS+KpVHYAkSVORCViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKdFcdQDsWLFiQy5YtqzoMSZJG5M4779yUmQubLTsqEvCyZctYvXp11WFIkjQiEfGjVstsgpYkqQImYEmSKmACliSpAiZgSZIqYAKWJKkCJmBJkipgApYkqQImYEmSKmACliSpAiZgSZIqYAKWJKkCJmBJkirQsZcxREQvcCswvTzOZzLzHRGxHLgeOA64E3hNZu7vVBySpPYsu/zGMdnP1tuuZdvt143JvkZi7rkXMu+8i45oH2vf9bIxiubwOlkD3gc8LzPPBM4CXhwRzwHeDbwvM58GbAFe38EYJEmakDpWA87MBHaWs9PKnwSeB7y6LL8GuAK4slNxSJLG17zzLjrimuhU0NF7wBHRFRFrgI3ATcB/AFszs79c5VHgxE7GIEnSRNTRBJyZ9cw8C1gKPBt4ervbRsSlEbE6Ilb39fV1KkRJkioxLr2gM3MrcDPw88C8iBhs+l4KrGuxzVWZuSozVy1cuHA8wpQkadx0LAFHxMKImFdOzwBeCDxAkYhfWa52MXBDp2KQJGmi6lgnLGAJcE1EdFEk+k9n5hcj4n7g+oj4S+C7wMc6GIMkSRNSJ3tB3w08s0n5wxT3gyVJmrIcCUuSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSaqACViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSaqACViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSaqACViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSaqACViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSaqACViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSapAxxJwRJwUETdHxP0RcV9EvLksvyIi1kXEmvLnpZ2KQZKkiaq7g/vuB96SmXdFxBzgzoi4qVz2vsx8TwePLUnShNaxBJyZjwGPldM7IuIB4MROHU+SpKPJuNwDjohlwDOBfy+L3hgRd0fExyNi/njEIEnSRNLxBBwRs4HPAn+QmduBK4FTgLMoash/22K7SyNidUSs7uvr63SYkiSNq44m4IiYRpF8r83MzwFk5obMrGfmAPBR4NnNts3MqzJzVWauWrhwYSfDlCRp3HWyF3QAHwMeyMz3NpQvaVjtV4F7OxWDJEkTVSd7QZ8LvAa4JyLWlGV/ClwYEWcBCawFLutgDJIkTUid7AV9GxBNFn2pU8eUJOlo4UhYkiRVwAQsSVIFTMCSJFXABCxJUgVMwJIkVcAELElSBUzAkiRVwAQsSVIFTMCSJFXABCxJUgVMwJIkVcAELElSBUzAkiRVwAQsSVIFOvk+YEmHsezyG8dkP1tvu5Ztt183JvsaibnnXsi88y464v2sfdfLxiAa6ehiDViSpApYA5YmgXnnXTQmNVFJ48casCRJFTABS5JUAROwJEkVMAFLklQBE7AkSRUwAUuSVAETsCRJFTABS5JUAROwJEkVMAFLklQBE7AkSRUwAUuSVAETsCRJFTjs25AiogacCZwA7AHuzcyNnQ5MkqTJrGUCjohTgLcCLwB+CPQBvcBpEbEb+AhwTWYOjEegkiRNJsPVgP8SuBK4LDOzcUFELAJeDbwGuKZz4UmSNDm1TMCZeeEwyzYC7+9EQJIkTQWH7YQVEb8eEXPK6T+PiM9FxNmdD02SpMmrnV7Qf56ZOyLiPOD5wMcomqYlSdIotZOA6+XvlwFXZeaNQM/hNoqIkyLi5oi4PyLui4g3l+XHRsRNEfHD8vf80YcvSdLRqZ0EvC4iPgK8CvhSRExvc7t+4C2ZuQJ4DvCGiFgBXA58LTNPBb5WzkuSNKW0k0h/A/gy8EuZuRU4Fvhvh9soMx/LzLvK6R3AA8CJwMt5suf0NcArRhy1JElHucMm4MzcDawFXhIRbwKWZOZXRnKQiFgGPBP4d2BxZj5WLvopsHgk+5IkaTJopxf02ylqqscBC4BPRMTb2j1ARMwGPgv8QWZub1xWPl+cLba7NCJWR8Tqvr6+dg8nSdJRoZ0m6IuAZ2XmOzLzHRT3c1/Tzs4jYhpF8r02Mz9XFm+IiCXl8iVA02EtM/OqzFyVmasWLlzYzuEkSTpqtJOA11MMQTloOrDucBtFRFA8svRAZr63YdEXgIvL6YuBG9oLVZKkyeOwL2MAtgH3RcRNFM3FLwS+ExEfAMjM32+x3bkUNeV7ImJNWfanwLuAT0fE64EfUXTykiRpSmknAX++/Bl0Szs7zszbgGix+Pnt7EOSpMnqsAk4M6+JiB7g6RQ14Aczc3/HI5MkaRJr533AL6V49eB/UNRol0fEZZn5r50OTpKkyaqdJuj3Ahdk5kPwxHuCbwRMwJIkjVI7vaB3DCbf0sPAjg7FI0nSlNCyBhwRv1ZOro6ILwGfprgH/OvAHeMQmyRJk9ZwTdC/0jC9AfjFcrqPg58LliRJI9QyAWfmJeMZiCRJU8lwTdAfGG7DYQbgkCRJhzFcE/TvAPdS3PtdT+tBNSRJ0ggNl4CXUHS4ehXQD3wK+Ez5TmBJknQEWj6GlJmPZ+aHM/MC4BJgHnB/RLT1JiRJktRaOyNhnQ1cSPEShn8F7ux0UJIkTXbDdcJ6J/Ay4AHgeuBPMrN/vAKTJGkyG64G/DbgEeDM8ud/Fq/4JYDMzGd0PjxJkian4RLw8nGLQpKkKWa4BPzjzMzhNo6IONw6kiTpUMO9jOHmiHhTRDylsTAieiLieRFxDXBxZ8OTJGlyGq4G/GLgt4DrImI5sJViDOgu4CvA+zPzux2PUJKkSWi4saD3Ah8CPhQR04AFwB4H4pAk6cgd9jlggMw8ADzW4VgkSZoyhrsHLEmSOsQELElSBQ6bgCPi3e2USZKk9rVTA35hk7KXjHUgkiRNJcONBf27wO8BJ0fE3Q2L5gC3dzowSZIms+F6QX+S4u1Hfw1c3lC+IzM3dzQqSZImueGeA94GbIuItw5ZNDsiZmfmjzsbmiRJk1c794BvBL5Y/v4a8DBFzXhKu+KKK4iIcf+54oorqv6nS5LGwGEH4sjMlY3zEXE2xb3ho9ayy28cg708i6e+9Ysj3uqnnyxa849/9btGddSr98LVYxD/2ne97Ij3IUkavRE/B5yZdwE/14FYJEmaMg5bA46IP2qYrQFnA+s7FpEkSVNAO2NBz2mY7qe4F/zZzoQjSdLU0M494P8BEBHHFLO5o+NRHQW23nYt226/btTb/+jdvzyq7eaeeyHzzrto1MeVJE0M7TRBrwI+QVkTjohtwOszc3WHY5vQ5p13kYlQkjRq7TRBfxz4vcz8BkBEnFeWPaOTgUmSNJm10wu6Pph8ATLzNop7wZIkaZTaScBfj4iPRMT5EfGLEfEh4JaIOLt8JripiPh4RGyMiHsbyq6IiHURsab8eelY/CMkSTratNMEfWb5+x1Dyp8JJPC8FttdDXwQ+Mch5e/LzPe0G6AkSZNRO72gLxjNjjPz1ohYNpptJUma7NrpBT0d+M/Assb1M/OdozzmGyPitcBq4C2ZuWWU+5Ek6ajVzj3gG4CXU3S82tXwMxpXAqcAZwGPAX/basWIuDQiVkfE6r6+vlEeTpKkiamde8BLM/PFY3GwzNwwOB0RH6V4y1Krda8CrgJYtWpVjsXxJUmaKNqpAX8zIlYefrXDi4glDbO/Ctzbal1JkiazljXgiLiHopdzN3BJRDwM7AOCYkjKYQfiiIjrgPOBBRHxKEUv6vMj4qxyv2uBy478nyBJ0tFnuCbo0Q1WXMrMC5sUf+xI9ilJ0mTRMgFn5o8AIuLYJot9IYMkSUegnXvAdwF9wA+AH5bTayPirog4p5PBSZI0WbWTgG8CXpqZCzLzOOAlFL2Xfw/4UCeDkyRpsmonAT8nM788OJOZXwF+PjO/DUzvWGSSJE1i7TwH/FhEvBW4vpx/FbAhIrqAgY5FJknSJNZODfjVwFLg/5Y/TynLuoDf6FRgkiRNZu28jGET8KYWix8a23AkSZoa2nkZw80UA2ccJDNbvYZQkiQdRjv3gP+4YbqX4s1I/Z0JR5KkqaGdJug7hxTdHhHf6VA8kiRNCe00QTeOhFUDzgHmdiwiSZKmgHaaoO+kuAccFE3PjwCv72RQkiRNdu00QS8fj0AkSZpK2mmCngb8LvALZdEtwEcy80AH45IkaVJrpwn6SmAaT477/Jqy7Lc7FZQkSZNdOwn4WZl5ZsP8v0XE9zoVkCRJU0E7Q1HWI+KUwZmIOBmody4kSZImv3YH4rg5Ih6m6An9VOCSjkYlSdIkN2wCLt94dCZwKnB6WfxgZu7rdGCSJE1mwzZBZ2YduDAz92Xm3eWPyVeSpCPUThP07RHxQeBTwK7Bwsy8q2NRSZI0ybWTgM8qf7+zoSwB34YkSdIotTMS1gXjEYgkSVNJOyNhTad4BeGyxvUz852ttpEkScNrpwn6BmAbxUsZ7IAlSdIYaCcBL83MF3c8EkmSppB2RsL6ZkSs7HgkkiRNIS1rwBFxLzBQrnNJORLWPorRsDIznzE+IUqSNPkM1wR9Ik8+giRJksbQcAn4kcz80bhFIknSFDJcAl4UEX/UamFmvrcD8UiSNCUMl4C7gNkU93wlSdIYGi4BP+ZgG5IkdcZwjyFZ85UkqUOGS8DPH7coJEmaYlom4MzcPJ6BSJI0lbQzEtaoRMTHI2JjOaDHYNmxEXFTRPyw/D2/U8eXJGki61gCBq4Gho4hfTnwtcw8FfhaOS9J0pTTsQScmbcCQ5uxXw5cU05fA7yiU8eXJGki62QNuJnFmflYOf1TYPE4H1+SpAlhvBPwEzIzgWy1PCIujYjVEbG6r69vHCOTJKnzxjsBb4iIJQDl742tVszMqzJzVWauWrhw4bgFKEnSeBjvBPwF4OJy+mLghnE+viRJE0InH0O6DvgWcHpEPBoRrwfeBbwwIn4IvKCclyRpyhluLOgjkpkXtljkCFuSpCmvsk5YkiRNZSZgSZIqYAKWJKkCJmBJkipgApYkqQImYEmSKmACliSpAiZgSZIqYAKWJKkCJmBJkipgApYkqQImYEmSKmACliSpAiZgSZIqYAKWJKkCJmBJkipgApYkqQImYEmSKmACliSpAiZgSZIqYAKWJKkCJmBJkipgApYkqQLdVQcgSVIzs2I/82IPM2M/PVGnmwGCPGidR+rHsi1nVBThkTEBS5ImlGnUeWrXFmbHvqpD6SgTsCQdxt69e/n2t7/d1roRQa1Wo1ar0d3dTU9PD729vcycOZPZs2dzzDHHMG3atA5HfPTqps5p3X1Mo151KB1nApakMZSZ1Ot16vU6Bw4cYM+ePWzbtu2gdWbPns2iRYtYvHgx06dPryjSiemkrq1Nk2+dGv3ZxUCT8kErujbQE/1PzG8emMmPB+Z3KtQjZgKWpHG2c+dOdu7cySOPPMKiRYtYvnw5vb29VYdVuen0M3dIs/O+7ObHA/PYlT1AVBNYh5iAJWkUurq6mDGjeeef/v5+6vU6/f39ZGbTdaCoLW/YsIG+vj5OPvlkli5d2qlwjwpza3ugSServUzOJnsTsCSNwpw5czjrrLMOu97+/fvZvn07O3bsYMuWLWzfvv2QdQYGBnjooYfYvn07Z5xxBhGTq6bXrplx4KD5vTlt0iZfMAFLUkf19PSwYMECFixYwPLly9mxYwePPvooGzZsOGTdjRs3ArBixYrxDnNC6Bly73fvJE9RDsQhSeNozpw5nHHGGaxcubJpb+iNGzfyk5/8pILIqtc1pPl5ICd3S4AJWJIqcNxxx3HOOec0TcKPPPIIe/furSCqag0dZGOym9z1e0mawHp7e1mxYgV33333QZ21BgYGeOSRRzjjjDPG5Di7d+9m165d7Nu3j3q9TkTQ09PD8ccf39b206gzPfqZTj+1SGok9Qzq1NhPF7uzh5xkPZTHgwlYkio0f/58TjjhBNatW3dQ+caNGznllFPo6elpue0tt9xy0PyyZctYtmwZAPV6nXXr1rF+/fqWtelWCbiLOvNiL3NiH7Nr++k+zKAYSbAre9g0MIut2Us7jwv10M+K7kPvgzc6trabY2u7Wy6/v3/xsPs43PaD1vSfeNh1OsEELEkVW7p0KevXrz+oFpyZbNy4cVSPJm3fvp377ruPfftGPpTjU2tbmFfbM6Lm4CCZHfuY3bWPvTmNtfX5k7r38lip5B5wRKyNiHsiYk1ErK4iBkmaKGbMmMFxxx13SPnjjz8+4n1t3bqVNWvWjCr5QvEChCO5F9sbBzite9OkH8d5LFRZA74gMzdVeHxJmjDmz5/Ppk0HXxK3b99OZrb9XPD+/fu57777GBh4csDGOXPmcOyxx9Lb20tXVxf79+9n165d9PX1HXZ/SbAnp7E3u9lLN/WsPTH0YxcDTI9+ZsYBZsd+GgfQqDHAsq7NPNi/kAMt0sxAue9GvdF/UPKvU2N/drWMb+g+Rrp91WyClqQJ4JhjjjmkrF6vs2fPHmbOnNnWPh577LEnmrFnzZrFaaedxty5c5uue+qppzYtT2BbzmDzwAx25vSDxlpuujLF/dwltR3Mb7jf2s0AJ3Vt4+H6oTV7gH66eLC+6KCyoWM5bxvoPexYzo37GM32VaoqASfwlYhI4COZeVVFcUjShDB79mwi4pChK/fu3dt2Ah7cdu7cuaxcuZLu7taX+FqteWL9QX3h8Em3if1086OB+eyji+NrO54oPyb2MZ0D7PN+cFNVPQd8XmaeDbwEeENE/MLQFSLi0ohYHRGr22kqkaSjWUQ0fSZ4pPdyu7u7WbFixbDJdzgjTb6Nfjowh93Z2Gs7Oa6NXshTVSUJODPXlb83Ap8Hnt1knasyc1Vmrlq4cOF4hyhJ465Z0uzv72+yZmtLly6t8BWHweaBg19QMSv2VxTLxDfuCTgiZkXEnMFp4EXAveMdhyRNNM0ScGOHqnYsWbJkrMIZlX1D7mzOjANTboSrdlVxD3gx8PmyV1838MnM/H8VxCFJE8pwry5sx4wZM8a89ltjgNmxn944QC/9dMcAXRSjYQ19dWCx/sFlQdLNAAeYuL2RqzLuCTgzHwbOHO/jStJE16y5uVVnqWbmzJkzZrHMYD+LajuZW9t7SFIdqS4TcFM+hiRJE0SzBDySzlTNOnGNVJCcWNvGgtpumtVwR6MrBsZqV5OKCViSJoCBgYGmCXgkTcqj7fk8KEiWdW1hbuw5ov0cul81YwKWpAlg586dTe8Bz5gxo8nazbU7YlYri2o7mybfA3SxbaCXXdnDvuzmAF0MEAwQh7wFaXbs42ldDnLYDhOwJE0A27dvP6Ssq6uL3t7ecTn+/v37WdwwiAYUQ1Gurx9DX86i3Xrskd4vnkpMwJI0AWzZsuWQsrlz5x5xrbZdjz/++CHJc/3AMfTl7BHtp4uRPTY1lVU1EpYkqbR79+6mbz5q9oakTtm8efNB83VqbBqYNeL99MTw7w7Wk0zAklSxRx999JCyWq3GeI4COHTIy13Zc8j93XY48lX7TMCSVKHNmzezfv36Q8oXLVpET09Pky0648CBAwfN13Pk6aGLOnMqfA/w0LvPE733tQlYkiqyZ88eHnjggUPKa7Uay5cvH9dYuroOHiijO0Z+L3dhbVelw04ODEm5tZjYHcLshCVJFdi0aRPf//73mz77e8opp4z7CxWG1rZnxX5qDDDQZj2tlwMsru3sRGhtG/ompx5G9iKL8WYClqRxtGPHDh599FE2bNjQdPnxxx/PiSeeOM5RFT2uG9UY4PjaDtYPzG2xxZN66Ofkrs2Vv3RhT05jdkMT+IzoZxr9HJigqW5iRiVJk8T+/fvZsWMH27dvZ8uWLU2f9x10/PHHc/rpp49jdE8qOnwFjXdSF9V2kgSPDcyh1R3V+bGbE7u2003R+7lOrbJHkXZlDwd3WytG9nq0Ppc9jN/99HaZgCVpFHbs2MHq1aubLqvX6/T399Pf39/WG466uro4+eSTK6n5Dpo5cyabB2ZwbG33QeWLazs4trabrQMz2JPTGCDoYoDp0c/c2Mv0eLKZd6AcuOOkrq3jHH1hW/Ye8gVgVuzn9O4+6tToz+ZfDR6sLxq/IBuYgCVpFOr1Ojt3Htk9z4hg8eLFLF++fNzv+TazbmAus+IA0+PgHtHTqLPwMPd3k2Bt/dhDOkKNpyRYV5/LU7oOHdSki4HipRATiAlYksbZnDlzWLhwIYsXL54QiXdQnRoP1Y9jWdfmET3Pe4Au1tbnsyunH3QPtgqbcyZRT07o2j7hR+UyAUvSGKvVatRqNaZNm0ZPTw+9vb3MmDGD2bNnM3fu3DF5bWCnHKCLh+oLOC52sai2i55o3ZN4f3bzeM6kb2BW272lx8PjOYst/TOYF3uZHfuKzlhRp8bAhBqr2gQsSYfR29vL+eefX3UYh+hUTEmwKWezqT6b6RxgZhygO4rkNUBwILvYk93s49AvEjtzOmv6R3cv+/764iMN/QkD1NicM9mcM8dsn2PNBCxJamkf09iX0w4dZkpHbOK0GUiSNIWYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSaqACViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSaqACViSpAqYgCVJqoAJWJKkCpiAJUmqgAlYkqQKmIAlSapAJQk4Il4cEQ9GxEMRcXkVMUiSVKVxT8AR0QX8PfASYAVwYUSsGO84JEmqUhU14GcDD2Xmw5m5H7geeHkFcUiSVJkqEvCJwE8a5h8tyyRJmjK6qw6glYi4FLi0nN0ZEQ9WGc8YWwBsqjKAeHeVR9cE4/moiaTS87ED5+JTWy2oIgGvA05qmF9alh0kM68CrhqvoMZTRKzOzFVVxyGB56Mmlql0PlbRBH0HcGpELI+IHuA3gS9UEIckSZUZ9xpwZvZHxBuBLwNdwMcz877xjkOSpCpVcg84M78EfKmKY08Qk7JpXUctz0dNJFPmfIzMrDoGSZKmHIeilCSpAkd1Ao6IkyLi5oi4PyLui4g3t7HNG8shMDMiFjSUv64se0FD2SvKsleW87eUQ2iuiYgHykelxuLf8cyI+NhY7GuYY7yz8d/WxvrLIuLecnplRFzdseAmkIj4eERsHPy3N5RfHRG7I2JOQ9n7G8+jiKiX58b3IuKuiPhPHYrxhRFxZ0TcU/5+XsOytRHxjSHrr2n4W54fEdvKsrsj4qsRsWiM4vpMRJw8Fvtqsf8TIuIzI9zm6obP7/URcWpnoptYRnltvLa8vt1bfg6mleVeGw9ef8yujUd1Agb6gbdk5grgOcAb2hjW8nbgBcCPmiy7h6JX9qALge8NWeeizDwLOBd4d9mT+0j9KfCBdleOiBHfu8/Mt2fmV0e6XbntPcDSiHjKaLY/ylwNvLjFsocoR22LiBrwPA5+hG5PZp6VmWcCfwL89ZEGExFrmxRvAn4lM1cCFwP/NGT5nIg4qdz+jCbbf6OM8xkUTyW8YQzi/BmgKzMfHsE2IzqPM3N9Zr5yxME96Urgvx/B9keT0VwbrwWeDqwEZgC/3bDMa2PzbY/o2nhUJ+DMfCwz7yqndwAPACdGRHdE3BER5wNExF9HxF+V6303M9e22OU3gGdHxLSImA08DVjTYt3ZwC6gXh5jZ0S8r/y2+bWIWFiW/375LfTuiLh+6E7KGtUzMvN75fwVEfFPEfGtiPhhRPzXsvz8iPhGRHwBuD8ieiPiE2Ut6LsRcUG53g0R8dpy+rKIuLacbqwJnBMRXy9rT1+OiCUN5d+LiO9x6EX5Xzj4AzgpZeatwOYWi68HXlVOn0/xZa6/xbrHAFvgib/drRFxY1lL+HBE1CKiq/y73Fv+Hf+wzRi/m5nry9n7gBkRMb1hlU83xHkhcF2z/UREAHMa4mx17i0p419TxvrcJru7CLihYd+tPg+3RNFysBp4c0Q8vzx/7ylrXdMj4lnl56U3ImaV+/jZITWProj4m/JzfndEXDb4b4qID5b/z18FGmv33wBeMJqL9NFmlNfGL2UJ+A7FGA2DvDZ24tqYmZPiB1gG/Bg4ppz/GYqT7gXAd4GeIeuvBRY0zL8O+CDwXuCXKS4o76CoEb2yXOcW4EHgbmAPcFnD9knxDRDg7cAHy+n1wPRyel6TuC8APtswfwXFN8sZFCPC/AQ4geKCvwtYXq73FopHuKD41vpjoBdYTFFTey7wA+DYcp2rgVcC04BvAgvL8lc17Odu4BfK6b8B7m2I61zgX6r+O4/juXTvkLLB/79vA/OBjwK/2HgeUVxw1gDfB7YB55Tl5wN7gZMpHr27qdzXOcBNDcdodn6sPUysrwS+OuS8Ph34Zjn/XYqXntzbEMu2Ms6flLEOfmZanXtvAf6sXKcLmNMkjq8DK9v4PNwCfKic7i2PcVo5/4/AH5TTfwm8h+LFLX8y9O9CMUre28rp6cBqYDnwa+X/b1cZ+1bKz2+57k2Df5ep8sPIr43TgLuA55bzr8NrY0eujUd1DXhQ+Y3ssxQf3u0AWTxb/E/AF4HfyuLFD+24nuLbzG/SvOZwURZNd08B/jgiBocZGwA+VU7/M3BeOX03cG1E/Bea15aWAH1Dym7IzD2ZuQm4meIFFgDfycxHyunzyuOQmd+naFI/LTM3UJzkN1M0QQ2tzZ0O/CxwU0SsAd5G0YQyj+JDcGu53tBmzY0UJ/tU9zmKc+PnKGoFjQaboJ9O0Yz9j2UtE4q/3cOZWac4r84DHgZOjoi/i4gXA9sBIuLPytrmGuCEwemI+PvGg0XR7Ptu4LIhcTwObImI36S40O4esnywCfok4BPA/2pY1uzcuwO4JCKuoEiyO5r8vww9j1t9HmgoPx14JDN/UM5fA/xCOf1O4IXAqiHxDXoR8Nry/+jfgeOAU8vtr8vMehatBP82ZLspdR6P8tr4IeDWzBx6fnttLIzZtfGoT8BRdBT4LHBtZn5uyOKVFN+A2+5kkpnfKbdb0HBhaLZeH8W3xJ9rtUr5+2UU3+LPBu5o0vy1h+LbWbNth87vGj76J6ykuAg3OykCuK+8AJ+VmSsz80Vt7LO3jHWq+xTwFxQ114FWK2Xmtyi+pS8cLDp0ldwCnElRe/gd4B/KBX81+PcB1jf8rZ5o+oqIpcDngddm5n+0iPPvadH83OALPJn0WsV5a7nOOuDqwWa8IZqdxwftp2G6nfP4OIqmzDkt9hvAmxr+b5Zn5lfa2O+UOY9Hc22MiHdQnLN/NHR/XhtbGvU5dVQn4LJ28THggcx875BlvwYcS3Hh+LvyW0y7Lqe4+T/csWcCzwQGL341imYMgFcDt0XRUeekzLwZeCswl+Ki0ugBivspjV5e3sc4jqJ55Y4mIXyDoimIiDiN4lvngxHxbIp3LT+T4lvo8iHbPQgsjIifL7edFhE/k5lbga0RMfjt9KIh250G3MsUl5k/Av6MopbQUkQ8naIZ9PGy6NlRDL9ao2jaui2K3tO1zPwsxbfts9uJoTyXbwQuz8zbW6z2eYqa45cPs7vzePIchibnXlmT2ZCZH6X4ktAszqHn8SGfhybbPAgsi4jB7V5D0ZQN8BHgzyk6BjUbHv/LwO/Gkz11T4uIWcCtwKvKe8RLKJoxG02J83g018aI+G3gl4ALh/ly6bVxDK+NR3tnhHMpPrT3lE0GUJwc3wHeBTw/M38SER8E/jdwcUT8PkVPyOOBuyPiS5nZ2NuPzPzXYY55bUTsobjvdHVm3lmW76K4yL6NokniVRQX4H+OiLkU364+UP4xG4/1/YiYGxFzGpr27qZoJlkA/EVmri9PpEYfAq6MiHsomm9eV5Z/FLik3OYtwMej4TGVzNxfdjj4QBlXN/B+is48l5TrJzC0NnEBxUV/UouI6yg+2Asi4lHgHZl50GMQmfmRFpvPaDgPA7g4M+tlK/QdFPfRnkbxt/08xbfxT5QXIyh6TrfjjeV+3h4Rby/LXpSZGxti3EGZuJ5sBX/Cc8s4g+J+cOP53+zcuxj4bxFxANgJNKsB30jx/zbYm7TZ5+Egmbk3Ii4B/k9Z+7kD+HBZwz6QmZ+MiC7gm+U53NjD+h8o7m3eVSabPuAVFP+vzwPup7j3963BDSJiMcVtgp82iX+yGfG1EfgwRXPtt8pz5nOZ+c7GnXptHNtroyNhjZGI2JmZQ7/BtbvtHwI7MvMfyvtsOzPzPWMa4BGIooft14HzMrNVr1+1EEWP0z/OzF+uOJRhHcm5FxEzKC6M55ZfOkb9eeiU8nO2fegXKnWW18bWjuom6EnkSmBf1UEM4ykUzZ0mXzWVmXsoesaeWHUsw9hK0dFLR49JfW20BixJUgWsAUuSVAETsCRJFTABS5JUAROwJEkVMAFLklQBE7AkSRX4/9fCrjwqxfmqAAAAAElFTkSuQmCC\n" + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAE/CAYAAACevBBvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAidklEQVR4nO3deZxddX3/8dcnIWTYURIQTTADDashIQSqAhJALQgt6g9LIVKg1igWgRZaqVoZrFAUK1QRFMtqw6ICAkJFRMImFRIISSCkIo4hrIGyRE2AJJ/fH+dMuBlmJjeTufdkZl7Px2Mec+5ZP/fOmfO+53u2yEwkSVJzDam6AEmSBiMDWJKkChjAkiRVwACWJKkCBrAkSRUwgCVJqsB6VRdQjxEjRuSYMWOqLkOSpDUyc+bM5zNzZFfD+kUAjxkzhhkzZlRdhiRJayQiftfdMJugJUmqgAEsSVIFDGBJkirQL44Bd+X1119n4cKFLF26tOpSBoSWlhZGjRrFsGHDqi5FkgaFfhvACxcuZJNNNmHMmDFERNXl9GuZyQsvvMDChQtpbW2tuhxJGhT6bRP00qVL2WKLLQzfPhARbLHFFrYmSFIT9dsABgzfPuRnKUnN1a8DuGobb7zxascZM2YMzz//fBOqKUyfPp1DDjmkacuTJPVOvz0G3NmYU2/q0/m1n3Vwn85PkqRa7gH3genTpzN58mQOO+wwdtxxR6ZMmUJmrhz+ta99jXHjxrHnnnvy2GOPAdDe3s7+++/PrrvuygEHHMCCBQsAOOaYY/jRj360ctqOveyelvHTn/6UHXfckYkTJ3Lttdc2621LktaCAdxHHnzwQc4991weeeQRHn/8ce65556VwzbbbDPmzJnD8ccfz0knnQTAZz/7WY4++mhmz57NlClTOOGEE3q1jKVLl/LJT36SG2+8kZkzZ/LMM8806i1KkvqQAdxH9txzT0aNGsWQIUOYMGEC7e3tK4cdccQRK3/fe++9ANx7770ceeSRABx11FHcfffdvVrGo48+SmtrK2PHjiUi+PjHP973b06S1OcGzDHgqg0fPnxl99ChQ1m2bNnK17VnGK/ubOP11luPFStWALBixQpee+21upYhSf1G22Zv7jV9Kaff8VoXIzfWafuuT9vklppCXm7ast0DboKrr7565e/3vOc9ALz3ve/lqquuAmDatGnss88+QHHW9MyZMwG44YYbeP3113uc94477kh7ezu/+c1vALjyyisb8h4kSX3LPeAmePHFF9l1110ZPnz4yoD81re+xbHHHsvZZ5/NyJEjueSSSwD45Cc/yaGHHsr48eM58MAD2WijjXqcd0tLCxdeeCEHH3wwG264Ifvssw+LFy9u+HuSpL7UNrll1T3RQSBqz9ZdV02aNCk7Pw943rx57LTTThVVNDD5mUpqii6aoNcZfdwEHREzM3NSV8NsgpYkqQIGsCRJFTCAJUmqgAEsSVIFDGBJkipgAEuSVAEDeC0sXLiQQw89lLFjx7Lddttx4oknrnLnqq6ceeaZK7vb29t517ve1egyV9HW1sbXv/71pi5TkvRmA+dGHH19XdlqrgXLTD760Y9y3HHHcf3117N8+XKmTp3KF77wBc4+++xupzvzzDP5/Oc/37e1SlInnR/R+swVp/LqE3ObXsfw0e/ibUeetUq/9sF1v41uDZwAbrJf/OIXtLS0cOyxxwLFvZnPOeccWltbaW1t5ZFHHuG8884D4JBDDuGUU07hpz/9KUuWLGHChAnssssunHHGGSxbtowpU6bwwAMPsMsuu3D55Zez4YYbctttt3HKKaewbNky9thjDy644AKGDx/OmDFjmDFjBiNGjGDGjBmccsopTJ8+nba2NhYsWMDjjz/OggULOOmkk1Y+YemMM87gsssuY8stt2T06NHsvvvulX1ukqrROQRVvYY1QUdES0TcFxEPRcTDEXF62b81In4VEY9FxNURsX6jamikhx9++E1Btummm7LNNtt0+5CEs846iw022IBZs2Yxbdo0AObPn89nPvMZ5s2bx6abbsr555/P0qVLOeaYY7j66quZM2cOy5Yt44ILLlhtTY8++ii33HIL9913H6effjqvv/46M2fO5KqrrmLWrFncfPPN3H///Wv/5iVJa62Rx4BfBfbPzPHABODAiHg38FXgnMz8E+BF4BMNrGGdN3r0aPbaay8APv7xj3P33Xczf/58Wltb2X777QE4+uijufPOO1c7r4MPPpjhw4czYsQIttxyS5599lnuuusuPvKRj7Dhhhuy6aab8hd/8RcNfT+SpPo0LICz8Pvy5bDyJ4H9gR+V/S8DPtyoGhpp5513XvnUog6vvPIKCxYsYPPNN1/5SEGApUuXdjufzo8nXJPHFXaer48rlKT+o6Fn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\n" }, "metadata": { "needs_background": "light" @@ -180,17 +172,63 @@ } ], "source": [ - "plot_bar_graph({\n", + "inbound_data = {k: load_results(v)[0] for (k, v) in {\n", " '2x1MBps (proxied)': 'manual/inbound/1p1',\n", " '1MBps+2MBps (proxied)': 'manual/inbound/1p2',\n", " '2x2MBps (proxied)': 'manual/inbound/2p2',\n", - "}, filename='bidirectional-inbound.pdf')\n", + "}.items()}\n", "\n", - "plot_bar_graph({\n", + "outbound_data = {k: load_results(v)[0] for (k, v) in {\n", " '2x1MBps (proxied)': 'manual/outbound/1p1',\n", " '1MBps+2MBps (proxied)': 'manual/outbound/1p2',\n", " '2x2MBps (proxied)': 'manual/outbound/2p2',\n", - "}, filename='bidirectional-outbound.pdf')" + "}.items()}\n", + "\n", + "inbound_medians = {k: np.median(v) / 1e6 for (k, v) in inbound_data.items()}\n", + "inbound_q1s = {k: inbound_medians[k] - (np.quantile(v, 0.25) / 1e6) for (k, v) in inbound_data.items()}\n", + "inbound_q3s = {k: (np.quantile(v, 0.75) / 1e6) - inbound_medians[k] for (k, v) in inbound_data.items()}\n", + "\n", + "outbound_medians = {k: np.median(v) / 1e6 for (k, v) in outbound_data.items()}\n", + "outbound_q1s = {k: outbound_medians[k] - (np.quantile(v, 0.25) / 1e6) for (k, v) in outbound_data.items()}\n", + "outbound_q3s = {k: (np.quantile(v, 0.75) / 1e6) - outbound_medians[k] for (k, v) in outbound_data.items()}\n", + "\n", + "fig = plt.figure()\n", + "axes = fig.add_axes([0, 0, 1, 1])\n", + "\n", + "axes.set_ylabel('Throughput (Mbps)')\n", + "\n", + "ind = np.arange(3)\n", + "\n", + "keys = [k for k in inbound_medians]\n", + "axes.bar(\n", + " ind,\n", + " [inbound_medians[k] for k in keys],\n", + " yerr=([inbound_q1s[k] for k in keys], [inbound_q3s[k] for k in keys]),\n", + " width=0.25,\n", + " capsize=15,\n", + " label='Inbound',\n", + " )\n", + "\n", + "axes.bar(\n", + " ind+0.25,\n", + " [outbound_medians[k] for k in keys],\n", + " yerr=([outbound_q1s[k] for k in keys], [outbound_q3s[k] for k in keys]),\n", + " width=0.25,\n", + " capsize=15,\n", + " label='Outbound',\n", + " )\n", + "\n", + "axes.set_xticks(ind+0.25/2)\n", + "axes.set_xticklabels(keys)\n", + "\n", + "axes.legend()\n", + "\n", + "if DRAFT:\n", + " fig.text(0.95, 0.05, 'Draft', fontsize=50, color='gray', ha='right', va='bottom', alpha=0.5)\n", + "\n", + "fig.savefig(OUTPUT_PATH+'bidirectional-comparison.pdf', bbox_inches='tight', pad_inches=0.3)\n", + "\n", + "fig.show()" ] }, { @@ -199,30 +237,40 @@ "collapsed": false }, "source": [ - "#### Subsection 4.3.5: More Bandwidth over Two Equal Connections" + "#### Subsection 4.1.5: More Bandwidth over Two Equal Connections" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 170, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'1x1MBps (direct)': 0.5311806736589595, '2x1MBps (proxied)': 0.9245521319047644, '1x2MBps (direct)': 1.0}\n", + "{'1x2MBps (direct)': 0.5129929013906263, '2x2MBps (proxied)': 0.8852117915186511, '1x4MBps (direct)': 1.0}\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - ":28: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", + ":31: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", + " fig.show()\n", + ":31: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "text/plain": "
", - "image/png": "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\n" + "image/png": "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\n" }, "metadata": { "needs_background": "light" @@ -232,7 +280,7 @@ { "data": { "text/plain": "
", - "image/png": "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\n" + "image/png": "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\n" }, "metadata": { "needs_background": "light" @@ -245,13 +293,13 @@ " '1x1MBps (direct)': 'manual/inbound/1',\n", " '2x1MBps (proxied)': 'manual/inbound/1p1',\n", " '1x2MBps (direct)': 'manual/inbound/2',\n", - "}, filename='more-bandwidth-equal-a-inbound.png')\n", + "}, filename='more-bandwidth-equal-a-inbound.pdf', compare=True)\n", "\n", "plot_bar_graph({\n", " '1x2MBps (direct)': 'manual/inbound/2',\n", " '2x2MBps (proxied)': 'manual/inbound/2p2',\n", " '1x4MBps (direct)': 'manual/inbound/4',\n", - "}, filename='more-bandwidth-equal-b-inbound.png')" + "}, filename='more-bandwidth-equal-b-inbound.pdf', compare=True)" ] }, { @@ -266,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 171, "metadata": { "pycharm": { "name": "#%%\n" @@ -277,14 +325,16 @@ "name": "stderr", "output_type": "stream", "text": [ - ":28: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", + ":31: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", + " fig.show()\n", + ":31: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "text/plain": "
", - "image/png": "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\n" + "image/png": "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\n" }, "metadata": { "needs_background": "light" @@ -294,7 +344,7 @@ { "data": { "text/plain": "
", - "image/png": "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\n" + "image/png": "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\n" }, "metadata": { "needs_background": "light" @@ -307,45 +357,33 @@ " '2x1MBps (proxied)': 'manual/inbound/1p1',\n", " '1MBps+2MBps (proxied)': 'manual/inbound/1p2',\n", " '2x2MBps (proxied)': 'manual/inbound/2p2',\n", - "}, filename='more-bandwidth-unequal-a-inbound.png')\n", + "}, filename='more-bandwidth-unequal-a-inbound.pdf')\n", "\n", "plot_bar_graph({\n", " '2x2MBps (proxied)': 'manual/inbound/2p2',\n", " '2MBps+4MBps (proxied)': 'manual/inbound/2p4',\n", " '2x4MBps (proxied)': 'manual/inbound/4p4',\n", - "}, filename='more-bandwidth-unequal-b-inbound.png')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": false - }, - "source": [ - "#### Subsection 4.4.2: More Bandwidth over Four Equal Connections" + "}, filename='more-bandwidth-unequal-b-inbound.pdf')" ] }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, + "execution_count": 173, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - ":28: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", + ":31: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", + " fig.show()\n", + ":31: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "text/plain": "
", - "image/png": "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mgyy2sv07LI3AUvSBMybN4+zzjprzO36+/vZvn07O3bs4IknnmD79u0HbTM4OMiDDz7I9u3bOe2004iYXi29Vs2N/Qcs781Z0zb5gglYktqqp6eHRYsWsWjRIlasWMGOHTtYu3YtGzZsOGjbjRs3AnD66ad3OswpoWfYtd+90zxFORGHJHXQvHnzOO200zjjjDOajobeuHEjP/7xjyuIrHpdw7qfB3N69wSYgCWpAkcffTTnnHNO0yT88MMPs3fv3gqiqtbwSTamu+ndvpekKay3t5fTTz+dO++884DBWoODgzz88MOcdtppk3Ke3bt3s2vXLvbt20e9Xici6Onp4Zhjjmlp/1nUmR0DzGaAWiQ1knoGdWr008Xu7CGn2QjlTjABS1KFFixYwNOe9jTWrVt3QPnGjRs56aST6OnpGXHfm2+++YDl5cuXs3z5cgDq9Trr1q1j/fr1I7amR0rAXdQ5KvYyL/bRV+une4xJMZJgV/awefAItmYvrdwu1MMAp3cffB280cLabhbWdo+4/t6BpaMeY6z9h6wZOG7MbdrBBCxJFVu2bBnr168/oBWcmWzcuHFCtyZt376de+65h337xj+V49NrT3BUbc+4uoODpC/20de1j705i0fqC6b16OXJ4jVgSarYnDlzOProow8qf/zxx8d9rK1bt7JmzZoJJV8oHoBwKNdie2M/p3RvnvbzOE8GW8CSNAUsWLCAzZs3H1C2fft2MrPl+4L7+/u55557GBx8asLGefPmsXDhQnp7e+nq6qK/v59du3axadOmMY+XBHtyFnuzm710U8/ak1M/djHI7BhgbuynL/ppnECjxiDLu7bwwMBi9o+QZgbLYzfqjYEDkn+dGv3ZNWJ8w48x3v2rZgKWpCngyCOPPKisXq+zZ88e5s6d29IxHnvssSe7sY844ghOOeUU5s+f33Tbk08+uWl5AttyDlsG57AzZx8w13LTjSmu5x5b28GChuut3QxyfNc2Hqof3LIHGKCLB+pLDigbPpfztsHeMedybjzGRPavkglYkqaAvr4+IuKgqSv37t3bcgIe2nf+/PmcccYZdHeP/Ce+VmueWL9fXzx60m2in24eHVzAPro4prbjyfIjYx+z2c8+rwc3Vck14Ih4JCLuiog1EbG6ihgkaSqJiKb3BI/3Wm53dzenn376qMl3NONNvo1+MjiP3dk4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\n" + "image/png": "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\n" }, "metadata": { "needs_background": "light" @@ -355,7 +393,7 @@ { "data": { "text/plain": "
", - "image/png": "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\n" + "image/png": "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\n" }, "metadata": { "needs_background": "light" @@ -363,18 +401,56 @@ "output_type": "display_data" } ], + "source": [ + "plot_bar_graph({\n", + " '2x1MBps (proxied)': 'manual/outbound/1p1',\n", + " '1MBps+2MBps (proxied)': 'manual/outbound/1p2',\n", + " '2x2MBps (proxied)': 'manual/outbound/2p2',\n", + "}, filename='more-bandwidth-unequal-a-outbound.pdf')\n", + "\n", + "plot_bar_graph({\n", + " '2x2MBps (proxied)': 'manual/outbound/2p2',\n", + " '2MBps+4MBps (proxied)': 'manual/outbound/2p4',\n", + " '2x4MBps (proxied)': 'manual/outbound/4p4',\n", + "}, filename='more-bandwidth-unequal-b-outbound.pdf')" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false + }, + "source": [ + "#### Subsection 4.2.2: More Bandwidth over Four Equal Connections" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], "source": [ "plot_bar_graph({\n", " '2x1MBps (proxied)': 'manual/inbound/1p1',\n", " '3x1MBps (proxied)': 'manual/inbound/1p1p1',\n", " '4x1MBps (proxied)': 'manual/inbound/1p1p1p1',\n", - "}, filename='more-bandwidth-four-a-inbound.png')\n", + "}, filename='more-bandwidth-four-a-inbound.pdf')\n", "\n", "plot_bar_graph({\n", " '2x2MBps (proxied)': 'manual/inbound/2p2',\n", " '3x2MBps (proxied)': 'manual/inbound/2p2p2',\n", " '4x2MBps (proxied)': 'manual/inbound/2p2p2p2',\n", - "}, filename='more-bandwidth-four-b-inbound.png')" + "}, filename='more-bandwidth-four-b-inbound.pdf')" ] }, { @@ -383,9 +459,54 @@ "collapsed": false }, "source": [ - "#### Subsection 4.4.3: Bandwidth Variation" + "#### Subsection 4.2.3: Bandwidth Variation" ] }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "increasing_data = load_results('manual/inbound/bw_increasing')[1]\n", + "increasing_keys = [x[0] for x in increasing_data][2:][:-2]\n", + "increasing_smoothed = [x[1] / 1e6 for x in increasing_data]\n", + "increasing_smoothed = np.convolve(increasing_smoothed, np.ones(5)/5, mode='valid')\n", + "\n", + "decreasing_data = load_results('manual/inbound/bw_decreasing')[1]\n", + "decreasing_keys = [x[0] for x in decreasing_data][2:][:-2]\n", + "decreasing_smoothed = [x[1] / 1e6 for x in decreasing_data]\n", + "decreasing_smoothed = np.convolve(decreasing_smoothed, np.ones(5)/5, mode='valid')\n", + "\n", + "fig = plt.figure()\n", + "axes = fig.add_axes([0, 0, 1, 1])\n", + "\n", + "axes.set_ylabel('Throughput (Mbps)')\n", + "axes.set_xlabel('Time (s)')\n", + "\n", + "axes.plot(\n", + " increasing_keys,\n", + " increasing_smoothed,\n", + " label='increasing',\n", + ")\n", + "\n", + "axes.plot(\n", + " decreasing_keys,\n", + " decreasing_smoothed,\n", + " label='decreasing',\n", + ")\n", + "\n", + "axes.legend()\n", + "\n", + "fig.savefig(OUTPUT_PATH+'connection_capacity_changes.pdf', bbox_inches='tight', pad_inches=0.3)\n", + "fig.show()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, { "cell_type": "markdown", "metadata": { @@ -394,42 +515,14 @@ } }, "source": [ - "### Section 4.5: Performance Evaluation\n", - "#### Subsection 4.5.1: Faster Connections Scaling" + "### Section 4.4: Performance Evaluation\n", + "#### Subsection 4.4.1: Number of Connections Scaling" ] }, - { - "cell_type": "markdown", - "source": [ - "#### Subsection 4.5.2: Number of Connections Scaling" - ], - "metadata": { - "collapsed": false - } - }, { "cell_type": "code", - "execution_count": 78, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":61: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", - " fig.show()\n" - ] - }, - { - "data": { - "text/plain": "
", - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "execution_count": null, + "outputs": [], "source": [ "data_paths = {\n", " 'n*1MB': {\n", @@ -502,7 +595,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "outputs": [], "source": [], "metadata": { diff --git a/results/manual/inbound/1p1/0.json b/results/manual/inbound/1p1/0.json index 9caea71..b4fb205 100644 --- a/results/manual/inbound/1p1/0.json +++ b/results/manual/inbound/1p1/0.json @@ -2,22 +2,22 @@ "start": { "connected": [{ "socket": 5, - "local_host": "1.1.1.2", - "local_port": 42750, - "remote_host": "1.1.1.1", + "local_host": "1.1.1.1", + "local_port": 49984, + "remote_host": "1.1.1.2", "remote_port": 5201 }], "version": "iperf 3.6", - "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:30:31 GMT", - "timesecs": 1616344231 + "time": "Fri, 14 May 2021 03:47:58 GMT", + "timesecs": 1620964078 }, "connecting_to": { - "host": "1.1.1.1", + "host": "1.1.1.2", "port": 5201 }, - "cookie": "mhy6gbcoyesqeqzhkfral5uskg7y5rayuhrw", + "cookie": "d7nxuzh4aq7y7zakezn4amtlxgft44rjrgri", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001828670501709, - "seconds": 1.0001828670501709, - "bytes": 3785072, - "bits_per_second": 30275039.692797571, - "retransmits": 81, - "snd_cwnd": 15928, - "rtt": 1144, - "rttvar": 287, + "end": 1.0001180171966553, + "seconds": 1.0001180171966553, + "bytes": 2015616, + "bits_per_second": 16123025.205763614, + "retransmits": 19, + "snd_cwnd": 52128, + "rtt": 27730, + "rttvar": 249, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001828670501709, - "seconds": 1.0001828670501709, - "bytes": 3785072, - "bits_per_second": 30275039.692797571, - "retransmits": 81, + "end": 1.0001180171966553, + "seconds": 1.0001180171966553, + "bytes": 2015616, + "bits_per_second": 16123025.205763614, + "retransmits": 19, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001828670501709, - "end": 2.0001468658447266, - "seconds": 0.99996399879455566, - "bytes": 1824480, - "bits_per_second": 14596365.486752629, - "retransmits": 110, - "snd_cwnd": 21720, - "rtt": 11895, - "rttvar": 6635, + "start": 1.0001180171966553, + "end": 2.0001440048217773, + "seconds": 1.0000259876251221, + "bytes": 2085120, + "bits_per_second": 16680526.512730148, + "retransmits": 2, + "snd_cwnd": 73848, + "rtt": 38970, + "rttvar": 61, "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001828670501709, - "end": 2.0001468658447266, - "seconds": 0.99996399879455566, - "bytes": 1824480, - "bits_per_second": 14596365.486752629, - "retransmits": 110, + "start": 1.0001180171966553, + "end": 2.0001440048217773, + "seconds": 1.0000259876251221, + "bytes": 2085120, + "bits_per_second": 16680526.512730148, + "retransmits": 2, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0001468658447266, - "end": 3.0001399517059326, - "seconds": 0.999993085861206, - "bytes": 1889640, - "bits_per_second": 15117224.522588529, - "retransmits": 64, - "snd_cwnd": 21720, - "rtt": 1316, + "start": 2.0001440048217773, + "end": 3.0001621246337891, + "seconds": 1.0000181198120117, + "bytes": 1759320, + "bits_per_second": 14074304.976239635, + "retransmits": 0, + "snd_cwnd": 91224, + "rtt": 48301, + "rttvar": 250, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001440048217773, + "end": 3.0001621246337891, + "seconds": 1.0000181198120117, + "bytes": 1759320, + "bits_per_second": 14074304.976239635, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001621246337891, + "end": 4.0001311302185059, + "seconds": 0.9999690055847168, + "bytes": 2019960, + "bits_per_second": 16160180.875357103, + "retransmits": 0, + "snd_cwnd": 105704, + "rtt": 55763, + "rttvar": 339, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001621246337891, + "end": 4.0001311302185059, + "seconds": 0.9999690055847168, + "bytes": 2019960, + "bits_per_second": 16160180.875357103, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001311302185059, + "end": 5.0001571178436279, + "seconds": 1.0000259876251221, + "bytes": 1824480, + "bits_per_second": 14595460.698638881, + "retransmits": 1, + "snd_cwnd": 117288, + "rtt": 62033, + "rttvar": 576, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001311302185059, + "end": 5.0001571178436279, + "seconds": 1.0000259876251221, + "bytes": 1824480, + "bits_per_second": 14595460.698638881, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001571178436279, + "end": 6.0000889301300049, + "seconds": 0.999931812286377, + "bytes": 2085120, + "bits_per_second": 16682097.514087923, + "retransmits": 1, + "snd_cwnd": 127424, + "rtt": 68573, + "rttvar": 201, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001571178436279, + "end": 6.0000889301300049, + "seconds": 0.999931812286377, + "bytes": 2085120, + "bits_per_second": 16682097.514087923, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0000889301300049, + "end": 7.0001499652862549, + "seconds": 1.00006103515625, + "bytes": 1824480, + "bits_per_second": 14594949.194995422, + "retransmits": 0, + "snd_cwnd": 139008, + "rtt": 74843, + "rttvar": 254, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0000889301300049, + "end": 7.0001499652862549, + "seconds": 1.00006103515625, + "bytes": 1824480, + "bits_per_second": 14594949.194995422, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001499652862549, + "end": 8.0002059936523438, + "seconds": 1.0000560283660889, + "bytes": 1954800, + "bits_per_second": 15637523.855088724, + "retransmits": 0, + "snd_cwnd": 149144, + "rtt": 79539, "rttvar": 131, "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0001468658447266, - "end": 3.0001399517059326, - "seconds": 0.999993085861206, - "bytes": 1889640, - "bits_per_second": 15117224.522588529, - "retransmits": 64, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 3.0001399517059326, - "end": 4.0000917911529541, - "seconds": 0.99995183944702148, - "bytes": 1629000, - "bits_per_second": 13032627.6585548, - "retransmits": 56, - "snd_cwnd": 18824, - "rtt": 3688, - "rttvar": 5062, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 3.0001399517059326, - "end": 4.0000917911529541, - "seconds": 0.99995183944702148, - "bytes": 1629000, - "bits_per_second": 13032627.6585548, - "retransmits": 56, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 4.0000917911529541, - "end": 5.0001468658447266, - "seconds": 1.0000550746917725, - "bytes": 2085120, - "bits_per_second": 16680041.351863794, - "retransmits": 90, - "snd_cwnd": 14480, - "rtt": 1050, - "rttvar": 148, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 4.0000917911529541, - "end": 5.0001468658447266, - "seconds": 1.0000550746917725, - "bytes": 2085120, - "bits_per_second": 16680041.351863794, - "retransmits": 90, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 5.0001468658447266, - "end": 6.0002439022064209, - "seconds": 1.0000970363616943, - "bytes": 1563840, - "bits_per_second": 12509506.123039227, - "retransmits": 28, - "snd_cwnd": 14480, - "rtt": 16591, - "rttvar": 11042, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 5.0001468658447266, - "end": 6.0002439022064209, - "seconds": 1.0000970363616943, - "bytes": 1563840, - "bits_per_second": 12509506.123039227, - "retransmits": 28, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 6.0002439022064209, - "end": 7.0002398490905762, - "seconds": 0.99999594688415527, - "bytes": 1954800, - "bits_per_second": 15638463.384503732, - "retransmits": 45, - "snd_cwnd": 17376, - "rtt": 16253, - "rttvar": 1771, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 6.0002439022064209, - "end": 7.0002398490905762, - "seconds": 0.99999594688415527, + "start": 7.0001499652862549, + "end": 8.0002059936523438, + "seconds": 1.0000560283660889, "bytes": 1954800, - "bits_per_second": 15638463.384503732, - "retransmits": 45, + "bits_per_second": 15637523.855088724, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0002398490905762, - "end": 8.0001587867736816, - "seconds": 0.99991893768310547, - "bytes": 2019960, - "bits_per_second": 16160990.047296543, - "retransmits": 47, - "snd_cwnd": 18824, - "rtt": 18824, - "rttvar": 6481, + "start": 8.0002059936523438, + "end": 9.0000870227813721, + "seconds": 0.99988102912902832, + "bytes": 1954800, + "bits_per_second": 15640260.735441919, + "retransmits": 0, + "snd_cwnd": 157832, + "rtt": 84614, + "rttvar": 715, "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0002398490905762, - "end": 8.0001587867736816, - "seconds": 0.99991893768310547, - "bytes": 2019960, - "bits_per_second": 16160990.047296543, - "retransmits": 47, + "start": 8.0002059936523438, + "end": 9.0000870227813721, + "seconds": 0.99988102912902832, + "bytes": 1954800, + "bits_per_second": 15640260.735441919, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0001587867736816, - "end": 9.0008749961853027, - "seconds": 1.0007162094116211, - "bytes": 521280, - "bits_per_second": 4167255.3724816, - "retransmits": 13, - "snd_cwnd": 1448, - "rtt": 12701, - "rttvar": 2714, + "start": 9.0000870227813721, + "end": 10.000248908996582, + "seconds": 1.00016188621521, + "bytes": 1629000, + "bits_per_second": 13029890.64031964, + "retransmits": 0, + "snd_cwnd": 166520, + "rtt": 89252, + "rttvar": 343, "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0001587867736816, - "end": 9.0008749961853027, - "seconds": 1.0007162094116211, - "bytes": 521280, - "bits_per_second": 4167255.3724816, - "retransmits": 13, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 9.0008749961853027, - "end": 10.001152992248535, - "seconds": 1.0002779960632324, - "bytes": 0, - "bits_per_second": 0, - "retransmits": 1, - "snd_cwnd": 1448, - "rtt": 12701, - "rttvar": 2714, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 9.0008749961853027, - "end": 10.001152992248535, - "seconds": 1.0002779960632324, - "bytes": 0, - "bits_per_second": 0, - "retransmits": 1, + "start": 9.0000870227813721, + "end": 10.000248908996582, + "seconds": 1.00016188621521, + "bytes": 1629000, + "bits_per_second": 13029890.64031964, + "retransmits": 0, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.001152992248535, - "seconds": 10.001152992248535, - "bytes": 17273192, - "bits_per_second": 13816960.51516277, - "retransmits": 535, - "max_snd_cwnd": 21720, - "max_rtt": 18824, - "min_rtt": 1050, - "mean_rtt": 9616 + "end": 10.000248908996582, + "seconds": 10.000248908996582, + "bytes": 19152696, + "bits_per_second": 15321775.427225256, + "retransmits": 23, + "max_snd_cwnd": 166520, + "max_rtt": 89252, + "min_rtt": 27730, + "mean_rtt": 62961 }, "receiver": { "socket": 5, "start": 0, - "end": 10.040853977203369, - "seconds": 10.001152992248535, - "bytes": 17042960, - "bits_per_second": 13578892.822219405 + "end": 10.129604816436768, + "seconds": 10.000248908996582, + "bytes": 18689336, + "bits_per_second": 14760169.889094835 } }], "sum_sent": { "start": 0, - "end": 10.001152992248535, - "seconds": 10.001152992248535, - "bytes": 17273192, - "bits_per_second": 13816960.51516277, - "retransmits": 535 + "end": 10.000248908996582, + "seconds": 10.000248908996582, + "bytes": 19152696, + "bits_per_second": 15321775.427225256, + "retransmits": 23 }, "sum_received": { "start": 0, - "end": 10.040853977203369, - "seconds": 10.040853977203369, - "bytes": 17042960, - "bits_per_second": 13578892.822219405 + "end": 10.129604816436768, + "seconds": 10.129604816436768, + "bytes": 18689336, + "bits_per_second": 14760169.889094835 }, "cpu_utilization_percent": { - "host_total": 0.5244406387816839, - "host_user": 0.10507647237663453, - "host_system": 0.41936416640504942, - "remote_total": 0.082545510871916208, - "remote_user": 0.010870481582271222, - "remote_system": 0.07168610547175211 + "host_total": 0.50000188294764947, + "host_user": 0.069193370993607686, + "host_system": 0.43082833245561547, + "remote_total": 0.096241732205479991, + "remote_user": 0.018078560689854469, + "remote_system": 0.078167595595669048 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/1p1/1.json b/results/manual/inbound/1p1/1.json index e25e0d3..d7f50ba 100644 --- a/results/manual/inbound/1p1/1.json +++ b/results/manual/inbound/1p1/1.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42754, + "local_port": 54408, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:32:00 GMT", - "timesecs": 1616344320 + "time": "Fri, 14 May 2021 03:48:46 GMT", + "timesecs": 1620964126 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "twjcb7w7s62kjqtoomd2qhxiynepyq4r3avy", + "cookie": "re5fhjwn6doulpiprxzaboq6bh2pn4a4rf4q", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0003631114959717, - "seconds": 1.0003631114959717, - "bytes": 3651856, - "bits_per_second": 29204243.603416443, + "end": 1.0003101825714111, + "seconds": 1.0003101825714111, + "bytes": 3714120, + "bits_per_second": 29703746.415556278, "retransmits": 89, - "snd_cwnd": 13032, - "rtt": 7845, - "rttvar": 13628, + "snd_cwnd": 11584, + "rtt": 13133, + "rttvar": 14397, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0003631114959717, - "seconds": 1.0003631114959717, - "bytes": 3651856, - "bits_per_second": 29204243.603416443, + "end": 1.0003101825714111, + "seconds": 1.0003101825714111, + "bytes": 3714120, + "bits_per_second": 29703746.415556278, "retransmits": 89, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0003631114959717, - "end": 2.0002140998840332, - "seconds": 0.99985098838806152, - "bytes": 1889640, - "bits_per_second": 15119372.962136587, - "retransmits": 102, - "snd_cwnd": 10136, - "rtt": 6591, - "rttvar": 7269, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 1.0003631114959717, - "end": 2.0002140998840332, - "seconds": 0.99985098838806152, - "bytes": 1889640, - "bits_per_second": 15119372.962136587, - "retransmits": 102, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 2.0002140998840332, - "end": 3.0001962184906006, - "seconds": 0.99998211860656738, + "start": 1.0003101825714111, + "end": 2.0001130104064941, + "seconds": 0.999802827835083, "bytes": 2085120, - "bits_per_second": 16681258.28414233, - "retransmits": 52, - "snd_cwnd": 14480, - "rtt": 1034, - "rttvar": 169, + "bits_per_second": 16684249.669627376, + "retransmits": 89, + "snd_cwnd": 15928, + "rtt": 12719, + "rttvar": 4549, "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0002140998840332, - "end": 3.0001962184906006, - "seconds": 0.99998211860656738, + "start": 1.0003101825714111, + "end": 2.0001130104064941, + "seconds": 0.999802827835083, "bytes": 2085120, - "bits_per_second": 16681258.28414233, - "retransmits": 52, + "bits_per_second": 16684249.669627376, + "retransmits": 89, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0001962184906006, - "end": 4.0002970695495605, - "seconds": 1.00010085105896, - "bytes": 1498680, - "bits_per_second": 11988230.974211194, - "retransmits": 56, - "snd_cwnd": 11584, - "rtt": 8130, - "rttvar": 5733, + "start": 2.0001130104064941, + "end": 3.0001330375671387, + "seconds": 1.0000200271606445, + "bytes": 1694160, + "bits_per_second": 13553008.571720118, + "retransmits": 51, + "snd_cwnd": 17376, + "rtt": 7896, + "rttvar": 8897, "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0001962184906006, - "end": 4.0002970695495605, - "seconds": 1.00010085105896, - "bytes": 1498680, - "bits_per_second": 11988230.974211194, - "retransmits": 56, + "start": 2.0001130104064941, + "end": 3.0001330375671387, + "seconds": 1.0000200271606445, + "bytes": 1694160, + "bits_per_second": 13553008.571720118, + "retransmits": 51, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0002970695495605, - "end": 5.000197172164917, - "seconds": 0.99990010261535645, + "start": 3.0001330375671387, + "end": 4.0001211166381836, + "seconds": 0.99998807907104492, "bytes": 1954800, - "bits_per_second": 15639962.391338818, - "retransmits": 68, - "snd_cwnd": 4344, - "rtt": 11482, - "rttvar": 6700, + "bits_per_second": 15638586.426477747, + "retransmits": 73, + "snd_cwnd": 23168, + "rtt": 17756, + "rttvar": 5646, "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0002970695495605, - "end": 5.000197172164917, - "seconds": 0.99990010261535645, + "start": 3.0001330375671387, + "end": 4.0001211166381836, + "seconds": 0.99998807907104492, "bytes": 1954800, - "bits_per_second": 15639962.391338818, + "bits_per_second": 15638586.426477747, + "retransmits": 73, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001211166381836, + "end": 5.0000829696655273, + "seconds": 0.99996185302734375, + "bytes": 1824480, + "bits_per_second": 14596396.808349928, + "retransmits": 63, + "snd_cwnd": 13032, + "rtt": 899, + "rttvar": 113, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001211166381836, + "end": 5.0000829696655273, + "seconds": 0.99996185302734375, + "bytes": 1824480, + "bits_per_second": 14596396.808349928, + "retransmits": 63, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0000829696655273, + "end": 6.000154972076416, + "seconds": 1.0000720024108887, + "bytes": 1954800, + "bits_per_second": 15637274.078566616, + "retransmits": 21, + "snd_cwnd": 23168, + "rtt": 9671, + "rttvar": 6784, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0000829696655273, + "end": 6.000154972076416, + "seconds": 1.0000720024108887, + "bytes": 1954800, + "bits_per_second": 15637274.078566616, + "retransmits": 21, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.000154972076416, + "end": 7.000324010848999, + "seconds": 1.000169038772583, + "bytes": 1694160, + "bits_per_second": 13550989.357391741, + "retransmits": 39, + "snd_cwnd": 14480, + "rtt": 15236, + "rttvar": 14026, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.000154972076416, + "end": 7.000324010848999, + "seconds": 1.000169038772583, + "bytes": 1694160, + "bits_per_second": 13550989.357391741, + "retransmits": 39, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.000324010848999, + "end": 8.0001850128173828, + "seconds": 0.99986100196838379, + "bytes": 2019960, + "bits_per_second": 16161926.475967286, + "retransmits": 45, + "snd_cwnd": 13032, + "rtt": 997, + "rttvar": 113, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.000324010848999, + "end": 8.0001850128173828, + "seconds": 0.99986100196838379, + "bytes": 2019960, + "bits_per_second": 16161926.475967286, + "retransmits": 45, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001850128173828, + "end": 9.000089168548584, + "seconds": 0.99990415573120117, + "bytes": 1954800, + "bits_per_second": 15639898.994683232, + "retransmits": 68, + "snd_cwnd": 10136, + "rtt": 1366, + "rttvar": 383, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001850128173828, + "end": 9.000089168548584, + "seconds": 0.99990415573120117, + "bytes": 1954800, + "bits_per_second": 15639898.994683232, "retransmits": 68, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.000197172164917, - "end": 6.0002791881561279, - "seconds": 1.0000820159912109, - "bytes": 1759320, - "bits_per_second": 14073405.755677234, - "retransmits": 69, - "snd_cwnd": 23168, - "rtt": 12364, - "rttvar": 5796, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 5.000197172164917, - "end": 6.0002791881561279, - "seconds": 1.0000820159912109, - "bytes": 1759320, - "bits_per_second": 14073405.755677234, - "retransmits": 69, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 6.0002791881561279, - "end": 7.0002729892730713, - "seconds": 0.99999380111694336, + "start": 9.000089168548584, + "end": 10.000188112258911, + "seconds": 1.0000989437103271, "bytes": 1824480, - "bits_per_second": 14595930.478466138, - "retransmits": 91, - "snd_cwnd": 15928, - "rtt": 14750, - "rttvar": 2764, + "bits_per_second": 14594395.97631212, + "retransmits": 82, + "snd_cwnd": 26064, + "rtt": 5766, + "rttvar": 3939, "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0002791881561279, - "end": 7.0002729892730713, - "seconds": 0.99999380111694336, + "start": 9.000089168548584, + "end": 10.000188112258911, + "seconds": 1.0000989437103271, "bytes": 1824480, - "bits_per_second": 14595930.478466138, - "retransmits": 91, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 7.0002729892730713, - "end": 8.0001480579376221, - "seconds": 0.99987506866455078, - "bytes": 1824480, - "bits_per_second": 14597663.705621181, - "retransmits": 101, - "snd_cwnd": 18824, - "rtt": 18829, - "rttvar": 4792, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 7.0002729892730713, - "end": 8.0001480579376221, - "seconds": 0.99987506866455078, - "bytes": 1824480, - "bits_per_second": 14597663.705621181, - "retransmits": 101, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 8.0001480579376221, - "end": 9.0010650157928467, - "seconds": 1.0009169578552246, - "bytes": 130320, - "bits_per_second": 1041604.8922120457, - "retransmits": 19, - "snd_cwnd": 1448, - "rtt": 9224, - "rttvar": 4603, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 8.0001480579376221, - "end": 9.0010650157928467, - "seconds": 1.0009169578552246, - "bytes": 130320, - "bits_per_second": 1041604.8922120457, - "retransmits": 19, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 9.0010650157928467, - "end": 10.00115704536438, - "seconds": 1.0000920295715332, - "bytes": 0, - "bits_per_second": 0, - "retransmits": 1, - "snd_cwnd": 1448, - "rtt": 9224, - "rttvar": 4603, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 9.0010650157928467, - "end": 10.00115704536438, - "seconds": 1.0000920295715332, - "bytes": 0, - "bits_per_second": 0, - "retransmits": 1, + "bits_per_second": 14594395.97631212, + "retransmits": 82, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.00115704536438, - "seconds": 10.00115704536438, - "bytes": 16618696, - "bits_per_second": 13293418.691152664, - "retransmits": 648, - "max_snd_cwnd": 23168, - "max_rtt": 18829, - "min_rtt": 1034, - "mean_rtt": 9947 + "end": 10.000188112258911, + "seconds": 10.000188112258911, + "bytes": 20720880, + "bits_per_second": 16576392.177742286, + "retransmits": 620, + "max_snd_cwnd": 26064, + "max_rtt": 17756, + "min_rtt": 899, + "mean_rtt": 8543 }, "receiver": { "socket": 5, "start": 0, - "end": 10.041388988494873, - "seconds": 10.00115704536438, - "bytes": 16331992, - "bits_per_second": 13011739.327069364 + "end": 10.04838490486145, + "seconds": 10.000188112258911, + "bytes": 20397976, + "bits_per_second": 16239804.659657395 } }], "sum_sent": { "start": 0, - "end": 10.00115704536438, - "seconds": 10.00115704536438, - "bytes": 16618696, - "bits_per_second": 13293418.691152664, - "retransmits": 648 + "end": 10.000188112258911, + "seconds": 10.000188112258911, + "bytes": 20720880, + "bits_per_second": 16576392.177742286, + "retransmits": 620 }, "sum_received": { "start": 0, - "end": 10.041388988494873, - "seconds": 10.041388988494873, - "bytes": 16331992, - "bits_per_second": 13011739.327069364 + "end": 10.04838490486145, + "seconds": 10.04838490486145, + "bytes": 20397976, + "bits_per_second": 16239804.659657395 }, "cpu_utilization_percent": { - "host_total": 0.5139746713789437, - "host_user": 0.16227857676970081, - "host_system": 0.35170600656726692, - "remote_total": 0.21499704551171619, - "remote_user": 0.013811101219117768, - "remote_system": 0.20119018082671472 + "host_total": 0.54153068431029994, + "host_user": 0.23530461286845333, + "host_system": 0.30631528082369996, + "remote_total": 1.3640644689674368, + "remote_user": 0.12500111958782634, + "remote_system": 1.2391598061769555 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/1p1/2.json b/results/manual/inbound/1p1/2.json index 2e49fce..52bc403 100644 --- a/results/manual/inbound/1p1/2.json +++ b/results/manual/inbound/1p1/2.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42758, + "local_port": 54416, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:32:43 GMT", - "timesecs": 1616344363 + "time": "Fri, 14 May 2021 03:49:13 GMT", + "timesecs": 1620964153 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "rtqmgygqdwkuuhzewqrd62b2nd6nniwivgjj", + "cookie": "53waciysgty7ispi5d2ersaynp52cgxgdgay", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0002331733703613, - "seconds": 1.0002331733703613, - "bytes": 3789416, - "bits_per_second": 30308260.920651343, - "retransmits": 136, - "snd_cwnd": 4344, - "rtt": 2587, - "rttvar": 2837, + "end": 1.0000860691070557, + "seconds": 1.0000860691070557, + "bytes": 3902360, + "bits_per_second": 31216193.250121284, + "retransmits": 107, + "snd_cwnd": 17376, + "rtt": 2376, + "rttvar": 1934, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0002331733703613, - "seconds": 1.0002331733703613, - "bytes": 3789416, - "bits_per_second": 30308260.920651343, - "retransmits": 136, + "end": 1.0000860691070557, + "seconds": 1.0000860691070557, + "bytes": 3902360, + "bits_per_second": 31216193.250121284, + "retransmits": 107, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0002331733703613, - "end": 2.0002851486206055, - "seconds": 1.0000519752502441, - "bytes": 1694160, - "bits_per_second": 13552575.60149166, - "retransmits": 122, - "snd_cwnd": 30408, - "rtt": 12064, - "rttvar": 18171, + "start": 1.0000860691070557, + "end": 2.00010085105896, + "seconds": 1.0000147819519043, + "bytes": 2752648, + "bits_per_second": 22020858.488728929, + "retransmits": 52, + "snd_cwnd": 11584, + "rtt": 7010, + "rttvar": 6060, "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0002331733703613, - "end": 2.0002851486206055, - "seconds": 1.0000519752502441, - "bytes": 1694160, - "bits_per_second": 13552575.60149166, - "retransmits": 122, + "start": 1.0000860691070557, + "end": 2.00010085105896, + "seconds": 1.0000147819519043, + "bytes": 2752648, + "bits_per_second": 22020858.488728929, + "retransmits": 52, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0002851486206055, - "end": 3.0001840591430664, - "seconds": 0.99989891052246094, - "bytes": 1824480, - "bits_per_second": 14597315.635011015, - "retransmits": 109, - "snd_cwnd": 17376, - "rtt": 16214, - "rttvar": 3096, + "start": 2.00010085105896, + "end": 3.0002329349517822, + "seconds": 1.0001320838928223, + "bytes": 1563840, + "bits_per_second": 12509067.753635522, + "retransmits": 31, + "snd_cwnd": 8688, + "rtt": 22340, + "rttvar": 4574, "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0002851486206055, - "end": 3.0001840591430664, - "seconds": 0.99989891052246094, - "bytes": 1824480, - "bits_per_second": 14597315.635011015, - "retransmits": 109, + "start": 2.00010085105896, + "end": 3.0002329349517822, + "seconds": 1.0001320838928223, + "bytes": 1563840, + "bits_per_second": 12509067.753635522, + "retransmits": 31, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0001840591430664, - "end": 4.0001101493835449, - "seconds": 0.99992609024047852, - "bytes": 1954800, - "bits_per_second": 15639555.915816762, - "retransmits": 41, - "snd_cwnd": 26064, - "rtt": 3460, - "rttvar": 2385, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 3.0001840591430664, - "end": 4.0001101493835449, - "seconds": 0.99992609024047852, - "bytes": 1954800, - "bits_per_second": 15639555.915816762, - "retransmits": 41, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 4.0001101493835449, - "end": 5.0001580715179443, - "seconds": 1.0000479221343994, - "bytes": 1824480, - "bits_per_second": 14595140.569712039, - "retransmits": 64, - "snd_cwnd": 18824, - "rtt": 9530, - "rttvar": 7623, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 4.0001101493835449, - "end": 5.0001580715179443, - "seconds": 1.0000479221343994, - "bytes": 1824480, - "bits_per_second": 14595140.569712039, - "retransmits": 64, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 5.0001580715179443, - "end": 6.0001721382141113, + "start": 3.0002329349517822, + "end": 4.0002470016479492, "seconds": 1.000014066696167, - "bytes": 1889640, - "bits_per_second": 15116907.355057253, - "retransmits": 46, - "snd_cwnd": 17376, - "rtt": 6517, - "rttvar": 5743, + "bytes": 1694160, + "bits_per_second": 13553089.352809951, + "retransmits": 86, + "snd_cwnd": 2896, + "rtt": 9623, + "rttvar": 6592, "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001580715179443, - "end": 6.0001721382141113, + "start": 3.0002329349517822, + "end": 4.0002470016479492, "seconds": 1.000014066696167, - "bytes": 1889640, - "bits_per_second": 15116907.355057253, - "retransmits": 46, + "bytes": 1694160, + "bits_per_second": 13553089.352809951, + "retransmits": 86, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001721382141113, - "end": 7.0001339912414551, - "seconds": 0.99996185302734375, - "bytes": 1824480, - "bits_per_second": 14596396.808349928, - "retransmits": 71, - "snd_cwnd": 15928, - "rtt": 8897, - "rttvar": 8739, + "start": 4.0002470016479492, + "end": 5.0001399517059326, + "seconds": 0.9998929500579834, + "bytes": 2019960, + "bits_per_second": 16161410.078011757, + "retransmits": 65, + "snd_cwnd": 33304, + "rtt": 2533, + "rttvar": 476, "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001721382141113, - "end": 7.0001339912414551, - "seconds": 0.99996185302734375, - "bytes": 1824480, - "bits_per_second": 14596396.808349928, - "retransmits": 71, + "start": 4.0002470016479492, + "end": 5.0001399517059326, + "seconds": 0.9998929500579834, + "bytes": 2019960, + "bits_per_second": 16161410.078011757, + "retransmits": 65, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0001339912414551, - "end": 8.0002009868621826, - "seconds": 1.0000669956207275, - "bytes": 1759320, - "bits_per_second": 14073617.129284542, - "retransmits": 66, - "snd_cwnd": 18824, - "rtt": 11703, - "rttvar": 3491, + "start": 5.0001399517059326, + "end": 6.0002319812774658, + "seconds": 1.0000920295715332, + "bytes": 1694160, + "bits_per_second": 13552032.812226886, + "retransmits": 79, + "snd_cwnd": 26064, + "rtt": 26847, + "rttvar": 6229, "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0001339912414551, - "end": 8.0002009868621826, - "seconds": 1.0000669956207275, - "bytes": 1759320, - "bits_per_second": 14073617.129284542, - "retransmits": 66, + "start": 5.0001399517059326, + "end": 6.0002319812774658, + "seconds": 1.0000920295715332, + "bytes": 1694160, + "bits_per_second": 13552032.812226886, + "retransmits": 79, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0002009868621826, - "end": 9.0001411437988281, - "seconds": 0.99994015693664551, - "bytes": 1889640, - "bits_per_second": 15118024.70891045, - "retransmits": 44, - "snd_cwnd": 24616, - "rtt": 2262, - "rttvar": 1648, + "start": 6.0002319812774658, + "end": 7.000154972076416, + "seconds": 0.9999229907989502, + "bytes": 2019960, + "bits_per_second": 16160924.539887043, + "retransmits": 72, + "snd_cwnd": 26064, + "rtt": 21857, + "rttvar": 8453, "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0002009868621826, - "end": 9.0001411437988281, - "seconds": 0.99994015693664551, - "bytes": 1889640, - "bits_per_second": 15118024.70891045, - "retransmits": 44, + "start": 6.0002319812774658, + "end": 7.000154972076416, + "seconds": 0.9999229907989502, + "bytes": 2019960, + "bits_per_second": 16160924.539887043, + "retransmits": 72, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0001411437988281, - "end": 10.000097990036011, - "seconds": 0.99995684623718262, - "bytes": 1954800, - "bits_per_second": 15639074.884928267, - "retransmits": 30, - "snd_cwnd": 20272, - "rtt": 1250, - "rttvar": 289, + "start": 7.000154972076416, + "end": 8.0001399517059326, + "seconds": 0.9999849796295166, + "bytes": 2085120, + "bits_per_second": 16681210.557962691, + "retransmits": 67, + "snd_cwnd": 10136, + "rtt": 7206, + "rttvar": 3896, "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0001411437988281, - "end": 10.000097990036011, - "seconds": 0.99995684623718262, - "bytes": 1954800, - "bits_per_second": 15639074.884928267, - "retransmits": 30, + "start": 7.000154972076416, + "end": 8.0001399517059326, + "seconds": 0.9999849796295166, + "bytes": 2085120, + "bits_per_second": 16681210.557962691, + "retransmits": 67, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001399517059326, + "end": 9.0001769065856934, + "seconds": 1.0000369548797607, + "bytes": 1694160, + "bits_per_second": 13552779.158675767, + "retransmits": 49, + "snd_cwnd": 26064, + "rtt": 21544, + "rttvar": 11973, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001399517059326, + "end": 9.0001769065856934, + "seconds": 1.0000369548797607, + "bytes": 1694160, + "bits_per_second": 13552779.158675767, + "retransmits": 49, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001769065856934, + "end": 10.000283002853394, + "seconds": 1.0001060962677002, + "bytes": 1694160, + "bits_per_second": 13551842.200122105, + "retransmits": 41, + "snd_cwnd": 13032, + "rtt": 6280, + "rttvar": 5428, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001769065856934, + "end": 10.000283002853394, + "seconds": 1.0001060962677002, + "bytes": 1694160, + "bits_per_second": 13551842.200122105, + "retransmits": 41, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.000097990036011, - "seconds": 10.000097990036011, - "bytes": 20405216, - "bits_per_second": 16324012.840939388, - "retransmits": 729, - "max_snd_cwnd": 30408, - "max_rtt": 16214, - "min_rtt": 1250, - "mean_rtt": 7448 + "end": 10.000283002853394, + "seconds": 10.000283002853394, + "bytes": 21120528, + "bits_per_second": 16895944.23995693, + "retransmits": 649, + "max_snd_cwnd": 33304, + "max_rtt": 26847, + "min_rtt": 2376, + "mean_rtt": 12761 }, "receiver": { "socket": 5, "start": 0, - "end": 10.040147066116333, - "seconds": 10.000097990036011, - "bytes": 20115616, - "bits_per_second": 16028144.502294425 + "end": 10.134542942047119, + "seconds": 10.000283002853394, + "bytes": 20161952, + "bits_per_second": 15915430.712795343 } }], "sum_sent": { "start": 0, - "end": 10.000097990036011, - "seconds": 10.000097990036011, - "bytes": 20405216, - "bits_per_second": 16324012.840939388, - "retransmits": 729 + "end": 10.000283002853394, + "seconds": 10.000283002853394, + "bytes": 21120528, + "bits_per_second": 16895944.23995693, + "retransmits": 649 }, "sum_received": { "start": 0, - "end": 10.040147066116333, - "seconds": 10.040147066116333, - "bytes": 20115616, - "bits_per_second": 16028144.502294425 + "end": 10.134542942047119, + "seconds": 10.134542942047119, + "bytes": 20161952, + "bits_per_second": 15915430.712795343 }, "cpu_utilization_percent": { - "host_total": 0.5319060349565442, - "host_user": 0.10890710638200006, - "host_system": 0.423008841837459, - "remote_total": 1.2983551586752218, - "remote_user": 0.12822899542047878, - "remote_system": 1.1700886452620516 + "host_total": 0.50464547599712684, + "host_user": 0.18381290710544676, + "host_system": 0.32099115646319187, + "remote_total": 1.5984600818193184, + "remote_user": 0.22901370205620167, + "remote_system": 1.3694999732032798 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/1p1/3.json b/results/manual/inbound/1p1/3.json new file mode 100644 index 0000000..7fb43b7 --- /dev/null +++ b/results/manual/inbound/1p1/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54424, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 03:49:37 GMT", + "timesecs": 1620964177 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "lbt6jfqq5qmpc5karop6sfaduangukfg23ti", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001399517059326, + "seconds": 1.0001399517059326, + "bytes": 3879192, + "bits_per_second": 31029193.411448356, + "retransmits": 136, + "snd_cwnd": 15928, + "rtt": 8839, + "rttvar": 6562, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001399517059326, + "seconds": 1.0001399517059326, + "bytes": 3879192, + "bits_per_second": 31029193.411448356, + "retransmits": 136, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001399517059326, + "end": 2.0001420974731445, + "seconds": 1.0000021457672119, + "bytes": 1824480, + "bits_per_second": 14595808.680792302, + "retransmits": 69, + "snd_cwnd": 13032, + "rtt": 3457, + "rttvar": 4451, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001399517059326, + "end": 2.0001420974731445, + "seconds": 1.0000021457672119, + "bytes": 1824480, + "bits_per_second": 14595808.680792302, + "retransmits": 69, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001420974731445, + "end": 3.00014591217041, + "seconds": 1.0000038146972656, + "bytes": 1824480, + "bits_per_second": 14595784.32150146, + "retransmits": 90, + "snd_cwnd": 13032, + "rtt": 1266, + "rttvar": 218, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001420974731445, + "end": 3.00014591217041, + "seconds": 1.0000038146972656, + "bytes": 1824480, + "bits_per_second": 14595784.32150146, + "retransmits": 90, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.00014591217041, + "end": 4.0003170967102051, + "seconds": 1.0001711845397949, + "bytes": 1563840, + "bits_per_second": 12508578.724707521, + "retransmits": 83, + "snd_cwnd": 18824, + "rtt": 15570, + "rttvar": 5037, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.00014591217041, + "end": 4.0003170967102051, + "seconds": 1.0001711845397949, + "bytes": 1563840, + "bits_per_second": 12508578.724707521, + "retransmits": 83, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0003170967102051, + "end": 5.000230073928833, + "seconds": 0.99991297721862793, + "bytes": 1824480, + "bits_per_second": 14597110.28113666, + "retransmits": 53, + "snd_cwnd": 8688, + "rtt": 72027, + "rttvar": 76828, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0003170967102051, + "end": 5.000230073928833, + "seconds": 0.99991297721862793, + "bytes": 1824480, + "bits_per_second": 14597110.28113666, + "retransmits": 53, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000230073928833, + "end": 6.0001170635223389, + "seconds": 0.99988698959350586, + "bytes": 2085120, + "bits_per_second": 16682845.335132802, + "retransmits": 49, + "snd_cwnd": 17376, + "rtt": 1127, + "rttvar": 286, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000230073928833, + "end": 6.0001170635223389, + "seconds": 0.99988698959350586, + "bytes": 2085120, + "bits_per_second": 16682845.335132802, + "retransmits": 49, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001170635223389, + "end": 7.0001130104064941, + "seconds": 0.99999594688415527, + "bytes": 1759320, + "bits_per_second": 14074617.046053357, + "retransmits": 48, + "snd_cwnd": 13032, + "rtt": 1225, + "rttvar": 175, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001170635223389, + "end": 7.0001130104064941, + "seconds": 0.99999594688415527, + "bytes": 1759320, + "bits_per_second": 14074617.046053357, + "retransmits": 48, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001130104064941, + "end": 8.0001840591430664, + "seconds": 1.0000710487365723, + "bytes": 1954800, + "bits_per_second": 15637288.990373818, + "retransmits": 51, + "snd_cwnd": 17376, + "rtt": 15442, + "rttvar": 4797, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001130104064941, + "end": 8.0001840591430664, + "seconds": 1.0000710487365723, + "bytes": 1954800, + "bits_per_second": 15637288.990373818, + "retransmits": 51, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001840591430664, + "end": 9.0002510547637939, + "seconds": 1.0000669956207275, + "bytes": 1694160, + "bits_per_second": 13552372.050422151, + "retransmits": 41, + "snd_cwnd": 17376, + "rtt": 8801, + "rttvar": 7702, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001840591430664, + "end": 9.0002510547637939, + "seconds": 1.0000669956207275, + "bytes": 1694160, + "bits_per_second": 13552372.050422151, + "retransmits": 41, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002510547637939, + "end": 10.000116109848022, + "seconds": 0.99986505508422852, + "bytes": 2150280, + "bits_per_second": 17204561.66812519, + "retransmits": 81, + "snd_cwnd": 20272, + "rtt": 7234, + "rttvar": 6718, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002510547637939, + "end": 10.000116109848022, + "seconds": 0.99986505508422852, + "bytes": 2150280, + "bits_per_second": 17204561.66812519, + "retransmits": 81, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000116109848022, + "seconds": 10.000116109848022, + "bytes": 20560152, + "bits_per_second": 16447930.623327505, + "retransmits": 701, + "max_snd_cwnd": 20272, + "max_rtt": 72027, + "min_rtt": 1127, + "mean_rtt": 13498 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.254568815231323, + "seconds": 10.000116109848022, + "bytes": 20393632, + "bits_per_second": 15909889.429740949 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000116109848022, + "seconds": 10.000116109848022, + "bytes": 20560152, + "bits_per_second": 16447930.623327505, + "retransmits": 701 + }, + "sum_received": { + "start": 0, + "end": 10.254568815231323, + "seconds": 10.254568815231323, + "bytes": 20393632, + "bits_per_second": 15909889.429740949 + }, + "cpu_utilization_percent": { + "host_total": 0.522013647174602, + "host_user": 0.15824362659024238, + "host_system": 0.36382949576348389, + "remote_total": 1.4396955647700331, + "remote_user": 0.17980339244441929, + "remote_system": 1.2599415914898222 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/inbound/1p1/4.json b/results/manual/inbound/1p1/4.json new file mode 100644 index 0000000..a7d1b0e --- /dev/null +++ b/results/manual/inbound/1p1/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54432, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 03:50:02 GMT", + "timesecs": 1620964202 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "u42hv4faayyjweasjbiv5xkivhuphbyfn7jo", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001921653747559, + "seconds": 1.0001921653747559, + "bytes": 3853128, + "bits_per_second": 30819101.635784522, + "retransmits": 201, + "snd_cwnd": 15928, + "rtt": 15003, + "rttvar": 1865, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001921653747559, + "seconds": 1.0001921653747559, + "bytes": 3853128, + "bits_per_second": 30819101.635784522, + "retransmits": 201, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001921653747559, + "end": 2.000258207321167, + "seconds": 1.0000660419464111, + "bytes": 1563840, + "bits_per_second": 12509893.822262581, + "retransmits": 72, + "snd_cwnd": 5792, + "rtt": 997, + "rttvar": 196, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001921653747559, + "end": 2.000258207321167, + "seconds": 1.0000660419464111, + "bytes": 1563840, + "bits_per_second": 12509893.822262581, + "retransmits": 72, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.000258207321167, + "end": 3.0001790523529053, + "seconds": 0.99992084503173828, + "bytes": 2218336, + "bits_per_second": 17748092.849726226, + "retransmits": 69, + "snd_cwnd": 8688, + "rtt": 3020, + "rttvar": 3290, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.000258207321167, + "end": 3.0001790523529053, + "seconds": 0.99992084503173828, + "bytes": 2218336, + "bits_per_second": 17748092.849726226, + "retransmits": 69, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001790523529053, + "end": 4.0001730918884277, + "seconds": 0.99999403953552246, + "bytes": 1759320, + "bits_per_second": 14074643.89141495, + "retransmits": 78, + "snd_cwnd": 5792, + "rtt": 1528, + "rttvar": 1580, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001790523529053, + "end": 4.0001730918884277, + "seconds": 0.99999403953552246, + "bytes": 1759320, + "bits_per_second": 14074643.89141495, + "retransmits": 78, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001730918884277, + "end": 5.000216007232666, + "seconds": 1.0000429153442383, + "bytes": 1563840, + "bits_per_second": 12510183.121184871, + "retransmits": 96, + "snd_cwnd": 24616, + "rtt": 22770, + "rttvar": 9154, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001730918884277, + "end": 5.000216007232666, + "seconds": 1.0000429153442383, + "bytes": 1563840, + "bits_per_second": 12510183.121184871, + "retransmits": 96, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000216007232666, + "end": 6.0002450942993164, + "seconds": 1.0000290870666504, + "bytes": 1954800, + "bits_per_second": 15637945.138047494, + "retransmits": 60, + "snd_cwnd": 27512, + "rtt": 28384, + "rttvar": 5757, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000216007232666, + "end": 6.0002450942993164, + "seconds": 1.0000290870666504, + "bytes": 1954800, + "bits_per_second": 15637945.138047494, + "retransmits": 60, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0002450942993164, + "end": 7.0001780986785889, + "seconds": 0.99993300437927246, + "bytes": 1759320, + "bits_per_second": 14075502.99706034, + "retransmits": 105, + "snd_cwnd": 18824, + "rtt": 17334, + "rttvar": 2165, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0002450942993164, + "end": 7.0001780986785889, + "seconds": 0.99993300437927246, + "bytes": 1759320, + "bits_per_second": 14075502.99706034, + "retransmits": 105, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001780986785889, + "end": 8.0002090930938721, + "seconds": 1.0000309944152832, + "bytes": 1954800, + "bits_per_second": 15637915.311958658, + "retransmits": 53, + "snd_cwnd": 21720, + "rtt": 18168, + "rttvar": 4662, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001780986785889, + "end": 8.0002090930938721, + "seconds": 1.0000309944152832, + "bytes": 1954800, + "bits_per_second": 15637915.311958658, + "retransmits": 53, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0002090930938721, + "end": 9.0002050399780273, + "seconds": 0.99999594688415527, + "bytes": 1759320, + "bits_per_second": 14074617.046053357, + "retransmits": 46, + "snd_cwnd": 26064, + "rtt": 21621, + "rttvar": 7303, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0002090930938721, + "end": 9.0002050399780273, + "seconds": 0.99999594688415527, + "bytes": 1759320, + "bits_per_second": 14074617.046053357, + "retransmits": 46, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002050399780273, + "end": 10.000172138214111, + "seconds": 0.999967098236084, + "bytes": 1954800, + "bits_per_second": 15638914.547874358, + "retransmits": 119, + "snd_cwnd": 17376, + "rtt": 5939, + "rttvar": 5163, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002050399780273, + "end": 10.000172138214111, + "seconds": 0.999967098236084, + "bytes": 1954800, + "bits_per_second": 15638914.547874358, + "retransmits": 119, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000172138214111, + "seconds": 10.000172138214111, + "bytes": 20341504, + "bits_per_second": 16272923.08080825, + "retransmits": 899, + "max_snd_cwnd": 27512, + "max_rtt": 28384, + "min_rtt": 997, + "mean_rtt": 13476 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.041895866394043, + "seconds": 10.000172138214111, + "bytes": 19975160, + "bits_per_second": 15913457.192360155 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000172138214111, + "seconds": 10.000172138214111, + "bytes": 20341504, + "bits_per_second": 16272923.08080825, + "retransmits": 899 + }, + "sum_received": { + "start": 0, + "end": 10.041895866394043, + "seconds": 10.041895866394043, + "bytes": 19975160, + "bits_per_second": 15913457.192360155 + }, + "cpu_utilization_percent": { + "host_total": 0.50462566920995278, + "host_user": 0.23604450088187059, + "host_system": 0.26862082301113671, + "remote_total": 1.441297657607683, + "remote_user": 0.1422278461184939, + "remote_system": 1.2991048537672596 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/inbound/1p2/0.json b/results/manual/inbound/1p2/0.json index 8983924..f3369b8 100644 --- a/results/manual/inbound/1p2/0.json +++ b/results/manual/inbound/1p2/0.json @@ -2,22 +2,22 @@ "start": { "connected": [{ "socket": 5, - "local_host": "1.1.1.2", - "local_port": 42766, - "remote_host": "1.1.1.1", + "local_host": "1.1.1.1", + "local_port": 49988, + "remote_host": "1.1.1.2", "remote_port": 5201 }], "version": "iperf 3.6", - "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:33:47 GMT", - "timesecs": 1616344427 + "time": "Fri, 14 May 2021 03:57:47 GMT", + "timesecs": 1620964667 }, "connecting_to": { - "host": "1.1.1.1", + "host": "1.1.1.2", "port": 5201 }, - "cookie": "mijv2iahuzgyfes45weeten5gri2mhorsqtn", + "cookie": "3lke7gdzbrv4u4w73fnuk7ocme35suigncu4", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001349449157715, - "seconds": 1.0001349449157715, - "bytes": 4711792, - "bits_per_second": 37689250.027329572, - "retransmits": 68, - "snd_cwnd": 23168, - "rtt": 22044, - "rttvar": 7282, + "end": 1.0000860691070557, + "seconds": 1.0000860691070557, + "bytes": 2910480, + "bits_per_second": 23281836.153151684, + "retransmits": 85, + "snd_cwnd": 59368, + "rtt": 20566, + "rttvar": 1528, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001349449157715, - "seconds": 1.0001349449157715, - "bytes": 4711792, - "bits_per_second": 37689250.027329572, - "retransmits": 68, + "end": 1.0000860691070557, + "seconds": 1.0000860691070557, + "bytes": 2910480, + "bits_per_second": 23281836.153151684, + "retransmits": 85, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001349449157715, - "end": 2.0001471042633057, - "seconds": 1.0000121593475342, + "start": 1.0000860691070557, + "end": 2.0000879764556885, + "seconds": 1.0000019073486328, "bytes": 2867040, - "bits_per_second": 22936041.112705052, - "retransmits": 70, - "snd_cwnd": 31856, - "rtt": 12713, - "rttvar": 4459, + "bits_per_second": 22936276.252524849, + "retransmits": 8, + "snd_cwnd": 83984, + "rtt": 29333, + "rttvar": 1397, "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001349449157715, - "end": 2.0001471042633057, - "seconds": 1.0000121593475342, + "start": 1.0000860691070557, + "end": 2.0000879764556885, + "seconds": 1.0000019073486328, "bytes": 2867040, - "bits_per_second": 22936041.112705052, - "retransmits": 70, + "bits_per_second": 22936276.252524849, + "retransmits": 8, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0001471042633057, - "end": 3.0003139972686768, - "seconds": 1.0001668930053711, - "bytes": 2476080, - "bits_per_second": 19805334.628181521, - "retransmits": 58, - "snd_cwnd": 15928, - "rtt": 1088, - "rttvar": 121, + "start": 2.0000879764556885, + "end": 3.000093936920166, + "seconds": 1.0000059604644775, + "bytes": 2997360, + "bits_per_second": 23978737.075589444, + "retransmits": 5, + "snd_cwnd": 99912, + "rtt": 36629, + "rttvar": 800, "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0001471042633057, - "end": 3.0003139972686768, - "seconds": 1.0001668930053711, - "bytes": 2476080, - "bits_per_second": 19805334.628181521, - "retransmits": 58, + "start": 2.0000879764556885, + "end": 3.000093936920166, + "seconds": 1.0000059604644775, + "bytes": 2997360, + "bits_per_second": 23978737.075589444, + "retransmits": 5, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0003139972686768, - "end": 4.0001420974731445, - "seconds": 0.99982810020446777, - "bytes": 3323160, - "bits_per_second": 26589850.789914019, - "retransmits": 78, - "snd_cwnd": 10136, - "rtt": 2788, - "rttvar": 2845, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 3.0003139972686768, - "end": 4.0001420974731445, - "seconds": 0.99982810020446777, - "bytes": 3323160, - "bits_per_second": 26589850.789914019, - "retransmits": 78, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 4.0001420974731445, - "end": 5.0000970363616943, - "seconds": 0.9999549388885498, - "bytes": 2345760, - "bits_per_second": 18766925.658528678, - "retransmits": 57, - "snd_cwnd": 7240, - "rtt": 910, - "rttvar": 158, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 4.0001420974731445, - "end": 5.0000970363616943, - "seconds": 0.9999549388885498, - "bytes": 2345760, - "bits_per_second": 18766925.658528678, - "retransmits": 57, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 5.0000970363616943, - "end": 6.0000960826873779, - "seconds": 0.99999904632568359, - "bytes": 2410920, - "bits_per_second": 19287378.393877406, - "retransmits": 105, - "snd_cwnd": 23168, - "rtt": 1225, - "rttvar": 169, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 5.0000970363616943, - "end": 6.0000960826873779, - "seconds": 0.99999904632568359, - "bytes": 2410920, - "bits_per_second": 19287378.393877406, - "retransmits": 105, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 6.0000960826873779, - "end": 7.0001261234283447, - "seconds": 1.0000300407409668, - "bytes": 3518640, - "bits_per_second": 28148274.404979937, - "retransmits": 83, - "snd_cwnd": 41992, - "rtt": 2531, - "rttvar": 393, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 6.0000960826873779, - "end": 7.0001261234283447, - "seconds": 1.0000300407409668, - "bytes": 3518640, - "bits_per_second": 28148274.404979937, - "retransmits": 83, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 7.0001261234283447, - "end": 8.0001270771026611, - "seconds": 1.0000009536743164, - "bytes": 2801880, - "bits_per_second": 22415018.623372436, - "retransmits": 68, - "snd_cwnd": 23168, - "rtt": 10216, - "rttvar": 4843, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 7.0001261234283447, - "end": 8.0001270771026611, - "seconds": 1.0000009536743164, - "bytes": 2801880, - "bits_per_second": 22415018.623372436, - "retransmits": 68, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 8.0001270771026611, - "end": 9.000136137008667, - "seconds": 1.0000090599060059, + "start": 3.000093936920166, + "end": 4.0001769065856934, + "seconds": 1.0000829696655273, "bytes": 2606400, - "bits_per_second": 20851011.091799382, - "retransmits": 56, - "snd_cwnd": 15928, - "rtt": 6746, - "rttvar": 8395, + "bits_per_second": 20849470.126437187, + "retransmits": 3, + "snd_cwnd": 115840, + "rtt": 40365, + "rttvar": 1446, "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0001270771026611, - "end": 9.000136137008667, - "seconds": 1.0000090599060059, + "start": 3.000093936920166, + "end": 4.0001769065856934, + "seconds": 1.0000829696655273, "bytes": 2606400, - "bits_per_second": 20851011.091799382, - "retransmits": 56, + "bits_per_second": 20849470.126437187, + "retransmits": 3, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.000136137008667, - "end": 10.000205993652344, - "seconds": 1.0000698566436768, - "bytes": 2801880, - "bits_per_second": 22413474.26991437, - "retransmits": 36, - "snd_cwnd": 31856, - "rtt": 21043, - "rttvar": 10725, + "start": 4.0001769065856934, + "end": 5.0000979900360107, + "seconds": 0.99992108345031738, + "bytes": 2867040, + "bits_per_second": 22938130.198091403, + "retransmits": 6, + "snd_cwnd": 125976, + "rtt": 45152, + "rttvar": 1296, "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.000136137008667, - "end": 10.000205993652344, - "seconds": 1.0000698566436768, - "bytes": 2801880, - "bits_per_second": 22413474.26991437, - "retransmits": 36, + "start": 4.0001769065856934, + "end": 5.0000979900360107, + "seconds": 0.99992108345031738, + "bytes": 2867040, + "bits_per_second": 22938130.198091403, + "retransmits": 6, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0000979900360107, + "end": 6.0001039505004883, + "seconds": 1.0000059604644775, + "bytes": 2932200, + "bits_per_second": 23457460.182641849, + "retransmits": 2, + "snd_cwnd": 140456, + "rtt": 49096, + "rttvar": 978, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0000979900360107, + "end": 6.0001039505004883, + "seconds": 1.0000059604644775, + "bytes": 2932200, + "bits_per_second": 23457460.182641849, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001039505004883, + "end": 7.0001749992370605, + "seconds": 1.0000710487365723, + "bytes": 2932200, + "bits_per_second": 23455933.485560726, + "retransmits": 2, + "snd_cwnd": 152040, + "rtt": 56762, + "rttvar": 910, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001039505004883, + "end": 7.0001749992370605, + "seconds": 1.0000710487365723, + "bytes": 2932200, + "bits_per_second": 23455933.485560726, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001749992370605, + "end": 8.000126838684082, + "seconds": 0.99995183944702148, + "bytes": 2606400, + "bits_per_second": 20852204.25368768, + "retransmits": 2, + "snd_cwnd": 163624, + "rtt": 58833, + "rttvar": 1241, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001749992370605, + "end": 8.000126838684082, + "seconds": 0.99995183944702148, + "bytes": 2606400, + "bits_per_second": 20852204.25368768, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.000126838684082, + "end": 9.0002028942108154, + "seconds": 1.0000760555267334, + "bytes": 2736720, + "bits_per_second": 21892094.985184602, + "retransmits": 1, + "snd_cwnd": 175208, + "rtt": 62189, + "rttvar": 1479, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.000126838684082, + "end": 9.0002028942108154, + "seconds": 1.0000760555267334, + "bytes": 2736720, + "bits_per_second": 21892094.985184602, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002028942108154, + "end": 10.00017786026001, + "seconds": 0.99997496604919434, + "bytes": 3127680, + "bits_per_second": 25022066.401179343, + "retransmits": 0, + "snd_cwnd": 186792, + "rtt": 68717, + "rttvar": 1727, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002028942108154, + "end": 10.00017786026001, + "seconds": 0.99997496604919434, + "bytes": 3127680, + "bits_per_second": 25022066.401179343, + "retransmits": 0, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.000205993652344, - "seconds": 10.000205993652344, - "bytes": 29863552, - "bits_per_second": 23890349.473965608, - "retransmits": 679, - "max_snd_cwnd": 41992, - "max_rtt": 22044, - "min_rtt": 910, - "mean_rtt": 8130 + "end": 10.00017786026001, + "seconds": 10.00017786026001, + "bytes": 28583520, + "bits_per_second": 22866409.297449686, + "retransmits": 114, + "max_snd_cwnd": 186792, + "max_rtt": 68717, + "min_rtt": 20566, + "mean_rtt": 46764 }, "receiver": { "socket": 5, "start": 0, - "end": 10.049556970596313, - "seconds": 10.000205993652344, - "bytes": 29576848, - "bits_per_second": 23544797.516179454 + "end": 10.105030059814453, + "seconds": 10.00017786026001, + "bytes": 27798704, + "bits_per_second": 22007814.987547249 } }], "sum_sent": { "start": 0, - "end": 10.000205993652344, - "seconds": 10.000205993652344, - "bytes": 29863552, - "bits_per_second": 23890349.473965608, - "retransmits": 679 + "end": 10.00017786026001, + "seconds": 10.00017786026001, + "bytes": 28583520, + "bits_per_second": 22866409.297449686, + "retransmits": 114 }, "sum_received": { "start": 0, - "end": 10.049556970596313, - "seconds": 10.049556970596313, - "bytes": 29576848, - "bits_per_second": 23544797.516179454 + "end": 10.105030059814453, + "seconds": 10.105030059814453, + "bytes": 27798704, + "bits_per_second": 22007814.987547249 }, "cpu_utilization_percent": { - "host_total": 0.57535536407004, - "host_user": 0.1212610154261816, - "host_system": 0.45412408891906092, - "remote_total": 0.538348710342157, - "remote_user": 0.060528736509778309, - "remote_system": 0.47783438739733886 + "host_total": 0.5465196434026981, + "host_user": 0.25977352538427273, + "host_system": 0.28688489651782939, + "remote_total": 0.019283469257616336, + "remote_user": 0.0033164114969951235, + "remote_system": 0.015967907207754296 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/1p2/1.json b/results/manual/inbound/1p2/1.json index 7be4c52..9cbeff7 100644 --- a/results/manual/inbound/1p2/1.json +++ b/results/manual/inbound/1p2/1.json @@ -2,22 +2,22 @@ "start": { "connected": [{ "socket": 5, - "local_host": "1.1.1.2", - "local_port": 42770, - "remote_host": "1.1.1.1", + "local_host": "1.1.1.1", + "local_port": 49992, + "remote_host": "1.1.1.2", "remote_port": 5201 }], "version": "iperf 3.6", - "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:34:01 GMT", - "timesecs": 1616344441 + "time": "Fri, 14 May 2021 04:00:26 GMT", + "timesecs": 1620964826 }, "connecting_to": { - "host": "1.1.1.1", + "host": "1.1.1.2", "port": 5201 }, - "cookie": "sae6ubl4mdastdd2q6ophc737ts2w2ln3d6t", + "cookie": "ixawaitnd2lrh2mfl6npvdrbybndxk2qwsrm", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001900196075439, - "seconds": 1.0001900196075439, - "bytes": 4469976, - "bits_per_second": 35753014.22626821, - "retransmits": 123, - "snd_cwnd": 34752, - "rtt": 32809, - "rttvar": 4477, + "end": 1.0001211166381836, + "seconds": 1.0001211166381836, + "bytes": 2937992, + "bits_per_second": 23501089.627030723, + "retransmits": 77, + "snd_cwnd": 63712, + "rtt": 22871, + "rttvar": 1300, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001900196075439, - "seconds": 1.0001900196075439, - "bytes": 4469976, - "bits_per_second": 35753014.22626821, - "retransmits": 123, + "end": 1.0001211166381836, + "seconds": 1.0001211166381836, + "bytes": 2937992, + "bits_per_second": 23501089.627030723, + "retransmits": 77, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001900196075439, - "end": 2.0003101825714111, - "seconds": 1.0001201629638672, + "start": 1.0001211166381836, + "end": 2.000093936920166, + "seconds": 0.99997282028198242, + "bytes": 2867040, + "bits_per_second": 22936943.419654332, + "retransmits": 9, + "snd_cwnd": 79640, + "rtt": 27571, + "rttvar": 1292, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001211166381836, + "end": 2.000093936920166, + "seconds": 0.99997282028198242, + "bytes": 2867040, + "bits_per_second": 22936943.419654332, + "retransmits": 9, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.000093936920166, + "end": 3.0000910758972168, + "seconds": 0.99999713897705078, "bytes": 2801880, - "bits_per_second": 22412346.865973365, - "retransmits": 49, - "snd_cwnd": 18824, - "rtt": 1103, - "rttvar": 151, + "bits_per_second": 22415104.130127326, + "retransmits": 5, + "snd_cwnd": 98464, + "rtt": 35123, + "rttvar": 1636, "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001900196075439, - "end": 2.0003101825714111, - "seconds": 1.0001201629638672, + "start": 2.000093936920166, + "end": 3.0000910758972168, + "seconds": 0.99999713897705078, "bytes": 2801880, - "bits_per_second": 22412346.865973365, - "retransmits": 49, + "bits_per_second": 22415104.130127326, + "retransmits": 5, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0003101825714111, - "end": 3.0001170635223389, - "seconds": 0.99980688095092773, - "bytes": 2997360, - "bits_per_second": 23983511.6729677, - "retransmits": 84, - "snd_cwnd": 59368, - "rtt": 2307, - "rttvar": 170, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 2.0003101825714111, - "end": 3.0001170635223389, - "seconds": 0.99980688095092773, - "bytes": 2997360, - "bits_per_second": 23983511.6729677, - "retransmits": 84, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 3.0001170635223389, - "end": 4.0001771450042725, - "seconds": 1.0000600814819336, + "start": 3.0000910758972168, + "end": 4.0001859664916992, + "seconds": 1.0000948905944824, "bytes": 2801880, - "bits_per_second": 22413693.352087803, - "retransmits": 115, - "snd_cwnd": 40544, - "rtt": 15913, - "rttvar": 18512, + "bits_per_second": 22412913.225339964, + "retransmits": 5, + "snd_cwnd": 114392, + "rtt": 41421, + "rttvar": 1669, "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0001170635223389, - "end": 4.0001771450042725, - "seconds": 1.0000600814819336, + "start": 3.0000910758972168, + "end": 4.0001859664916992, + "seconds": 1.0000948905944824, "bytes": 2801880, - "bits_per_second": 22413693.352087803, - "retransmits": 115, + "bits_per_second": 22412913.225339964, + "retransmits": 5, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001771450042725, - "end": 5.0001130104064941, - "seconds": 0.99993586540222168, - "bytes": 2932200, - "bits_per_second": 23459104.540233929, - "retransmits": 123, - "snd_cwnd": 7240, - "rtt": 5511, - "rttvar": 6654, + "start": 4.0001859664916992, + "end": 5.0001380443573, + "seconds": 0.99995207786560059, + "bytes": 2867040, + "bits_per_second": 22937419.210086163, + "retransmits": 4, + "snd_cwnd": 128872, + "rtt": 44107, + "rttvar": 2257, "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001771450042725, - "end": 5.0001130104064941, - "seconds": 0.99993586540222168, - "bytes": 2932200, - "bits_per_second": 23459104.540233929, - "retransmits": 123, + "start": 4.0001859664916992, + "end": 5.0001380443573, + "seconds": 0.99995207786560059, + "bytes": 2867040, + "bits_per_second": 22937419.210086163, + "retransmits": 4, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001130104064941, - "end": 6.0001330375671387, - "seconds": 1.0000200271606445, + "start": 5.0001380443573, + "end": 6.0000901222229, + "seconds": 0.99995207786560059, + "bytes": 3062520, + "bits_per_second": 24501334.1562284, + "retransmits": 2, + "snd_cwnd": 141904, + "rtt": 50265, + "rttvar": 1217, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001380443573, + "end": 6.0000901222229, + "seconds": 0.99995207786560059, + "bytes": 3062520, + "bits_per_second": 24501334.1562284, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0000901222229, + "end": 7.0002231597900391, + "seconds": 1.0001330375671387, + "bytes": 2606400, + "bits_per_second": 20848426.376076259, + "retransmits": 0, + "snd_cwnd": 156384, + "rtt": 55599, + "rttvar": 1450, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0000901222229, + "end": 7.0002231597900391, + "seconds": 1.0001330375671387, + "bytes": 2606400, + "bits_per_second": 20848426.376076259, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0002231597900391, + "end": 8.0001339912414551, + "seconds": 0.999910831451416, + "bytes": 3062520, + "bits_per_second": 24502344.838526156, + "retransmits": 2, + "snd_cwnd": 166520, + "rtt": 65382, + "rttvar": 1427, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0002231597900391, + "end": 8.0001339912414551, + "seconds": 0.999910831451416, + "bytes": 3062520, + "bits_per_second": 24502344.838526156, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001339912414551, + "end": 9.00010895729065, + "seconds": 0.99997496604919434, "bytes": 2736720, - "bits_per_second": 21893321.5389325, - "retransmits": 56, - "snd_cwnd": 36200, - "rtt": 17888, - "rttvar": 846, + "bits_per_second": 21894308.101031926, + "retransmits": 2, + "snd_cwnd": 178104, + "rtt": 63777, + "rttvar": 1424, "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001130104064941, - "end": 6.0001330375671387, - "seconds": 1.0000200271606445, + "start": 8.0001339912414551, + "end": 9.00010895729065, + "seconds": 0.99997496604919434, "bytes": 2736720, - "bits_per_second": 21893321.5389325, - "retransmits": 56, + "bits_per_second": 21894308.101031926, + "retransmits": 2, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001330375671387, - "end": 7.0003330707550049, - "seconds": 1.0002000331878662, - "bytes": 2218336, - "bits_per_second": 17743138.783386406, - "retransmits": 71, - "snd_cwnd": 5792, - "rtt": 16728, - "rttvar": 2336, + "start": 9.00010895729065, + "end": 10.000195980072021, + "seconds": 1.0000870227813721, + "bytes": 2736720, + "bits_per_second": 21891854.909896348, + "retransmits": 0, + "snd_cwnd": 189688, + "rtt": 67690, + "rttvar": 1274, "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001330375671387, - "end": 7.0003330707550049, - "seconds": 1.0002000331878662, - "bytes": 2218336, - "bits_per_second": 17743138.783386406, - "retransmits": 71, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 7.0003330707550049, - "end": 8.0004470348358154, - "seconds": 1.0001139640808105, - "bytes": 2610744, - "bits_per_second": 20883572.022910368, - "retransmits": 59, - "snd_cwnd": 15928, - "rtt": 13185, - "rttvar": 3960, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 7.0003330707550049, - "end": 8.0004470348358154, - "seconds": 1.0001139640808105, - "bytes": 2610744, - "bits_per_second": 20883572.022910368, - "retransmits": 59, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 8.0004470348358154, - "end": 9.0002210140228271, - "seconds": 0.99977397918701172, - "bytes": 3323160, - "bits_per_second": 26591290.185026027, - "retransmits": 100, - "snd_cwnd": 10136, - "rtt": 5925, - "rttvar": 6842, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 8.0004470348358154, - "end": 9.0002210140228271, - "seconds": 0.99977397918701172, - "bytes": 3323160, - "bits_per_second": 26591290.185026027, - "retransmits": 100, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 9.0002210140228271, - "end": 10.000101089477539, - "seconds": 0.99988007545471191, - "bytes": 2932200, - "bits_per_second": 23460413.479418788, - "retransmits": 148, - "snd_cwnd": 28960, - "rtt": 1011, - "rttvar": 149, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 9.0002210140228271, - "end": 10.000101089477539, - "seconds": 0.99988007545471191, - "bytes": 2932200, - "bits_per_second": 23460413.479418788, - "retransmits": 148, + "start": 9.00010895729065, + "end": 10.000195980072021, + "seconds": 1.0000870227813721, + "bytes": 2736720, + "bits_per_second": 21891854.909896348, + "retransmits": 0, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.000101089477539, - "seconds": 10.000101089477539, - "bytes": 29824456, - "bits_per_second": 23859323.60734421, - "retransmits": 928, - "max_snd_cwnd": 59368, - "max_rtt": 32809, - "min_rtt": 1011, - "mean_rtt": 11238 + "end": 10.000195980072021, + "seconds": 10.000195980072021, + "bytes": 28480712, + "bits_per_second": 22784123.076591849, + "retransmits": 106, + "max_snd_cwnd": 189688, + "max_rtt": 67690, + "min_rtt": 22871, + "mean_rtt": 47380 }, "receiver": { "socket": 5, "start": 0, - "end": 10.053678035736084, - "seconds": 10.000101089477539, - "bytes": 29508792, - "bits_per_second": 23480992.245910529 + "end": 10.108454942703247, + "seconds": 10.000195980072021, + "bytes": 27824768, + "bits_per_second": 22020985.923341498 } }], "sum_sent": { "start": 0, - "end": 10.000101089477539, - "seconds": 10.000101089477539, - "bytes": 29824456, - "bits_per_second": 23859323.60734421, - "retransmits": 928 + "end": 10.000195980072021, + "seconds": 10.000195980072021, + "bytes": 28480712, + "bits_per_second": 22784123.076591849, + "retransmits": 106 }, "sum_received": { "start": 0, - "end": 10.053678035736084, - "seconds": 10.053678035736084, - "bytes": 29508792, - "bits_per_second": 23480992.245910529 + "end": 10.108454942703247, + "seconds": 10.108454942703247, + "bytes": 27824768, + "bits_per_second": 22020985.923341498 }, "cpu_utilization_percent": { - "host_total": 0.5546793600045673, - "host_user": 0.21428135313138807, - "host_system": 0.34040791858755692, - "remote_total": 1.9227827922192335, - "remote_user": 0.21406840993107332, - "remote_system": 1.7087143822881603 + "host_total": 0.54508156105682515, + "host_user": 0.074911303589479311, + "host_system": 0.47031891066933579, + "remote_total": 0.075086266699504425, + "remote_user": 0.028014730423738247, + "remote_system": 0.047076565286052051 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/1p2/2.json b/results/manual/inbound/1p2/2.json index 0f98f68..a1b372c 100644 --- a/results/manual/inbound/1p2/2.json +++ b/results/manual/inbound/1p2/2.json @@ -2,22 +2,22 @@ "start": { "connected": [{ "socket": 5, - "local_host": "1.1.1.2", - "local_port": 42774, - "remote_host": "1.1.1.1", + "local_host": "1.1.1.1", + "local_port": 49996, + "remote_host": "1.1.1.2", "remote_port": 5201 }], "version": "iperf 3.6", - "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:34:16 GMT", - "timesecs": 1616344456 + "time": "Fri, 14 May 2021 04:01:15 GMT", + "timesecs": 1620964875 }, "connecting_to": { - "host": "1.1.1.1", + "host": "1.1.1.2", "port": 5201 }, - "cookie": "zma5dksyespamvt7mrgo4sklnvjcogptfdhy", + "cookie": "j4zoahz2vd7leowpwgcvilpsqsxniu7l5sed", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0003030300140381, - "seconds": 1.0003030300140381, - "bytes": 4484456, - "bits_per_second": 35864779.895244874, - "retransmits": 86, - "snd_cwnd": 14480, - "rtt": 6682, - "rttvar": 6934, + "end": 1.0001089572906494, + "seconds": 1.0001089572906494, + "bytes": 2936544, + "bits_per_second": 23489792.615838662, + "retransmits": 65, + "snd_cwnd": 55024, + "rtt": 19204, + "rttvar": 1260, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0003030300140381, - "seconds": 1.0003030300140381, - "bytes": 4484456, - "bits_per_second": 35864779.895244874, - "retransmits": 86, + "end": 1.0001089572906494, + "seconds": 1.0001089572906494, + "bytes": 2936544, + "bits_per_second": 23489792.615838662, + "retransmits": 65, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0003030300140381, - "end": 2.0002470016479492, - "seconds": 0.99994397163391113, - "bytes": 2997360, - "bits_per_second": 23980223.572745226, - "retransmits": 45, - "snd_cwnd": 37648, - "rtt": 37174, - "rttvar": 6983, + "start": 1.0001089572906494, + "end": 2.0000879764556885, + "seconds": 0.99997901916503906, + "bytes": 2932200, + "bits_per_second": 23458092.170360323, + "retransmits": 9, + "snd_cwnd": 78192, + "rtt": 26728, + "rttvar": 1486, "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0003030300140381, - "end": 2.0002470016479492, - "seconds": 0.99994397163391113, - "bytes": 2997360, - "bits_per_second": 23980223.572745226, - "retransmits": 45, + "start": 1.0001089572906494, + "end": 2.0000879764556885, + "seconds": 0.99997901916503906, + "bytes": 2932200, + "bits_per_second": 23458092.170360323, + "retransmits": 9, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0002470016479492, - "end": 3.0001869201660156, - "seconds": 0.99993991851806641, - "bytes": 3062520, - "bits_per_second": 24501632.094366021, - "retransmits": 79, - "snd_cwnd": 34752, - "rtt": 14741, - "rttvar": 4938, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 2.0002470016479492, - "end": 3.0001869201660156, - "seconds": 0.99993991851806641, - "bytes": 3062520, - "bits_per_second": 24501632.094366021, - "retransmits": 79, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 3.0001869201660156, - "end": 4.0001049041748047, - "seconds": 0.99991798400878906, - "bytes": 2748304, - "bits_per_second": 21988235.386920236, - "retransmits": 102, - "snd_cwnd": 11584, - "rtt": 7710, - "rttvar": 8302, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 3.0001869201660156, - "end": 4.0001049041748047, - "seconds": 0.99991798400878906, - "bytes": 2748304, - "bits_per_second": 21988235.386920236, - "retransmits": 102, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 4.0001049041748047, - "end": 5.00026798248291, - "seconds": 1.0001630783081055, - "bytes": 2541240, - "bits_per_second": 20326605.171619084, - "retransmits": 55, - "snd_cwnd": 23168, - "rtt": 11577, - "rttvar": 4615, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 4.0001049041748047, - "end": 5.00026798248291, - "seconds": 1.0001630783081055, - "bytes": 2541240, - "bits_per_second": 20326605.171619084, - "retransmits": 55, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 5.00026798248291, - "end": 6.0001900196075439, - "seconds": 0.99992203712463379, + "start": 2.0000879764556885, + "end": 3.0001099109649658, + "seconds": 1.0000219345092773, "bytes": 2801880, - "bits_per_second": 22416787.67722379, - "retransmits": 68, - "snd_cwnd": 14480, - "rtt": 19585, - "rttvar": 10292, + "bits_per_second": 22414548.347881317, + "retransmits": 2, + "snd_cwnd": 98464, + "rtt": 35478, + "rttvar": 1581, "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.00026798248291, - "end": 6.0001900196075439, - "seconds": 0.99992203712463379, + "start": 2.0000879764556885, + "end": 3.0001099109649658, + "seconds": 1.0000219345092773, "bytes": 2801880, - "bits_per_second": 22416787.67722379, - "retransmits": 68, + "bits_per_second": 22414548.347881317, + "retransmits": 2, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001900196075439, - "end": 7.0001358985900879, - "seconds": 0.999945878982544, - "bytes": 3062520, - "bits_per_second": 24501486.04535396, - "retransmits": 91, - "snd_cwnd": 10136, - "rtt": 2785, - "rttvar": 1558, + "start": 3.0001099109649658, + "end": 4.0000920295715332, + "seconds": 0.99998211860656738, + "bytes": 2801880, + "bits_per_second": 22415440.819316257, + "retransmits": 6, + "snd_cwnd": 108600, + "rtt": 39301, + "rttvar": 1239, "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001900196075439, - "end": 7.0001358985900879, - "seconds": 0.999945878982544, - "bytes": 3062520, - "bits_per_second": 24501486.04535396, - "retransmits": 91, + "start": 3.0001099109649658, + "end": 4.0000920295715332, + "seconds": 0.99998211860656738, + "bytes": 2801880, + "bits_per_second": 22415440.819316257, + "retransmits": 6, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0001358985900879, - "end": 8.0000829696655273, - "seconds": 0.99994707107543945, + "start": 4.0000920295715332, + "end": 5.0001039505004883, + "seconds": 1.0000119209289551, + "bytes": 2867040, + "bits_per_second": 22936046.5810182, + "retransmits": 2, + "snd_cwnd": 123080, + "rtt": 43272, + "rttvar": 1433, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0000920295715332, + "end": 5.0001039505004883, + "seconds": 1.0000119209289551, + "bytes": 2867040, + "bits_per_second": 22936046.5810182, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001039505004883, + "end": 6.0001728534698486, + "seconds": 1.0000689029693604, + "bytes": 2801880, + "bits_per_second": 22413495.643596411, + "retransmits": 3, + "snd_cwnd": 137560, + "rtt": 48511, + "rttvar": 1322, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001039505004883, + "end": 6.0001728534698486, + "seconds": 1.0000689029693604, + "bytes": 2801880, + "bits_per_second": 22413495.643596411, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001728534698486, + "end": 7.0000898838043213, + "seconds": 0.99991703033447266, + "bytes": 2932200, + "bits_per_second": 23459546.43072078, + "retransmits": 0, + "snd_cwnd": 152040, + "rtt": 54180, + "rttvar": 1383, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001728534698486, + "end": 7.0000898838043213, + "seconds": 0.99991703033447266, + "bytes": 2932200, + "bits_per_second": 23459546.43072078, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0000898838043213, + "end": 8.00015902519226, + "seconds": 1.0000691413879395, "bytes": 2671560, - "bits_per_second": 21373611.282259144, - "retransmits": 60, - "snd_cwnd": 24616, - "rtt": 5053, - "rttvar": 4828, + "bits_per_second": 21371002.379233841, + "retransmits": 0, + "snd_cwnd": 166520, + "rtt": 59172, + "rttvar": 1556, "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0001358985900879, - "end": 8.0000829696655273, - "seconds": 0.99994707107543945, + "start": 7.0000898838043213, + "end": 8.00015902519226, + "seconds": 1.0000691413879395, "bytes": 2671560, - "bits_per_second": 21373611.282259144, - "retransmits": 60, + "bits_per_second": 21371002.379233841, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0000829696655273, - "end": 9.0002250671386719, - "seconds": 1.0001420974731445, - "bytes": 2606400, - "bits_per_second": 20848237.518129155, - "retransmits": 80, - "snd_cwnd": 11584, - "rtt": 12159, - "rttvar": 6175, + "start": 8.00015902519226, + "end": 9.0001230239868164, + "seconds": 0.99996399879455566, + "bytes": 3127680, + "bits_per_second": 25022340.834433079, + "retransmits": 3, + "snd_cwnd": 175208, + "rtt": 62439, + "rttvar": 1670, "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0000829696655273, - "end": 9.0002250671386719, - "seconds": 1.0001420974731445, - "bytes": 2606400, - "bits_per_second": 20848237.518129155, - "retransmits": 80, + "start": 8.00015902519226, + "end": 9.0001230239868164, + "seconds": 0.99996399879455566, + "bytes": 3127680, + "bits_per_second": 25022340.834433079, + "retransmits": 3, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0002250671386719, - "end": 10.000231981277466, - "seconds": 1.0000069141387939, + "start": 9.0001230239868164, + "end": 10.000149011611938, + "seconds": 1.0000259876251221, "bytes": 2736720, - "bits_per_second": 21893608.62455127, - "retransmits": 124, - "snd_cwnd": 27512, - "rtt": 25366, - "rttvar": 7069, + "bits_per_second": 21893191.047958318, + "retransmits": 1, + "snd_cwnd": 185344, + "rtt": 65985, + "rttvar": 1294, "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0002250671386719, - "end": 10.000231981277466, - "seconds": 1.0000069141387939, + "start": 9.0001230239868164, + "end": 10.000149011611938, + "seconds": 1.0000259876251221, "bytes": 2736720, - "bits_per_second": 21893608.62455127, - "retransmits": 124, + "bits_per_second": 21893191.047958318, + "retransmits": 1, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.000231981277466, - "seconds": 10.000231981277466, - "bytes": 29712960, - "bits_per_second": 23769816.584758352, - "retransmits": 790, - "max_snd_cwnd": 37648, - "max_rtt": 37174, - "min_rtt": 2785, - "mean_rtt": 14283 + "end": 10.000149011611938, + "seconds": 10.000149011611938, + "bytes": 28609584, + "bits_per_second": 22887326.152263708, + "retransmits": 91, + "max_snd_cwnd": 185344, + "max_rtt": 65985, + "min_rtt": 19204, + "mean_rtt": 45427 }, "receiver": { "socket": 5, "start": 0, - "end": 10.068006992340088, - "seconds": 10.000231981277466, - "bytes": 29461008, - "bits_per_second": 23409604.719118245 + "end": 10.10650110244751, + "seconds": 10.000149011611938, + "bytes": 27830560, + "bits_per_second": 22029827.904147934 } }], "sum_sent": { "start": 0, - "end": 10.000231981277466, - "seconds": 10.000231981277466, - "bytes": 29712960, - "bits_per_second": 23769816.584758352, - "retransmits": 790 + "end": 10.000149011611938, + "seconds": 10.000149011611938, + "bytes": 28609584, + "bits_per_second": 22887326.152263708, + "retransmits": 91 }, "sum_received": { "start": 0, - "end": 10.068006992340088, - "seconds": 10.068006992340088, - "bytes": 29461008, - "bits_per_second": 23409604.719118245 + "end": 10.10650110244751, + "seconds": 10.10650110244751, + "bytes": 27830560, + "bits_per_second": 22029827.904147934 }, "cpu_utilization_percent": { - "host_total": 0.55655837683489784, - "host_user": 0.075491579819634891, - "host_system": 0.48115599541599507, - "remote_total": 1.8682454182709081, - "remote_user": 0.13392751600148747, - "remote_system": 1.7344158645622973 + "host_total": 0.53526682716346341, + "host_user": 0.21454082742570529, + "host_system": 0.32082510854148411, + "remote_total": 0.25496597895128781, + "remote_user": 0.037515830627190869, + "remote_system": 0.21746239639155604 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/1p2/3.json b/results/manual/inbound/1p2/3.json new file mode 100644 index 0000000..577368d --- /dev/null +++ b/results/manual/inbound/1p2/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.1", + "local_port": 50000, + "remote_host": "1.1.1.2", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:02:15 GMT", + "timesecs": 1620964935 + }, + "connecting_to": { + "host": "1.1.1.2", + "port": 5201 + }, + "cookie": "566t4c4gn5xd6gdrncuzu53c7c4s32kuq4sy", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0000860691070557, + "seconds": 1.0000860691070557, + "bytes": 2959712, + "bits_per_second": 23675658.257234845, + "retransmits": 57, + "snd_cwnd": 52128, + "rtt": 21126, + "rttvar": 1894, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0000860691070557, + "seconds": 1.0000860691070557, + "bytes": 2959712, + "bits_per_second": 23675658.257234845, + "retransmits": 57, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0000860691070557, + "end": 2.000089168548584, + "seconds": 1.0000030994415283, + "bytes": 2801880, + "bits_per_second": 22414970.526109494, + "retransmits": 6, + "snd_cwnd": 75296, + "rtt": 26639, + "rttvar": 1575, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0000860691070557, + "end": 2.000089168548584, + "seconds": 1.0000030994415283, + "bytes": 2801880, + "bits_per_second": 22414970.526109494, + "retransmits": 6, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.000089168548584, + "end": 3.0001730918884277, + "seconds": 1.0000839233398438, + "bytes": 2932200, + "bits_per_second": 23455631.525064271, + "retransmits": 4, + "snd_cwnd": 95568, + "rtt": 34212, + "rttvar": 1369, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.000089168548584, + "end": 3.0001730918884277, + "seconds": 1.0000839233398438, + "bytes": 2932200, + "bits_per_second": 23455631.525064271, + "retransmits": 4, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001730918884277, + "end": 4.0001020431518555, + "seconds": 0.99992895126342773, + "bytes": 2801880, + "bits_per_second": 22416632.673429653, + "retransmits": 2, + "snd_cwnd": 112944, + "rtt": 40627, + "rttvar": 1539, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001730918884277, + "end": 4.0001020431518555, + "seconds": 0.99992895126342773, + "bytes": 2801880, + "bits_per_second": 22416632.673429653, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001020431518555, + "end": 5.000089168548584, + "seconds": 0.99998712539672852, + "bytes": 2867040, + "bits_per_second": 22936615.299822375, + "retransmits": 1, + "snd_cwnd": 128872, + "rtt": 46458, + "rttvar": 1501, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001020431518555, + "end": 5.000089168548584, + "seconds": 0.99998712539672852, + "bytes": 2867040, + "bits_per_second": 22936615.299822375, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000089168548584, + "end": 6.0001699924468994, + "seconds": 1.0000808238983154, + "bytes": 2801880, + "bits_per_second": 22413228.475500777, + "retransmits": 3, + "snd_cwnd": 141904, + "rtt": 49851, + "rttvar": 1243, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000089168548584, + "end": 6.0001699924468994, + "seconds": 1.0000808238983154, + "bytes": 2801880, + "bits_per_second": 22413228.475500777, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001699924468994, + "end": 7.0001921653747559, + "seconds": 1.0000221729278564, + "bytes": 2932200, + "bits_per_second": 23457079.887859922, + "retransmits": 1, + "snd_cwnd": 154936, + "rtt": 55082, + "rttvar": 1280, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001699924468994, + "end": 7.0001921653747559, + "seconds": 1.0000221729278564, + "bytes": 2932200, + "bits_per_second": 23457079.887859922, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001921653747559, + "end": 8.0001630783081055, + "seconds": 0.99997091293334961, + "bytes": 2736720, + "bits_per_second": 21894396.843780264, + "retransmits": 0, + "snd_cwnd": 167968, + "rtt": 60037, + "rttvar": 1622, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001921653747559, + "end": 8.0001630783081055, + "seconds": 0.99997091293334961, + "bytes": 2736720, + "bits_per_second": 21894396.843780264, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001630783081055, + "end": 9.0002009868621826, + "seconds": 1.0000379085540771, + "bytes": 2736720, + "bits_per_second": 21892930.070676509, + "retransmits": 0, + "snd_cwnd": 181000, + "rtt": 64355, + "rttvar": 1561, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001630783081055, + "end": 9.0002009868621826, + "seconds": 1.0000379085540771, + "bytes": 2736720, + "bits_per_second": 21892930.070676509, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002009868621826, + "end": 10.000172138214111, + "seconds": 0.99997115135192871, + "bytes": 3127680, + "bits_per_second": 25022161.855541352, + "retransmits": 0, + "snd_cwnd": 192584, + "rtt": 68705, + "rttvar": 1399, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002009868621826, + "end": 10.000172138214111, + "seconds": 0.99997115135192871, + "bytes": 3127680, + "bits_per_second": 25022161.855541352, + "retransmits": 0, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000172138214111, + "seconds": 10.000172138214111, + "bytes": 28697912, + "bits_per_second": 22957934.406217162, + "retransmits": 74, + "max_snd_cwnd": 192584, + "max_rtt": 68705, + "min_rtt": 21126, + "mean_rtt": 46709 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.112835884094238, + "seconds": 10.000172138214111, + "bytes": 27878344, + "bits_per_second": 22053828.872154739 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000172138214111, + "seconds": 10.000172138214111, + "bytes": 28697912, + "bits_per_second": 22957934.406217162, + "retransmits": 74 + }, + "sum_received": { + "start": 0, + "end": 10.112835884094238, + "seconds": 10.112835884094238, + "bytes": 27878344, + "bits_per_second": 22053828.872154739 + }, + "cpu_utilization_percent": { + "host_total": 0.54480596477997023, + "host_user": 0.24486240364142145, + "host_system": 0.3000228431212722, + "remote_total": 0.20854557899338352, + "remote_user": 0.036428063241304334, + "remote_system": 0.17213418153268184 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/inbound/1p2/4.json b/results/manual/inbound/1p2/4.json new file mode 100644 index 0000000..17b3057 --- /dev/null +++ b/results/manual/inbound/1p2/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.1", + "local_port": 50004, + "remote_host": "1.1.1.2", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:05:00 GMT", + "timesecs": 1620965100 + }, + "connecting_to": { + "host": "1.1.1.2", + "port": 5201 + }, + "cookie": "pqtykl5isayy3nwyvv7rqzo6tuwypqdi5x7a", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001158714294434, + "seconds": 1.0001158714294434, + "bytes": 2922064, + "bits_per_second": 23373803.643960245, + "retransmits": 53, + "snd_cwnd": 56472, + "rtt": 19671, + "rttvar": 1720, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001158714294434, + "seconds": 1.0001158714294434, + "bytes": 2922064, + "bits_per_second": 23373803.643960245, + "retransmits": 53, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001158714294434, + "end": 2.000093936920166, + "seconds": 0.99997806549072266, + "bytes": 2997360, + "bits_per_second": 23979405.976502858, + "retransmits": 3, + "snd_cwnd": 82536, + "rtt": 29074, + "rttvar": 1520, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001158714294434, + "end": 2.000093936920166, + "seconds": 0.99997806549072266, + "bytes": 2997360, + "bits_per_second": 23979405.976502858, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.000093936920166, + "end": 3.0001640319824219, + "seconds": 1.0000700950622559, + "bytes": 2736720, + "bits_per_second": 21892225.463093244, + "retransmits": 3, + "snd_cwnd": 102808, + "rtt": 35291, + "rttvar": 814, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.000093936920166, + "end": 3.0001640319824219, + "seconds": 1.0000700950622559, + "bytes": 2736720, + "bits_per_second": 21892225.463093244, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001640319824219, + "end": 4.0000958442687988, + "seconds": 0.999931812286377, + "bytes": 2867040, + "bits_per_second": 22937884.081870895, + "retransmits": 7, + "snd_cwnd": 114392, + "rtt": 40556, + "rttvar": 1489, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001640319824219, + "end": 4.0000958442687988, + "seconds": 0.999931812286377, + "bytes": 2867040, + "bits_per_second": 22937884.081870895, + "retransmits": 7, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0000958442687988, + "end": 5.000093936920166, + "seconds": 0.99999809265136719, + "bytes": 2867040, + "bits_per_second": 22936363.747642037, + "retransmits": 5, + "snd_cwnd": 127424, + "rtt": 44445, + "rttvar": 765, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0000958442687988, + "end": 5.000093936920166, + "seconds": 0.99999809265136719, + "bytes": 2867040, + "bits_per_second": 22936363.747642037, + "retransmits": 5, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000093936920166, + "end": 6.0001468658447266, + "seconds": 1.0000529289245605, + "bytes": 2736720, + "bits_per_second": 21892601.2481601, + "retransmits": 1, + "snd_cwnd": 141904, + "rtt": 51102, + "rttvar": 1419, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000093936920166, + "end": 6.0001468658447266, + "seconds": 1.0000529289245605, + "bytes": 2736720, + "bits_per_second": 21892601.2481601, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001468658447266, + "end": 7.0000858306884766, + "seconds": 0.99993896484375, + "bytes": 2932200, + "bits_per_second": 23459031.825672954, + "retransmits": 6, + "snd_cwnd": 150592, + "rtt": 55451, + "rttvar": 2904, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001468658447266, + "end": 7.0000858306884766, + "seconds": 0.99993896484375, + "bytes": 2932200, + "bits_per_second": 23459031.825672954, + "retransmits": 6, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0000858306884766, + "end": 8.00011682510376, + "seconds": 1.0000309944152832, + "bytes": 2997360, + "bits_per_second": 23978136.811669942, + "retransmits": 0, + "snd_cwnd": 165072, + "rtt": 58679, + "rttvar": 1606, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0000858306884766, + "end": 8.00011682510376, + "seconds": 1.0000309944152832, + "bytes": 2997360, + "bits_per_second": 23978136.811669942, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.00011682510376, + "end": 9.000093936920166, + "seconds": 0.99997711181640625, + "bytes": 2736720, + "bits_per_second": 21894261.119868159, + "retransmits": 1, + "snd_cwnd": 175208, + "rtt": 62475, + "rttvar": 1063, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.00011682510376, + "end": 9.000093936920166, + "seconds": 0.99997711181640625, + "bytes": 2736720, + "bits_per_second": 21894261.119868159, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.000093936920166, + "end": 10.000124931335449, + "seconds": 1.0000309944152832, + "bytes": 2736720, + "bits_per_second": 21893081.436742119, + "retransmits": 0, + "snd_cwnd": 188240, + "rtt": 67109, + "rttvar": 1550, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.000093936920166, + "end": 10.000124931335449, + "seconds": 1.0000309944152832, + "bytes": 2736720, + "bits_per_second": 21893081.436742119, + "retransmits": 0, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000124931335449, + "seconds": 10.000124931335449, + "bytes": 28529944, + "bits_per_second": 22823670.060841944, + "retransmits": 79, + "max_snd_cwnd": 188240, + "max_rtt": 67109, + "min_rtt": 19671, + "mean_rtt": 46385 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.106919050216675, + "seconds": 10.000124931335449, + "bytes": 27849384, + "bits_per_second": 22043816.804412186 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000124931335449, + "seconds": 10.000124931335449, + "bytes": 28529944, + "bits_per_second": 22823670.060841944, + "retransmits": 79 + }, + "sum_received": { + "start": 0, + "end": 10.106919050216675, + "seconds": 10.106919050216675, + "bytes": 27849384, + "bits_per_second": 22043816.804412186 + }, + "cpu_utilization_percent": { + "host_total": 0.5326872337344396, + "host_user": 0.23697455219610331, + "host_system": 0.29571268153833635, + "remote_total": 0.074781294360243444, + "remote_user": 0.0072430207520335016, + "remote_system": 0.067544336235440247 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/inbound/2p2/0.json b/results/manual/inbound/2p2/0.json index 5df0289..8697766 100644 --- a/results/manual/inbound/2p2/0.json +++ b/results/manual/inbound/2p2/0.json @@ -2,22 +2,22 @@ "start": { "connected": [{ "socket": 5, - "local_host": "1.1.1.2", - "local_port": 42778, - "remote_host": "1.1.1.1", + "local_host": "1.1.1.1", + "local_port": 50008, + "remote_host": "1.1.1.2", "remote_port": 5201 }], "version": "iperf 3.6", - "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:34:56 GMT", - "timesecs": 1616344496 + "time": "Fri, 14 May 2021 04:05:50 GMT", + "timesecs": 1620965150 }, "connecting_to": { - "host": "1.1.1.1", + "host": "1.1.1.2", "port": 5201 }, - "cookie": "x7ayyavb6z7rbc5pujfxb3gf5oy6forovm75", + "cookie": "xw3mqmuxjsw7n7uvbvvjvsqaeb5mvlx6cpj5", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0000879764556885, - "seconds": 1.0000879764556885, - "bytes": 5679056, - "bits_per_second": 45428451.365861416, - "retransmits": 168, - "snd_cwnd": 17376, - "rtt": 1328, - "rttvar": 346, + "end": 1.0001068115234375, + "seconds": 1.0001068115234375, + "bytes": 3968968, + "bits_per_second": 31748352.910059046, + "retransmits": 10, + "snd_cwnd": 70952, + "rtt": 18856, + "rttvar": 413, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0000879764556885, - "seconds": 1.0000879764556885, - "bytes": 5679056, - "bits_per_second": 45428451.365861416, - "retransmits": 168, + "end": 1.0001068115234375, + "seconds": 1.0001068115234375, + "bytes": 3968968, + "bits_per_second": 31748352.910059046, + "retransmits": 10, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0000879764556885, - "end": 2.0001640319824219, - "seconds": 1.0000760555267334, - "bytes": 3648960, - "bits_per_second": 29189459.980246138, - "retransmits": 69, - "snd_cwnd": 14480, - "rtt": 1066, - "rttvar": 213, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 1.0000879764556885, - "end": 2.0001640319824219, - "seconds": 1.0000760555267334, - "bytes": 3648960, - "bits_per_second": 29189459.980246138, - "retransmits": 69, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 2.0001640319824219, - "end": 3.0001709461212158, - "seconds": 1.0000069141387939, + "start": 1.0001068115234375, + "end": 2.0001049041748047, + "seconds": 0.99999809265136719, "bytes": 3909600, - "bits_per_second": 31276583.749358956, - "retransmits": 105, - "snd_cwnd": 66608, - "rtt": 31804, - "rttvar": 4752, + "bits_per_second": 31276859.655875504, + "retransmits": 0, + "snd_cwnd": 104256, + "rtt": 27754, + "rttvar": 274, "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0001640319824219, - "end": 3.0001709461212158, - "seconds": 1.0000069141387939, + "start": 1.0001068115234375, + "end": 2.0001049041748047, + "seconds": 0.99999809265136719, "bytes": 3909600, - "bits_per_second": 31276583.749358956, - "retransmits": 105, + "bits_per_second": 31276859.655875504, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0001709461212158, - "end": 4.0002858638763428, - "seconds": 1.000114917755127, + "start": 2.0001049041748047, + "end": 3.0000879764556885, + "seconds": 0.99998307228088379, + "bytes": 3909600, + "bits_per_second": 31277329.4538477, + "retransmits": 0, + "snd_cwnd": 128872, + "rtt": 31860, + "rttvar": 628, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001049041748047, + "end": 3.0000879764556885, + "seconds": 0.99998307228088379, + "bytes": 3909600, + "bits_per_second": 31277329.4538477, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0000879764556885, + "end": 4.00009298324585, + "seconds": 1.0000050067901611, + "bytes": 3779280, + "bits_per_second": 30234088.624262545, + "retransmits": 0, + "snd_cwnd": 149144, + "rtt": 40021, + "rttvar": 314, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0000879764556885, + "end": 4.00009298324585, + "seconds": 1.0000050067901611, + "bytes": 3779280, + "bits_per_second": 30234088.624262545, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.00009298324585, + "end": 5.0001959800720215, + "seconds": 1.0001029968261719, + "bytes": 3648960, + "bits_per_second": 29188673.65925293, + "retransmits": 0, + "snd_cwnd": 167968, + "rtt": 44585, + "rttvar": 388, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.00009298324585, + "end": 5.0001959800720215, + "seconds": 1.0001029968261719, + "bytes": 3648960, + "bits_per_second": 29188673.65925293, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001959800720215, + "end": 6.00008487701416, + "seconds": 0.99988889694213867, + "bytes": 3909600, + "bits_per_second": 31280275.334240377, + "retransmits": 0, + "snd_cwnd": 183896, + "rtt": 48897, + "rttvar": 267, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001959800720215, + "end": 6.00008487701416, + "seconds": 0.99988889694213867, + "bytes": 3909600, + "bits_per_second": 31280275.334240377, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.00008487701416, + "end": 7.0000979900360107, + "seconds": 1.0000131130218506, + "bytes": 3909600, + "bits_per_second": 31276389.872016203, + "retransmits": 4, + "snd_cwnd": 195480, + "rtt": 52320, + "rttvar": 359, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.00008487701416, + "end": 7.0000979900360107, + "seconds": 1.0000131130218506, + "bytes": 3909600, + "bits_per_second": 31276389.872016203, + "retransmits": 4, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0000979900360107, + "end": 8.000140905380249, + "seconds": 1.0000429153442383, "bytes": 3453480, - "bits_per_second": 27624665.435462024, - "retransmits": 33, - "snd_cwnd": 28960, - "rtt": 14839, - "rttvar": 10222, + "bits_per_second": 27626654.392616589, + "retransmits": 1, + "snd_cwnd": 208512, + "rtt": 55950, + "rttvar": 579, "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0001709461212158, - "end": 4.0002858638763428, - "seconds": 1.000114917755127, + "start": 7.0000979900360107, + "end": 8.000140905380249, + "seconds": 1.0000429153442383, "bytes": 3453480, - "bits_per_second": 27624665.435462024, - "retransmits": 33, + "bits_per_second": 27626654.392616589, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0002858638763428, - "end": 5.0001649856567383, - "seconds": 0.99987912178039551, - "bytes": 4170240, - "bits_per_second": 33365953.217020281, - "retransmits": 82, - "snd_cwnd": 36200, - "rtt": 13906, - "rttvar": 3313, + "start": 8.000140905380249, + "end": 9.0001177787780762, + "seconds": 0.99997687339782715, + "bytes": 4105080, + "bits_per_second": 32841399.509981267, + "retransmits": 1, + "snd_cwnd": 221544, + "rtt": 59073, + "rttvar": 303, "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0002858638763428, - "end": 5.0001649856567383, - "seconds": 0.99987912178039551, - "bytes": 4170240, - "bits_per_second": 33365953.217020281, - "retransmits": 82, + "start": 8.000140905380249, + "end": 9.0001177787780762, + "seconds": 0.99997687339782715, + "bytes": 4105080, + "bits_per_second": 32841399.509981267, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001649856567383, - "end": 6.0001218318939209, - "seconds": 0.99995684623718262, - "bytes": 3909600, - "bits_per_second": 31278149.769856535, - "retransmits": 142, - "snd_cwnd": 40544, - "rtt": 6251, - "rttvar": 3650, + "start": 9.0001177787780762, + "end": 10.000117778778076, + "seconds": 1, + "bytes": 3779280, + "bits_per_second": 30234240, + "retransmits": 0, + "snd_cwnd": 233128, + "rtt": 62711, + "rttvar": 358, "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001649856567383, - "end": 6.0001218318939209, - "seconds": 0.99995684623718262, - "bytes": 3909600, - "bits_per_second": 31278149.769856535, - "retransmits": 142, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 6.0001218318939209, - "end": 7.0001230239868164, - "seconds": 1.0000011920928955, - "bytes": 3648960, - "bits_per_second": 29191645.200847149, - "retransmits": 73, - "snd_cwnd": 23168, - "rtt": 1219, - "rttvar": 103, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 6.0001218318939209, - "end": 7.0001230239868164, - "seconds": 1.0000011920928955, - "bytes": 3648960, - "bits_per_second": 29191645.200847149, - "retransmits": 73, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 7.0001230239868164, - "end": 8.000234842300415, - "seconds": 1.0001118183135986, - "bytes": 3388320, - "bits_per_second": 27103529.329057854, - "retransmits": 51, - "snd_cwnd": 31856, - "rtt": 11011, - "rttvar": 13851, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 7.0001230239868164, - "end": 8.000234842300415, - "seconds": 1.0001118183135986, - "bytes": 3388320, - "bits_per_second": 27103529.329057854, - "retransmits": 51, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 8.000234842300415, - "end": 9.0001518726348877, - "seconds": 0.99991703033447266, - "bytes": 3909600, - "bits_per_second": 31279395.240961041, - "retransmits": 65, - "snd_cwnd": 20272, - "rtt": 1339, - "rttvar": 166, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 8.000234842300415, - "end": 9.0001518726348877, - "seconds": 0.99991703033447266, - "bytes": 3909600, - "bits_per_second": 31279395.240961041, - "retransmits": 65, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 9.0001518726348877, - "end": 10.000200986862183, - "seconds": 1.0000491142272949, - "bytes": 3909600, - "bits_per_second": 31275263.939578164, - "retransmits": 50, - "snd_cwnd": 15928, - "rtt": 3402, - "rttvar": 3884, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 9.0001518726348877, - "end": 10.000200986862183, - "seconds": 1.0000491142272949, - "bytes": 3909600, - "bits_per_second": 31275263.939578164, - "retransmits": 50, + "start": 9.0001177787780762, + "end": 10.000117778778076, + "seconds": 1, + "bytes": 3779280, + "bits_per_second": 30234240, + "retransmits": 0, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.000200986862183, - "seconds": 10.000200986862183, - "bytes": 39627416, - "bits_per_second": 31701295.645606108, - "retransmits": 838, - "max_snd_cwnd": 66608, - "max_rtt": 31804, - "min_rtt": 1066, - "mean_rtt": 8616 + "end": 10.000117778778076, + "seconds": 10.000117778778076, + "bytes": 38373448, + "bits_per_second": 30698396.838033151, + "retransmits": 16, + "max_snd_cwnd": 233128, + "max_rtt": 62711, + "min_rtt": 18856, + "mean_rtt": 44202 }, "receiver": { "socket": 5, "start": 0, - "end": 10.042038202285767, - "seconds": 10.000200986862183, - "bytes": 39221976, - "bits_per_second": 31246227.277703289 + "end": 10.10282301902771, + "seconds": 10.000117778778076, + "bytes": 37299032, + "bits_per_second": 29535532.339624919 } }], "sum_sent": { "start": 0, - "end": 10.000200986862183, - "seconds": 10.000200986862183, - "bytes": 39627416, - "bits_per_second": 31701295.645606108, - "retransmits": 838 + "end": 10.000117778778076, + "seconds": 10.000117778778076, + "bytes": 38373448, + "bits_per_second": 30698396.838033151, + "retransmits": 16 }, "sum_received": { "start": 0, - "end": 10.042038202285767, - "seconds": 10.042038202285767, - "bytes": 39221976, - "bits_per_second": 31246227.277703289 + "end": 10.10282301902771, + "seconds": 10.10282301902771, + "bytes": 37299032, + "bits_per_second": 29535532.339624919 }, "cpu_utilization_percent": { - "host_total": 0.587922799990761, - "host_user": 0.11615113386881613, - "host_system": 0.47177166612194493, - "remote_total": 0.92908346998256808, - "remote_user": 0.18911359074038267, - "remote_system": 0.74000250190748484 + "host_total": 0.57317914928877745, + "host_user": 0.081484799763991478, + "host_system": 0.49173400149547408, + "remote_total": 1.399572422338462, + "remote_user": 0.19886024053243725, + "remote_system": 1.2007463571405279 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/2p2/1.json b/results/manual/inbound/2p2/1.json index 98f29dd..fdb27e8 100644 --- a/results/manual/inbound/2p2/1.json +++ b/results/manual/inbound/2p2/1.json @@ -2,22 +2,22 @@ "start": { "connected": [{ "socket": 5, - "local_host": "1.1.1.2", - "local_port": 42782, - "remote_host": "1.1.1.1", + "local_host": "1.1.1.1", + "local_port": 50012, + "remote_host": "1.1.1.2", "remote_port": 5201 }], "version": "iperf 3.6", - "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:35:09 GMT", - "timesecs": 1616344509 + "time": "Fri, 14 May 2021 04:07:12 GMT", + "timesecs": 1620965232 }, "connecting_to": { - "host": "1.1.1.1", + "host": "1.1.1.2", "port": 5201 }, - "cookie": "q2otd4klzj2toickibikejtjtwoji5fxe2eg", + "cookie": "rh6shapjyl4l4cfy2cv6by6wkallvys2ukoc", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001440048217773, - "seconds": 1.0001440048217773, - "bytes": 5913632, - "bits_per_second": 47302244.248747289, - "retransmits": 55, - "snd_cwnd": 24616, - "rtt": 1324, - "rttvar": 130, + "end": 1.0000851154327393, + "seconds": 1.0000851154327393, + "bytes": 4018200, + "bits_per_second": 32142864.146208715, + "retransmits": 12, + "snd_cwnd": 70952, + "rtt": 18592, + "rttvar": 243, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001440048217773, - "seconds": 1.0001440048217773, - "bytes": 5913632, - "bits_per_second": 47302244.248747289, - "retransmits": 55, + "end": 1.0000851154327393, + "seconds": 1.0000851154327393, + "bytes": 4018200, + "bits_per_second": 32142864.146208715, + "retransmits": 12, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001440048217773, - "end": 2.0002188682556152, - "seconds": 1.0000748634338379, - "bytes": 3518640, - "bits_per_second": 28147012.817968167, - "retransmits": 26, - "snd_cwnd": 46336, - "rtt": 22599, - "rttvar": 6621, + "start": 1.0000851154327393, + "end": 2.000136137008667, + "seconds": 1.0000510215759277, + "bytes": 3974760, + "bits_per_second": 31796457.6946195, + "retransmits": 0, + "snd_cwnd": 104256, + "rtt": 27488, + "rttvar": 423, "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001440048217773, - "end": 2.0002188682556152, - "seconds": 1.0000748634338379, - "bytes": 3518640, - "bits_per_second": 28147012.817968167, - "retransmits": 26, + "start": 1.0000851154327393, + "end": 2.000136137008667, + "seconds": 1.0000510215759277, + "bytes": 3974760, + "bits_per_second": 31796457.6946195, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0002188682556152, - "end": 3.0002079010009766, - "seconds": 0.99998903274536133, - "bytes": 3518640, - "bits_per_second": 28149428.721952725, - "retransmits": 147, - "snd_cwnd": 18824, - "rtt": 26484, - "rttvar": 36152, + "start": 2.000136137008667, + "end": 3.0000860691070557, + "seconds": 0.99994993209838867, + "bytes": 3648960, + "bits_per_second": 29193141.639343325, + "retransmits": 1, + "snd_cwnd": 127424, + "rtt": 33815, + "rttvar": 391, "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0002188682556152, - "end": 3.0002079010009766, - "seconds": 0.99998903274536133, - "bytes": 3518640, - "bits_per_second": 28149428.721952725, - "retransmits": 147, + "start": 2.000136137008667, + "end": 3.0000860691070557, + "seconds": 0.99994993209838867, + "bytes": 3648960, + "bits_per_second": 29193141.639343325, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0002079010009766, - "end": 4.0001018047332764, - "seconds": 0.9998939037322998, - "bytes": 4300560, - "bits_per_second": 34408130.574232467, - "retransmits": 39, - "snd_cwnd": 23168, - "rtt": 1290, - "rttvar": 260, + "start": 3.0000860691070557, + "end": 4.0000820159912109, + "seconds": 0.99999594688415527, + "bytes": 3974760, + "bits_per_second": 31798208.881824251, + "retransmits": 1, + "snd_cwnd": 146248, + "rtt": 38611, + "rttvar": 320, "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0002079010009766, - "end": 4.0001018047332764, - "seconds": 0.9998939037322998, - "bytes": 4300560, - "bits_per_second": 34408130.574232467, - "retransmits": 39, + "start": 3.0000860691070557, + "end": 4.0000820159912109, + "seconds": 0.99999594688415527, + "bytes": 3974760, + "bits_per_second": 31798208.881824251, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001018047332764, - "end": 5.0001399517059326, - "seconds": 1.0000381469726562, - "bytes": 3518640, - "bits_per_second": 28148046.237249862, - "retransmits": 45, - "snd_cwnd": 34752, - "rtt": 14496, - "rttvar": 2393, + "start": 4.0000820159912109, + "end": 5.0001471042633057, + "seconds": 1.0000650882720947, + "bytes": 3583800, + "bits_per_second": 28668534.014657497, + "retransmits": 1, + "snd_cwnd": 162176, + "rtt": 43303, + "rttvar": 953, "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001018047332764, - "end": 5.0001399517059326, - "seconds": 1.0000381469726562, - "bytes": 3518640, - "bits_per_second": 28148046.237249862, - "retransmits": 45, + "start": 4.0000820159912109, + "end": 5.0001471042633057, + "seconds": 1.0000650882720947, + "bytes": 3583800, + "bits_per_second": 28668534.014657497, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001399517059326, - "end": 6.0001378059387207, - "seconds": 0.99999785423278809, - "bytes": 3909600, - "bits_per_second": 31276867.112875942, - "retransmits": 45, - "snd_cwnd": 36200, - "rtt": 4493, - "rttvar": 2668, + "start": 5.0001471042633057, + "end": 6.0001399517059326, + "seconds": 0.999992847442627, + "bytes": 3779280, + "bits_per_second": 30234456.253682997, + "retransmits": 1, + "snd_cwnd": 178104, + "rtt": 47531, + "rttvar": 456, "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001399517059326, - "end": 6.0001378059387207, - "seconds": 0.99999785423278809, - "bytes": 3909600, - "bits_per_second": 31276867.112875942, - "retransmits": 45, + "start": 5.0001471042633057, + "end": 6.0001399517059326, + "seconds": 0.999992847442627, + "bytes": 3779280, + "bits_per_second": 30234456.253682997, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001378059387207, - "end": 7.00008487701416, + "start": 6.0001399517059326, + "end": 7.0000870227813721, "seconds": 0.99994707107543945, - "bytes": 3714120, - "bits_per_second": 29714532.758262713, - "retransmits": 28, - "snd_cwnd": 41992, - "rtt": 2091, - "rttvar": 370, + "bytes": 3909600, + "bits_per_second": 31278455.535013381, + "retransmits": 0, + "snd_cwnd": 194032, + "rtt": 51919, + "rttvar": 359, "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001378059387207, - "end": 7.00008487701416, + "start": 6.0001399517059326, + "end": 7.0000870227813721, "seconds": 0.99994707107543945, - "bytes": 3714120, - "bits_per_second": 29714532.758262713, - "retransmits": 28, + "bytes": 3909600, + "bits_per_second": 31278455.535013381, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.00008487701416, - "end": 8.0002028942108154, - "seconds": 1.0001180171966553, - "bytes": 3518640, - "bits_per_second": 28145798.31178562, - "retransmits": 25, - "snd_cwnd": 39096, - "rtt": 10473, - "rttvar": 8444, + "start": 7.0000870227813721, + "end": 8.0000920295715332, + "seconds": 1.0000050067901611, + "bytes": 3844440, + "bits_per_second": 30755366.014336038, + "retransmits": 1, + "snd_cwnd": 207064, + "rtt": 55254, + "rttvar": 210, "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.00008487701416, - "end": 8.0002028942108154, - "seconds": 1.0001180171966553, - "bytes": 3518640, - "bits_per_second": 28145798.31178562, - "retransmits": 25, + "start": 7.0000870227813721, + "end": 8.0000920295715332, + "seconds": 1.0000050067901611, + "bytes": 3844440, + "bits_per_second": 30755366.014336038, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0002028942108154, - "end": 9.0001418590545654, - "seconds": 0.99993896484375, - "bytes": 4952160, - "bits_per_second": 39619698.194469877, - "retransmits": 113, - "snd_cwnd": 20272, - "rtt": 3062, - "rttvar": 3150, + "start": 8.0000920295715332, + "end": 9.0001039505004883, + "seconds": 1.0000119209289551, + "bytes": 3648960, + "bits_per_second": 29191332.012204979, + "retransmits": 0, + "snd_cwnd": 220096, + "rtt": 58960, + "rttvar": 100, "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0002028942108154, - "end": 9.0001418590545654, - "seconds": 0.99993896484375, - "bytes": 4952160, - "bits_per_second": 39619698.194469877, - "retransmits": 113, + "start": 8.0000920295715332, + "end": 9.0001039505004883, + "seconds": 1.0000119209289551, + "bytes": 3648960, + "bits_per_second": 29191332.012204979, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0001418590545654, - "end": 10.00013279914856, - "seconds": 0.99999094009399414, - "bytes": 3453480, - "bits_per_second": 27628090.307901312, - "retransmits": 47, - "snd_cwnd": 39096, - "rtt": 17376, - "rttvar": 2982, + "start": 9.0001039505004883, + "end": 10.0001699924469, + "seconds": 1.0000660419464111, + "bytes": 3648960, + "bits_per_second": 29189752.251946025, + "retransmits": 0, + "snd_cwnd": 233128, + "rtt": 62167, + "rttvar": 341, "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0001418590545654, - "end": 10.00013279914856, - "seconds": 0.99999094009399414, - "bytes": 3453480, - "bits_per_second": 27628090.307901312, - "retransmits": 47, + "start": 9.0001039505004883, + "end": 10.0001699924469, + "seconds": 1.0000660419464111, + "bytes": 3648960, + "bits_per_second": 29189752.251946025, + "retransmits": 0, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.00013279914856, - "seconds": 10.00013279914856, - "bytes": 40318112, - "bits_per_second": 32254061.268812593, - "retransmits": 570, - "max_snd_cwnd": 46336, - "max_rtt": 26484, - "min_rtt": 1290, - "mean_rtt": 10368 + "end": 10.0001699924469, + "seconds": 10.0001699924469, + "bytes": 38031720, + "bits_per_second": 30424858.800380595, + "retransmits": 17, + "max_snd_cwnd": 233128, + "max_rtt": 62167, + "min_rtt": 18592, + "mean_rtt": 43764 }, "receiver": { "socket": 5, "start": 0, - "end": 10.259714841842651, - "seconds": 10.00013279914856, - "bytes": 40063264, - "bits_per_second": 31239280.714983 + "end": 10.102319002151489, + "seconds": 10.0001699924469, + "bytes": 37303376, + "bits_per_second": 29540445.905187123 } }], "sum_sent": { "start": 0, - "end": 10.00013279914856, - "seconds": 10.00013279914856, - "bytes": 40318112, - "bits_per_second": 32254061.268812593, - "retransmits": 570 + "end": 10.0001699924469, + "seconds": 10.0001699924469, + "bytes": 38031720, + "bits_per_second": 30424858.800380595, + "retransmits": 17 }, "sum_received": { "start": 0, - "end": 10.259714841842651, - "seconds": 10.259714841842651, - "bytes": 40063264, - "bits_per_second": 31239280.714983 + "end": 10.102319002151489, + "seconds": 10.102319002151489, + "bytes": 37303376, + "bits_per_second": 29540445.905187123 }, "cpu_utilization_percent": { - "host_total": 0.60326736120781921, - "host_user": 0.303011410677646, - "host_system": 0.30026586225732255, - "remote_total": 3.0025816510545908, - "remote_user": 0.39341076076965864, - "remote_system": 2.6091708902849322 + "host_total": 0.55774669660712273, + "host_user": 0.047279098298111014, + "host_system": 0.51045768862586394, + "remote_total": 0.77464677976031393, + "remote_user": 0.0934251797393962, + "remote_system": 0.68123994458181536 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/2p2/2.json b/results/manual/inbound/2p2/2.json index 3134791..37c0954 100644 --- a/results/manual/inbound/2p2/2.json +++ b/results/manual/inbound/2p2/2.json @@ -2,22 +2,22 @@ "start": { "connected": [{ "socket": 5, - "local_host": "1.1.1.2", - "local_port": 42786, - "remote_host": "1.1.1.1", + "local_host": "1.1.1.1", + "local_port": 50016, + "remote_host": "1.1.1.2", "remote_port": 5201 }], "version": "iperf 3.6", - "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:35:33 GMT", - "timesecs": 1616344533 + "time": "Fri, 14 May 2021 04:07:40 GMT", + "timesecs": 1620965260 }, "connecting_to": { - "host": "1.1.1.1", + "host": "1.1.1.2", "port": 5201 }, - "cookie": "yjoqpgs64qpbqvcyl23iwfn4uwnzbycnl5um", + "cookie": "rpzsxzx2t7pnc6c77fwvzoug7n66vhhoujpi", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -38,240 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001418590545654, - "seconds": 1.0001418590545654, - "bytes": 6065672, - "bits_per_second": 48518493.212423943, - "retransmits": 65, - "snd_cwnd": 11584, - "rtt": 1188, - "rttvar": 452, + "end": 1.0001099109649658, + "seconds": 1.0001099109649658, + "bytes": 4000824, + "bits_per_second": 32003074.511198603, + "retransmits": 12, + "snd_cwnd": 72400, + "rtt": 18955, + "rttvar": 503, "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001418590545654, - "seconds": 1.0001418590545654, - "bytes": 6065672, - "bits_per_second": 48518493.212423943, - "retransmits": 65, + "end": 1.0001099109649658, + "seconds": 1.0001099109649658, + "bytes": 4000824, + "bits_per_second": 32003074.511198603, + "retransmits": 12, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001418590545654, - "end": 2.0001327991485596, - "seconds": 0.99999094009399414, - "bytes": 3583800, - "bits_per_second": 28670659.753482491, - "retransmits": 95, - "snd_cwnd": 31856, - "rtt": 15067, - "rttvar": 821, + "start": 1.0001099109649658, + "end": 2.0000839233398438, + "seconds": 0.99997401237487793, + "bytes": 3974760, + "bits_per_second": 31798906.378058244, + "retransmits": 0, + "snd_cwnd": 104256, + "rtt": 27586, + "rttvar": 282, "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001418590545654, - "end": 2.0001327991485596, - "seconds": 0.99999094009399414, - "bytes": 3583800, - "bits_per_second": 28670659.753482491, - "retransmits": 95, + "start": 1.0001099109649658, + "end": 2.0000839233398438, + "seconds": 0.99997401237487793, + "bytes": 3974760, + "bits_per_second": 31798906.378058244, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0001327991485596, - "end": 3.0001239776611328, - "seconds": 0.99999117851257324, - "bytes": 3844440, - "bits_per_second": 30755791.311826356, - "retransmits": 40, - "snd_cwnd": 39096, - "rtt": 16263, - "rttvar": 3672, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 2.0001327991485596, - "end": 3.0001239776611328, - "seconds": 0.99999117851257324, - "bytes": 3844440, - "bits_per_second": 30755791.311826356, - "retransmits": 40, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 3.0001239776611328, - "end": 4.00013279914856, - "seconds": 1.0000088214874268, - "bytes": 3779280, - "bits_per_second": 30233973.291384749, - "retransmits": 41, - "snd_cwnd": 30408, - "rtt": 16680, - "rttvar": 4278, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 3.0001239776611328, - "end": 4.00013279914856, - "seconds": 1.0000088214874268, - "bytes": 3779280, - "bits_per_second": 30233973.291384749, - "retransmits": 41, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 4.00013279914856, - "end": 5.0001828670501709, - "seconds": 1.0000500679016113, + "start": 2.0000839233398438, + "end": 3.0000910758972168, + "seconds": 1.000007152557373, "bytes": 3648960, - "bits_per_second": 29190218.507011779, - "retransmits": 30, - "snd_cwnd": 39096, - "rtt": 10061, - "rttvar": 7427, + "bits_per_second": 29191471.206327394, + "retransmits": 1, + "snd_cwnd": 128872, + "rtt": 34092, + "rttvar": 395, "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.00013279914856, - "end": 5.0001828670501709, - "seconds": 1.0000500679016113, + "start": 2.0000839233398438, + "end": 3.0000910758972168, + "seconds": 1.000007152557373, "bytes": 3648960, - "bits_per_second": 29190218.507011779, - "retransmits": 30, + "bits_per_second": 29191471.206327394, + "retransmits": 1, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001828670501709, - "end": 6.000234842300415, - "seconds": 1.0000519752502441, - "bytes": 3583800, - "bits_per_second": 28668909.926232357, - "retransmits": 68, - "snd_cwnd": 36200, - "rtt": 8912, - "rttvar": 13259, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 5.0001828670501709, - "end": 6.000234842300415, - "seconds": 1.0000519752502441, - "bytes": 3583800, - "bits_per_second": 28668909.926232357, - "retransmits": 68, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 6.000234842300415, - "end": 7.000108003616333, - "seconds": 0.999873161315918, - "bytes": 4365720, - "bits_per_second": 34930190.49939768, - "retransmits": 50, - "snd_cwnd": 21720, - "rtt": 8425, - "rttvar": 6881, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 6.000234842300415, - "end": 7.000108003616333, - "seconds": 0.999873161315918, - "bytes": 4365720, - "bits_per_second": 34930190.49939768, - "retransmits": 50, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 7.000108003616333, - "end": 8.00010895729065, - "seconds": 1.0000009536743164, - "bytes": 3583800, - "bits_per_second": 28670372.657801956, - "retransmits": 29, - "snd_cwnd": 30408, - "rtt": 14232, - "rttvar": 1265, - "pmtu": 1500, - "omitted": false - }], - "sum": { - "start": 7.000108003616333, - "end": 8.00010895729065, - "seconds": 1.0000009536743164, - "bytes": 3583800, - "bits_per_second": 28670372.657801956, - "retransmits": 29, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 8.00010895729065, - "end": 9.0001428127288818, - "seconds": 1.0000338554382324, + "start": 3.0000910758972168, + "end": 4.0001668930053711, + "seconds": 1.0000758171081543, "bytes": 3714120, - "bits_per_second": 29711954.088773582, - "retransmits": 46, - "snd_cwnd": 36200, - "rtt": 4218, - "rttvar": 4896, + "bits_per_second": 29710707.420082189, + "retransmits": 0, + "snd_cwnd": 149144, + "rtt": 40202, + "rttvar": 348, "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.00010895729065, - "end": 9.0001428127288818, - "seconds": 1.0000338554382324, + "start": 3.0000910758972168, + "end": 4.0001668930053711, + "seconds": 1.0000758171081543, "bytes": 3714120, - "bits_per_second": 29711954.088773582, - "retransmits": 46, + "bits_per_second": 29710707.420082189, + "retransmits": 0, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0001428127288818, - "end": 10.000146865844727, - "seconds": 1.0000040531158447, - "bytes": 3909600, - "bits_per_second": 31276673.232020155, - "retransmits": 42, - "snd_cwnd": 26064, - "rtt": 9354, - "rttvar": 7744, + "start": 4.0001668930053711, + "end": 5.0000960826873779, + "seconds": 0.99992918968200684, + "bytes": 3974760, + "bits_per_second": 31800331.791606452, + "retransmits": 0, + "snd_cwnd": 167968, + "rtt": 44750, + "rttvar": 355, "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0001428127288818, - "end": 10.000146865844727, - "seconds": 1.0000040531158447, + "start": 4.0001668930053711, + "end": 5.0000960826873779, + "seconds": 0.99992918968200684, + "bytes": 3974760, + "bits_per_second": 31800331.791606452, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0000960826873779, + "end": 6.000108003616333, + "seconds": 1.0000119209289551, + "bytes": 3909600, + "bits_per_second": 31276427.155933905, + "retransmits": 0, + "snd_cwnd": 183896, + "rtt": 49068, + "rttvar": 214, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0000960826873779, + "end": 6.000108003616333, + "seconds": 1.0000119209289551, "bytes": 3909600, - "bits_per_second": 31276673.232020155, - "retransmits": 42, + "bits_per_second": 31276427.155933905, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.000108003616333, + "end": 7.0001440048217773, + "seconds": 1.0000360012054443, + "bytes": 3518640, + "bits_per_second": 28148106.634230193, + "retransmits": 0, + "snd_cwnd": 198376, + "rtt": 53241, + "rttvar": 414, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.000108003616333, + "end": 7.0001440048217773, + "seconds": 1.0000360012054443, + "bytes": 3518640, + "bits_per_second": 28148106.634230193, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001440048217773, + "end": 8.0001330375671387, + "seconds": 0.99998903274536133, + "bytes": 4105080, + "bits_per_second": 32841000.175611515, + "retransmits": 0, + "snd_cwnd": 212856, + "rtt": 56710, + "rttvar": 388, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001440048217773, + "end": 8.0001330375671387, + "seconds": 0.99998903274536133, + "bytes": 4105080, + "bits_per_second": 32841000.175611515, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001330375671387, + "end": 9.00019097328186, + "seconds": 1.0000579357147217, + "bytes": 3453480, + "bits_per_second": 27626239.454072155, + "retransmits": 1, + "snd_cwnd": 253400, + "rtt": 67900, + "rttvar": 283, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001330375671387, + "end": 9.00019097328186, + "seconds": 1.0000579357147217, + "bytes": 3453480, + "bits_per_second": 27626239.454072155, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.00019097328186, + "end": 10.00018310546875, + "seconds": 0.99999213218688965, + "bytes": 4300560, + "bits_per_second": 34404750.69014854, + "retransmits": 0, + "snd_cwnd": 264984, + "rtt": 69404, + "rttvar": 719, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.00019097328186, + "end": 10.00018310546875, + "seconds": 0.99999213218688965, + "bytes": 4300560, + "bits_per_second": 34404750.69014854, + "retransmits": 0, "omitted": false } }], @@ -280,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.000146865844727, - "seconds": 10.000146865844727, - "bytes": 40079192, - "bits_per_second": 32062882.705764703, - "retransmits": 506, - "max_snd_cwnd": 39096, - "max_rtt": 16680, - "min_rtt": 1188, - "mean_rtt": 10440 + "end": 10.00018310546875, + "seconds": 10.00018310546875, + "bytes": 38600784, + "bits_per_second": 30880061.769181471, + "retransmits": 14, + "max_snd_cwnd": 264984, + "max_rtt": 69404, + "min_rtt": 18955, + "mean_rtt": 46190 }, "receiver": { "socket": 5, "start": 0, - "end": 10.049206972122192, - "seconds": 10.000146865844727, - "bytes": 39663616, - "bits_per_second": 31575519.230547868 + "end": 10.112581014633179, + "seconds": 10.00018310546875, + "bytes": 37322200, + "bits_per_second": 29525360.495797276 } }], "sum_sent": { "start": 0, - "end": 10.000146865844727, - "seconds": 10.000146865844727, - "bytes": 40079192, - "bits_per_second": 32062882.705764703, - "retransmits": 506 + "end": 10.00018310546875, + "seconds": 10.00018310546875, + "bytes": 38600784, + "bits_per_second": 30880061.769181471, + "retransmits": 14 }, "sum_received": { "start": 0, - "end": 10.049206972122192, - "seconds": 10.049206972122192, - "bytes": 39663616, - "bits_per_second": 31575519.230547868 + "end": 10.112581014633179, + "seconds": 10.112581014633179, + "bytes": 37322200, + "bits_per_second": 29525360.495797276 }, "cpu_utilization_percent": { - "host_total": 0.61066503217290025, - "host_user": 0.22094612485299917, - "host_system": 0.38973873378480178, - "remote_total": 1.553747934474798, - "remote_user": 0.22852440825176898, - "remote_system": 1.3252864228491534 + "host_total": 0.56671958071612982, + "host_user": 0.2394811766546148, + "host_system": 0.32733753116804049, + "remote_total": 2.1692455055167472, + "remote_user": 0.38978775157797052, + "remote_system": 1.7795014186670204 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/inbound/2p2/3.json b/results/manual/inbound/2p2/3.json new file mode 100644 index 0000000..3999cef --- /dev/null +++ b/results/manual/inbound/2p2/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.1", + "local_port": 50030, + "remote_host": "1.1.1.2", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:18:31 GMT", + "timesecs": 1620965911 + }, + "connecting_to": { + "host": "1.1.1.2", + "port": 5201 + }, + "cookie": "f732quouzjdqhncr5b55nkrccsdnetkpmr5p", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001339912414551, + "seconds": 1.0001339912414551, + "bytes": 4103632, + "bits_per_second": 32824657.783353269, + "retransmits": 10, + "snd_cwnd": 72400, + "rtt": 16030, + "rttvar": 2617, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001339912414551, + "seconds": 1.0001339912414551, + "bytes": 4103632, + "bits_per_second": 32824657.783353269, + "retransmits": 10, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001339912414551, + "end": 2.0001161098480225, + "seconds": 0.99998211860656738, + "bytes": 3779280, + "bits_per_second": 30234780.640007973, + "retransmits": 3, + "snd_cwnd": 99912, + "rtt": 26722, + "rttvar": 306, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001339912414551, + "end": 2.0001161098480225, + "seconds": 0.99998211860656738, + "bytes": 3779280, + "bits_per_second": 30234780.640007973, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001161098480225, + "end": 3.0001049041748047, + "seconds": 0.99998879432678223, + "bytes": 3909600, + "bits_per_second": 31277150.481527478, + "retransmits": 2, + "snd_cwnd": 124528, + "rtt": 32760, + "rttvar": 378, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001161098480225, + "end": 3.0001049041748047, + "seconds": 0.99998879432678223, + "bytes": 3909600, + "bits_per_second": 31277150.481527478, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001049041748047, + "end": 4.0001339912414551, + "seconds": 1.0000290870666504, + "bytes": 3583800, + "bits_per_second": 28669566.086420406, + "retransmits": 2, + "snd_cwnd": 143352, + "rtt": 38477, + "rttvar": 438, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001049041748047, + "end": 4.0001339912414551, + "seconds": 1.0000290870666504, + "bytes": 3583800, + "bits_per_second": 28669566.086420406, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001339912414551, + "end": 5.000114917755127, + "seconds": 0.99998092651367188, + "bytes": 3909600, + "bits_per_second": 31277396.568995837, + "retransmits": 0, + "snd_cwnd": 162176, + "rtt": 43498, + "rttvar": 379, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001339912414551, + "end": 5.000114917755127, + "seconds": 0.99998092651367188, + "bytes": 3909600, + "bits_per_second": 31277396.568995837, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000114917755127, + "end": 6.0000879764556885, + "seconds": 0.99997305870056152, + "bytes": 3779280, + "bits_per_second": 30235054.571658753, + "retransmits": 0, + "snd_cwnd": 179552, + "rtt": 47894, + "rttvar": 377, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000114917755127, + "end": 6.0000879764556885, + "seconds": 0.99997305870056152, + "bytes": 3779280, + "bits_per_second": 30235054.571658753, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0000879764556885, + "end": 7.0001161098480225, + "seconds": 1.000028133392334, + "bytes": 3909600, + "bits_per_second": 31275920.102269158, + "retransmits": 1, + "snd_cwnd": 192584, + "rtt": 51752, + "rttvar": 364, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0000879764556885, + "end": 7.0001161098480225, + "seconds": 1.000028133392334, + "bytes": 3909600, + "bits_per_second": 31275920.102269158, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001161098480225, + "end": 8.00016188621521, + "seconds": 1.0000457763671875, + "bytes": 3453480, + "bits_per_second": 27626575.355742384, + "retransmits": 0, + "snd_cwnd": 207064, + "rtt": 55306, + "rttvar": 369, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001161098480225, + "end": 8.00016188621521, + "seconds": 1.0000457763671875, + "bytes": 3453480, + "bits_per_second": 27626575.355742384, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.00016188621521, + "end": 9.0001471042633057, + "seconds": 0.9999852180480957, + "bytes": 4105080, + "bits_per_second": 32841125.455936972, + "retransmits": 0, + "snd_cwnd": 220096, + "rtt": 59008, + "rttvar": 326, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.00016188621521, + "end": 9.0001471042633057, + "seconds": 0.9999852180480957, + "bytes": 4105080, + "bits_per_second": 32841125.455936972, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001471042633057, + "end": 10.000089883804321, + "seconds": 0.99994277954101562, + "bytes": 3779280, + "bits_per_second": 30235970.11608788, + "retransmits": 0, + "snd_cwnd": 233128, + "rtt": 62629, + "rttvar": 486, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001471042633057, + "end": 10.000089883804321, + "seconds": 0.99994277954101562, + "bytes": 3779280, + "bits_per_second": 30235970.11608788, + "retransmits": 0, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000089883804321, + "seconds": 10.000089883804321, + "bytes": 38312632, + "bits_per_second": 30649830.107666813, + "retransmits": 18, + "max_snd_cwnd": 233128, + "max_rtt": 62629, + "min_rtt": 16030, + "mean_rtt": 43407 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.103171110153198, + "seconds": 10.000089883804321, + "bytes": 37314960, + "bits_per_second": 29547127.010449439 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000089883804321, + "seconds": 10.000089883804321, + "bytes": 38312632, + "bits_per_second": 30649830.107666813, + "retransmits": 18 + }, + "sum_received": { + "start": 0, + "end": 10.103171110153198, + "seconds": 10.103171110153198, + "bytes": 37314960, + "bits_per_second": 29547127.010449439 + }, + "cpu_utilization_percent": { + "host_total": 0.56438449027892168, + "host_user": 0.10875199332403694, + "host_system": 0.45562258608335238, + "remote_total": 0.16868812650315435, + "remote_user": 0.0254334252983185, + "remote_system": 0.14325698954091395 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/inbound/2p2/4.json b/results/manual/inbound/2p2/4.json new file mode 100644 index 0000000..e5afb6b --- /dev/null +++ b/results/manual/inbound/2p2/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.1", + "local_port": 50026, + "remote_host": "1.1.1.2", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:12:41 GMT", + "timesecs": 1620965561 + }, + "connecting_to": { + "host": "1.1.1.2", + "port": 5201 + }, + "cookie": "mo7sdbxyu5m4nzu37ykjrlb5vxbqc5oj23pu", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001161098480225, + "seconds": 1.0001161098480225, + "bytes": 4113768, + "bits_per_second": 32906323.251808256, + "retransmits": 5, + "snd_cwnd": 75296, + "rtt": 19561, + "rttvar": 284, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001161098480225, + "seconds": 1.0001161098480225, + "bytes": 4113768, + "bits_per_second": 32906323.251808256, + "retransmits": 5, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001161098480225, + "end": 2.0001161098480225, + "seconds": 1, + "bytes": 3844440, + "bits_per_second": 30755520, + "retransmits": 9, + "snd_cwnd": 102808, + "rtt": 27852, + "rttvar": 191, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001161098480225, + "end": 2.0001161098480225, + "seconds": 1, + "bytes": 3844440, + "bits_per_second": 30755520, + "retransmits": 9, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001161098480225, + "end": 3.0001261234283447, + "seconds": 1.0000100135803223, + "bytes": 3648960, + "bits_per_second": 29191387.68969465, + "retransmits": 4, + "snd_cwnd": 125976, + "rtt": 33153, + "rttvar": 294, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001161098480225, + "end": 3.0001261234283447, + "seconds": 1.0000100135803223, + "bytes": 3648960, + "bits_per_second": 29191387.68969465, + "retransmits": 4, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001261234283447, + "end": 4.0000920295715332, + "seconds": 0.99996590614318848, + "bytes": 3909600, + "bits_per_second": 31277866.383097835, + "retransmits": 0, + "snd_cwnd": 146248, + "rtt": 39066, + "rttvar": 429, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001261234283447, + "end": 4.0000920295715332, + "seconds": 0.99996590614318848, + "bytes": 3909600, + "bits_per_second": 31277866.383097835, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0000920295715332, + "end": 5.000136137008667, + "seconds": 1.0000441074371338, + "bytes": 3583800, + "bits_per_second": 28669135.47790923, + "retransmits": 1, + "snd_cwnd": 163624, + "rtt": 42642, + "rttvar": 506, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0000920295715332, + "end": 5.000136137008667, + "seconds": 1.0000441074371338, + "bytes": 3583800, + "bits_per_second": 28669135.47790923, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000136137008667, + "end": 6.0001590251922607, + "seconds": 1.0000228881835938, + "bytes": 3844440, + "bits_per_second": 30754816.078123212, + "retransmits": 0, + "snd_cwnd": 181000, + "rtt": 48119, + "rttvar": 415, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000136137008667, + "end": 6.0001590251922607, + "seconds": 1.0000228881835938, + "bytes": 3844440, + "bits_per_second": 30754816.078123212, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001590251922607, + "end": 7.0001161098480225, + "seconds": 0.99995708465576172, + "bytes": 3909600, + "bits_per_second": 31278142.312244464, + "retransmits": 0, + "snd_cwnd": 195480, + "rtt": 52320, + "rttvar": 434, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001590251922607, + "end": 7.0001161098480225, + "seconds": 0.99995708465576172, + "bytes": 3909600, + "bits_per_second": 31278142.312244464, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001161098480225, + "end": 8.0001480579376221, + "seconds": 1.0000319480895996, + "bytes": 3583800, + "bits_per_second": 28669484.064754326, + "retransmits": 1, + "snd_cwnd": 208512, + "rtt": 55532, + "rttvar": 224, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001161098480225, + "end": 8.0001480579376221, + "seconds": 1.0000319480895996, + "bytes": 3583800, + "bits_per_second": 28669484.064754326, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001480579376221, + "end": 9.0001609325408936, + "seconds": 1.0000128746032715, + "bytes": 4105080, + "bits_per_second": 32840217.195232261, + "retransmits": 0, + "snd_cwnd": 222992, + "rtt": 59692, + "rttvar": 469, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001480579376221, + "end": 9.0001609325408936, + "seconds": 1.0000128746032715, + "bytes": 4105080, + "bits_per_second": 32840217.195232261, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001609325408936, + "end": 10.000123023986816, + "seconds": 0.99996209144592285, + "bytes": 3844440, + "bits_per_second": 30756685.941492248, + "retransmits": 0, + "snd_cwnd": 234576, + "rtt": 62820, + "rttvar": 332, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001609325408936, + "end": 10.000123023986816, + "seconds": 0.99996209144592285, + "bytes": 3844440, + "bits_per_second": 30756685.941492248, + "retransmits": 0, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000123023986816, + "seconds": 10.000123023986816, + "bytes": 38387928, + "bits_per_second": 30709964.593772069, + "retransmits": 20, + "max_snd_cwnd": 234576, + "max_rtt": 62820, + "min_rtt": 19561, + "mean_rtt": 44075 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.103817224502563, + "seconds": 10.000123023986816, + "bytes": 37288896, + "bits_per_second": 29524600.591207411 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000123023986816, + "seconds": 10.000123023986816, + "bytes": 38387928, + "bits_per_second": 30709964.593772069, + "retransmits": 20 + }, + "sum_received": { + "start": 0, + "end": 10.103817224502563, + "seconds": 10.103817224502563, + "bytes": 37288896, + "bits_per_second": 29524600.591207411 + }, + "cpu_utilization_percent": { + "host_total": 0.56999920220923628, + "host_user": 0.12613022422875683, + "host_system": 0.44388879886902005, + "remote_total": 0.70569375553359426, + "remote_user": 0.062670130651485093, + "remote_system": 0.643033250151753 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/inbound/bw_decreasing/0.json b/results/manual/inbound/bw_decreasing/0.json new file mode 100644 index 0000000..77c49ff --- /dev/null +++ b/results/manual/inbound/bw_decreasing/0.json @@ -0,0 +1,1528 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.1", + "local_port": 45148, + "remote_host": "1.1.1.2", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 08:08:33 GMT", + "timesecs": 1620979713 + }, + "connecting_to": { + "host": "1.1.1.2", + "port": 5201 + }, + "cookie": "2246keidwyhx4hvklapw3t3z5ooias2qusaq", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 60, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0003530979156494, + "seconds": 1.0003530979156494, + "bytes": 3937112, + "bits_per_second": 31485778.437261205, + "retransmits": 17, + "snd_cwnd": 63712, + "rtt": 16971, + "rttvar": 342, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0003530979156494, + "seconds": 1.0003530979156494, + "bytes": 3937112, + "bits_per_second": 31485778.437261205, + "retransmits": 17, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0003530979156494, + "end": 2.000338077545166, + "seconds": 0.9999849796295166, + "bytes": 3844440, + "bits_per_second": 30755981.966243714, + "retransmits": 0, + "snd_cwnd": 99912, + "rtt": 26287, + "rttvar": 221, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0003530979156494, + "end": 2.000338077545166, + "seconds": 0.9999849796295166, + "bytes": 3844440, + "bits_per_second": 30755981.966243714, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.000338077545166, + "end": 3.0002050399780273, + "seconds": 0.99986696243286133, + "bytes": 3909600, + "bits_per_second": 31280961.543021441, + "retransmits": 0, + "snd_cwnd": 125976, + "rtt": 33972, + "rttvar": 256, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.000338077545166, + "end": 3.0002050399780273, + "seconds": 0.99986696243286133, + "bytes": 3909600, + "bits_per_second": 31280961.543021441, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0002050399780273, + "end": 4.0002100467681885, + "seconds": 1.0000050067901611, + "bytes": 3909600, + "bits_per_second": 31276643.404409528, + "retransmits": 1, + "snd_cwnd": 144800, + "rtt": 38655, + "rttvar": 321, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0002050399780273, + "end": 4.0002100467681885, + "seconds": 1.0000050067901611, + "bytes": 3909600, + "bits_per_second": 31276643.404409528, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0002100467681885, + "end": 5.0002269744873047, + "seconds": 1.0000169277191162, + "bytes": 3583800, + "bits_per_second": 28669914.683737148, + "retransmits": 1, + "snd_cwnd": 162176, + "rtt": 44012, + "rttvar": 1468, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0002100467681885, + "end": 5.0002269744873047, + "seconds": 1.0000169277191162, + "bytes": 3583800, + "bits_per_second": 28669914.683737148, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0002269744873047, + "end": 6.0001170635223389, + "seconds": 0.99989008903503418, + "bytes": 3844440, + "bits_per_second": 30758900.740461674, + "retransmits": 1, + "snd_cwnd": 178104, + "rtt": 47224, + "rttvar": 387, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0002269744873047, + "end": 6.0001170635223389, + "seconds": 0.99989008903503418, + "bytes": 3844440, + "bits_per_second": 30758900.740461674, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001170635223389, + "end": 7.0001859664916992, + "seconds": 1.0000689029693604, + "bytes": 3909600, + "bits_per_second": 31274645.084088016, + "retransmits": 2, + "snd_cwnd": 191136, + "rtt": 51419, + "rttvar": 454, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001170635223389, + "end": 7.0001859664916992, + "seconds": 1.0000689029693604, + "bytes": 3909600, + "bits_per_second": 31274645.084088016, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001859664916992, + "end": 8.0002660751342773, + "seconds": 1.0000801086425781, + "bytes": 3844440, + "bits_per_second": 30753056.414395515, + "retransmits": 1, + "snd_cwnd": 204168, + "rtt": 54675, + "rttvar": 318, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001859664916992, + "end": 8.0002660751342773, + "seconds": 1.0000801086425781, + "bytes": 3844440, + "bits_per_second": 30753056.414395515, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0002660751342773, + "end": 9.0003340244293213, + "seconds": 1.0000679492950439, + "bytes": 3648960, + "bits_per_second": 29189696.580694795, + "retransmits": 2, + "snd_cwnd": 215752, + "rtt": 58125, + "rttvar": 516, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0002660751342773, + "end": 9.0003340244293213, + "seconds": 1.0000679492950439, + "bytes": 3648960, + "bits_per_second": 29189696.580694795, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0003340244293213, + "end": 10.000264167785645, + "seconds": 0.99993014335632324, + "bytes": 3648960, + "bits_per_second": 29193719.375251997, + "retransmits": 1, + "snd_cwnd": 227336, + "rtt": 60820, + "rttvar": 209, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0003340244293213, + "end": 10.000264167785645, + "seconds": 0.99993014335632324, + "bytes": 3648960, + "bits_per_second": 29193719.375251997, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 10.000264167785645, + "end": 11.000130176544189, + "seconds": 0.99986600875854492, + "bytes": 4039920, + "bits_per_second": 32323691.09149776, + "retransmits": 0, + "snd_cwnd": 240368, + "rtt": 64828, + "rttvar": 395, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 10.000264167785645, + "end": 11.000130176544189, + "seconds": 0.99986600875854492, + "bytes": 4039920, + "bits_per_second": 32323691.09149776, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 11.000130176544189, + "end": 12.000277042388916, + "seconds": 1.0001468658447266, + "bytes": 3648960, + "bits_per_second": 29187393.368817523, + "retransmits": 0, + "snd_cwnd": 251952, + "rtt": 67335, + "rttvar": 342, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 11.000130176544189, + "end": 12.000277042388916, + "seconds": 1.0001468658447266, + "bytes": 3648960, + "bits_per_second": 29187393.368817523, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 12.000277042388916, + "end": 13.000488996505737, + "seconds": 1.0002119541168213, + "bytes": 3648960, + "bits_per_second": 29185494.014392186, + "retransmits": 0, + "snd_cwnd": 262088, + "rtt": 70794, + "rttvar": 159, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 12.000277042388916, + "end": 13.000488996505737, + "seconds": 1.0002119541168213, + "bytes": 3648960, + "bits_per_second": 29185494.014392186, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 13.000488996505737, + "end": 14.000105142593384, + "seconds": 0.99961614608764648, + "bytes": 4039920, + "bits_per_second": 32331770.676667556, + "retransmits": 0, + "snd_cwnd": 273672, + "rtt": 72969, + "rttvar": 179, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 13.000488996505737, + "end": 14.000105142593384, + "seconds": 0.99961614608764648, + "bytes": 4039920, + "bits_per_second": 32331770.676667556, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 14.000105142593384, + "end": 15.000224113464355, + "seconds": 1.0001189708709717, + "bytes": 3518640, + "bits_per_second": 28145771.473053683, + "retransmits": 1, + "snd_cwnd": 293944, + "rtt": 78499, + "rttvar": 302, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 14.000105142593384, + "end": 15.000224113464355, + "seconds": 1.0001189708709717, + "bytes": 3518640, + "bits_per_second": 28145771.473053683, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 15.000224113464355, + "end": 16.000667095184326, + "seconds": 1.0004429817199707, + "bytes": 3714120, + "bits_per_second": 29699803.529949512, + "retransmits": 0, + "snd_cwnd": 302632, + "rtt": 81448, + "rttvar": 424, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 15.000224113464355, + "end": 16.000667095184326, + "seconds": 1.0004429817199707, + "bytes": 3714120, + "bits_per_second": 29699803.529949512, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 16.000667095184326, + "end": 17.000202178955078, + "seconds": 0.999535083770752, + "bytes": 3909600, + "bits_per_second": 31291347.855453048, + "retransmits": 0, + "snd_cwnd": 312768, + "rtt": 83703, + "rttvar": 439, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 16.000667095184326, + "end": 17.000202178955078, + "seconds": 0.999535083770752, + "bytes": 3909600, + "bits_per_second": 31291347.855453048, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 17.000202178955078, + "end": 18.000202178955078, + "seconds": 1, + "bytes": 3909600, + "bits_per_second": 31276800, + "retransmits": 0, + "snd_cwnd": 321456, + "rtt": 86129, + "rttvar": 404, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 17.000202178955078, + "end": 18.000202178955078, + "seconds": 1, + "bytes": 3909600, + "bits_per_second": 31276800, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 18.000202178955078, + "end": 19.000540971755981, + "seconds": 1.0003387928009033, + "bytes": 3258000, + "bits_per_second": 26055172.695064619, + "retransmits": 0, + "snd_cwnd": 334488, + "rtt": 89299, + "rttvar": 368, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 18.000202178955078, + "end": 19.000540971755981, + "seconds": 1.0003387928009033, + "bytes": 3258000, + "bits_per_second": 26055172.695064619, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 19.000540971755981, + "end": 20.000230073928833, + "seconds": 0.99968910217285156, + "bytes": 3909600, + "bits_per_second": 31286526.913236346, + "retransmits": 4, + "snd_cwnd": 363448, + "rtt": 185380, + "rttvar": 1603, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 19.000540971755981, + "end": 20.000230073928833, + "seconds": 0.99968910217285156, + "bytes": 3909600, + "bits_per_second": 31286526.913236346, + "retransmits": 4, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 20.000230073928833, + "end": 21.000367164611816, + "seconds": 1.0001370906829834, + "bytes": 2150280, + "bits_per_second": 17199882.056421652, + "retransmits": 60, + "snd_cwnd": 364896, + "rtt": 132081, + "rttvar": 1263, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 20.000230073928833, + "end": 21.000367164611816, + "seconds": 1.0001370906829834, + "bytes": 2150280, + "bits_per_second": 17199882.056421652, + "retransmits": 60, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 21.000367164611816, + "end": 22.000271081924438, + "seconds": 0.99990391731262207, + "bytes": 3127680, + "bits_per_second": 25023844.358214464, + "retransmits": 6, + "snd_cwnd": 367792, + "rtt": 135973, + "rttvar": 1943, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 21.000367164611816, + "end": 22.000271081924438, + "seconds": 0.99990391731262207, + "bytes": 3127680, + "bits_per_second": 25023844.358214464, + "retransmits": 6, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 22.000271081924438, + "end": 23.00039005279541, + "seconds": 1.0001189708709717, + "bytes": 2345760, + "bits_per_second": 18763847.648702454, + "retransmits": 2, + "snd_cwnd": 373584, + "rtt": 133877, + "rttvar": 1177, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 22.000271081924438, + "end": 23.00039005279541, + "seconds": 1.0001189708709717, + "bytes": 2345760, + "bits_per_second": 18763847.648702454, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 23.00039005279541, + "end": 24.000303030014038, + "seconds": 0.99991297721862793, + "bytes": 3127680, + "bits_per_second": 25023617.6248057, + "retransmits": 1, + "snd_cwnd": 377928, + "rtt": 135819, + "rttvar": 1319, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 23.00039005279541, + "end": 24.000303030014038, + "seconds": 0.99991297721862793, + "bytes": 3127680, + "bits_per_second": 25023617.6248057, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 24.000303030014038, + "end": 25.000221967697144, + "seconds": 0.99991893768310547, + "bytes": 3127680, + "bits_per_second": 25023468.460330132, + "retransmits": 3, + "snd_cwnd": 382272, + "rtt": 137014, + "rttvar": 1511, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 24.000303030014038, + "end": 25.000221967697144, + "seconds": 0.99991893768310547, + "bytes": 3127680, + "bits_per_second": 25023468.460330132, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 25.000221967697144, + "end": 26.000543117523193, + "seconds": 1.0003211498260498, + "bytes": 2345760, + "bits_per_second": 18760055.211532131, + "retransmits": 5, + "snd_cwnd": 385168, + "rtt": 139346, + "rttvar": 1557, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 25.000221967697144, + "end": 26.000543117523193, + "seconds": 1.0003211498260498, + "bytes": 2345760, + "bits_per_second": 18760055.211532131, + "retransmits": 5, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 26.000543117523193, + "end": 27.000252962112427, + "seconds": 0.9997098445892334, + "bytes": 3127680, + "bits_per_second": 25028702.213371675, + "retransmits": 2, + "snd_cwnd": 389512, + "rtt": 141643, + "rttvar": 1339, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 26.000543117523193, + "end": 27.000252962112427, + "seconds": 0.9997098445892334, + "bytes": 3127680, + "bits_per_second": 25028702.213371675, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 27.000252962112427, + "end": 28.000380039215088, + "seconds": 1.0001270771026611, + "bytes": 2345760, + "bits_per_second": 18763695.563932519, + "retransmits": 1, + "snd_cwnd": 395304, + "rtt": 138996, + "rttvar": 2657, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 27.000252962112427, + "end": 28.000380039215088, + "seconds": 1.0001270771026611, + "bytes": 2345760, + "bits_per_second": 18763695.563932519, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 28.000380039215088, + "end": 29.000226974487305, + "seconds": 0.9998469352722168, + "bytes": 3258000, + "bits_per_second": 26067990.089806952, + "retransmits": 3, + "snd_cwnd": 398200, + "rtt": 142105, + "rttvar": 1337, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 28.000380039215088, + "end": 29.000226974487305, + "seconds": 0.9998469352722168, + "bytes": 3258000, + "bits_per_second": 26067990.089806952, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 29.000226974487305, + "end": 30.000324010849, + "seconds": 1.0000970363616943, + "bytes": 2541240, + "bits_per_second": 20327947.449938744, + "retransmits": 1, + "snd_cwnd": 402544, + "rtt": 144964, + "rttvar": 1521, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 29.000226974487305, + "end": 30.000324010849, + "seconds": 1.0000970363616943, + "bytes": 2541240, + "bits_per_second": 20327947.449938744, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 30.000324010849, + "end": 31.000415086746216, + "seconds": 1.0000910758972168, + "bytes": 2541240, + "bits_per_second": 20328068.602913305, + "retransmits": 1, + "snd_cwnd": 406888, + "rtt": 145443, + "rttvar": 1420, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 30.000324010849, + "end": 31.000415086746216, + "seconds": 1.0000910758972168, + "bytes": 2541240, + "bits_per_second": 20328068.602913305, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 31.000415086746216, + "end": 32.000194072723389, + "seconds": 0.99977898597717285, + "bytes": 3388320, + "bits_per_second": 27112552.254242823, + "retransmits": 1, + "snd_cwnd": 409784, + "rtt": 147428, + "rttvar": 1386, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 31.000415086746216, + "end": 32.000194072723389, + "seconds": 0.99977898597717285, + "bytes": 3388320, + "bits_per_second": 27112552.254242823, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 32.000194072723389, + "end": 33.000303983688354, + "seconds": 1.0001099109649658, + "bytes": 2541240, + "bits_per_second": 20327685.764442109, + "retransmits": 2, + "snd_cwnd": 412680, + "rtt": 151377, + "rttvar": 922, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 32.000194072723389, + "end": 33.000303983688354, + "seconds": 1.0001099109649658, + "bytes": 2541240, + "bits_per_second": 20327685.764442109, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 33.000303983688354, + "end": 34.000429153442383, + "seconds": 1.0001251697540283, + "bytes": 2541240, + "bits_per_second": 20327375.627392679, + "retransmits": 0, + "snd_cwnd": 418472, + "rtt": 150068, + "rttvar": 1364, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 33.000303983688354, + "end": 34.000429153442383, + "seconds": 1.0001251697540283, + "bytes": 2541240, + "bits_per_second": 20327375.627392679, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 34.000429153442383, + "end": 35.000162124633789, + "seconds": 0.99973297119140625, + "bytes": 3388320, + "bits_per_second": 27113800.165754709, + "retransmits": 1, + "snd_cwnd": 422816, + "rtt": 152413, + "rttvar": 1302, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 34.000429153442383, + "end": 35.000162124633789, + "seconds": 0.99973297119140625, + "bytes": 3388320, + "bits_per_second": 27113800.165754709, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 35.000162124633789, + "end": 36.000238180160522, + "seconds": 1.0000760555267334, + "bytes": 2541240, + "bits_per_second": 20328373.914814275, + "retransmits": 0, + "snd_cwnd": 427160, + "rtt": 153265, + "rttvar": 1566, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 35.000162124633789, + "end": 36.000238180160522, + "seconds": 1.0000760555267334, + "bytes": 2541240, + "bits_per_second": 20328373.914814275, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 36.000238180160522, + "end": 37.000231981277466, + "seconds": 0.99999380111694336, + "bytes": 2671560, + "bits_per_second": 21372612.486325417, + "retransmits": 0, + "snd_cwnd": 432952, + "rtt": 155209, + "rttvar": 1671, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 36.000238180160522, + "end": 37.000231981277466, + "seconds": 0.99999380111694336, + "bytes": 2671560, + "bits_per_second": 21372612.486325417, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 37.000231981277466, + "end": 38.000322103500366, + "seconds": 1.0000901222229004, + "bytes": 2736720, + "bits_per_second": 21891787.063486576, + "retransmits": 2, + "snd_cwnd": 435848, + "rtt": 157119, + "rttvar": 1622, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 37.000231981277466, + "end": 38.000322103500366, + "seconds": 1.0000901222229004, + "bytes": 2736720, + "bits_per_second": 21891787.063486576, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 38.000322103500366, + "end": 39.000372171401978, + "seconds": 1.0000500679016113, + "bytes": 2736720, + "bits_per_second": 21892663.880258832, + "retransmits": 1, + "snd_cwnd": 440192, + "rtt": 158248, + "rttvar": 995, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 38.000322103500366, + "end": 39.000372171401978, + "seconds": 1.0000500679016113, + "bytes": 2736720, + "bits_per_second": 21892663.880258832, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 39.000372171401978, + "end": 40.000375032424927, + "seconds": 1.0000028610229492, + "bytes": 2736720, + "bits_per_second": 21893697.361629404, + "retransmits": 1, + "snd_cwnd": 443088, + "rtt": 159289, + "rttvar": 1667, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 39.000372171401978, + "end": 40.000375032424927, + "seconds": 1.0000028610229492, + "bytes": 2736720, + "bits_per_second": 21893697.361629404, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 40.000375032424927, + "end": 41.000491142272949, + "seconds": 1.0001161098480225, + "bytes": 2736720, + "bits_per_second": 21891218.213980149, + "retransmits": 0, + "snd_cwnd": 448880, + "rtt": 160791, + "rttvar": 1443, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 40.000375032424927, + "end": 41.000491142272949, + "seconds": 1.0001161098480225, + "bytes": 2736720, + "bits_per_second": 21891218.213980149, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 41.000491142272949, + "end": 42.000473976135254, + "seconds": 0.99998283386230469, + "bytes": 2736720, + "bits_per_second": 21894135.837750509, + "retransmits": 0, + "snd_cwnd": 453224, + "rtt": 162376, + "rttvar": 1227, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 41.000491142272949, + "end": 42.000473976135254, + "seconds": 0.99998283386230469, + "bytes": 2736720, + "bits_per_second": 21894135.837750509, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 42.000473976135254, + "end": 43.000475168228149, + "seconds": 1.0000011920928955, + "bytes": 3648960, + "bits_per_second": 29191645.200847149, + "retransmits": 11, + "snd_cwnd": 457568, + "rtt": 122678, + "rttvar": 357, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 42.000473976135254, + "end": 43.000475168228149, + "seconds": 1.0000011920928955, + "bytes": 3648960, + "bits_per_second": 29191645.200847149, + "retransmits": 11, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 43.000475168228149, + "end": 44.000478982925415, + "seconds": 1.0000038146972656, + "bytes": 3714120, + "bits_per_second": 29712846.654485114, + "retransmits": 0, + "snd_cwnd": 463360, + "rtt": 124528, + "rttvar": 275, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 43.000475168228149, + "end": 44.000478982925415, + "seconds": 1.0000038146972656, + "bytes": 3714120, + "bits_per_second": 29712846.654485114, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 44.000478982925415, + "end": 45.000297069549561, + "seconds": 0.99981808662414551, + "bytes": 3909600, + "bits_per_second": 31282490.703489009, + "retransmits": 0, + "snd_cwnd": 469152, + "rtt": 126282, + "rttvar": 158, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 44.000478982925415, + "end": 45.000297069549561, + "seconds": 0.99981808662414551, + "bytes": 3909600, + "bits_per_second": 31282490.703489009, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 45.000297069549561, + "end": 46.000193119049072, + "seconds": 0.99989604949951172, + "bytes": 3909600, + "bits_per_second": 31280051.57701673, + "retransmits": 0, + "snd_cwnd": 477840, + "rtt": 128647, + "rttvar": 179, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 45.000297069549561, + "end": 46.000193119049072, + "seconds": 0.99989604949951172, + "bytes": 3909600, + "bits_per_second": 31280051.57701673, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 46.000193119049072, + "end": 47.000468969345093, + "seconds": 1.0002758502960205, + "bytes": 2997360, + "bits_per_second": 23972267.242984738, + "retransmits": 0, + "snd_cwnd": 503904, + "rtt": 134124, + "rttvar": 276, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 46.000193119049072, + "end": 47.000468969345093, + "seconds": 1.0002758502960205, + "bytes": 2997360, + "bits_per_second": 23972267.242984738, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 47.000468969345093, + "end": 48.000396966934204, + "seconds": 0.99992799758911133, + "bytes": 4235400, + "bits_per_second": 33885639.847763546, + "retransmits": 0, + "snd_cwnd": 545896, + "rtt": 145334, + "rttvar": 298, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 47.000468969345093, + "end": 48.000396966934204, + "seconds": 0.99992799758911133, + "bytes": 4235400, + "bits_per_second": 33885639.847763546, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 48.000396966934204, + "end": 49.000514984130859, + "seconds": 1.0001180171966553, + "bytes": 3453480, + "bits_per_second": 27624579.82453033, + "retransmits": 0, + "snd_cwnd": 603816, + "rtt": 159449, + "rttvar": 414, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 48.000396966934204, + "end": 49.000514984130859, + "seconds": 1.0001180171966553, + "bytes": 3453480, + "bits_per_second": 27624579.82453033, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 49.000514984130859, + "end": 50.000312089920044, + "seconds": 0.99979710578918457, + "bytes": 5090000, + "bits_per_second": 40728263.528886579, + "retransmits": 0, + "snd_cwnd": 684904, + "rtt": 181245, + "rttvar": 255, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 49.000514984130859, + "end": 50.000312089920044, + "seconds": 0.99979710578918457, + "bytes": 5090000, + "bits_per_second": 40728263.528886579, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 50.000312089920044, + "end": 51.00090503692627, + "seconds": 1.0005929470062256, + "bytes": 2621440, + "bits_per_second": 20959092.368926641, + "retransmits": 16, + "snd_cwnd": 360552, + "rtt": 138556, + "rttvar": 240, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 50.000312089920044, + "end": 51.00090503692627, + "seconds": 1.0005929470062256, + "bytes": 2621440, + "bits_per_second": 20959092.368926641, + "retransmits": 16, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 51.00090503692627, + "end": 52.000578165054321, + "seconds": 0.99967312812805176, + "bytes": 3932160, + "bits_per_second": 31467565.862159017, + "retransmits": 0, + "snd_cwnd": 395304, + "rtt": 105607, + "rttvar": 420, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 51.00090503692627, + "end": 52.000578165054321, + "seconds": 0.99967312812805176, + "bytes": 3932160, + "bits_per_second": 31467565.862159017, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 52.000578165054321, + "end": 53.000478982925415, + "seconds": 0.99990081787109375, + "bytes": 3932160, + "bits_per_second": 31460400.309478939, + "retransmits": 0, + "snd_cwnd": 418472, + "rtt": 111980, + "rttvar": 330, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 52.000578165054321, + "end": 53.000478982925415, + "seconds": 0.99990081787109375, + "bytes": 3932160, + "bits_per_second": 31460400.309478939, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 53.000478982925415, + "end": 54.000490188598633, + "seconds": 1.0000112056732178, + "bytes": 3932160, + "bits_per_second": 31456927.503949955, + "retransmits": 0, + "snd_cwnd": 432952, + "rtt": 115997, + "rttvar": 201, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 53.000478982925415, + "end": 54.000490188598633, + "seconds": 1.0000112056732178, + "bytes": 3932160, + "bits_per_second": 31456927.503949955, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 54.000490188598633, + "end": 55.000343084335327, + "seconds": 0.99985289573669434, + "bytes": 3932160, + "bits_per_second": 31461908.180825129, + "retransmits": 0, + "snd_cwnd": 437296, + "rtt": 117544, + "rttvar": 207, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 54.000490188598633, + "end": 55.000343084335327, + "seconds": 0.99985289573669434, + "bytes": 3932160, + "bits_per_second": 31461908.180825129, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 55.000343084335327, + "end": 56.000549077987671, + "seconds": 1.0002059936523438, + "bytes": 3932160, + "bits_per_second": 31450801.334563956, + "retransmits": 0, + "snd_cwnd": 437296, + "rtt": 117470, + "rttvar": 344, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 55.000343084335327, + "end": 56.000549077987671, + "seconds": 1.0002059936523438, + "bytes": 3932160, + "bits_per_second": 31450801.334563956, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 56.000549077987671, + "end": 57.000209093093872, + "seconds": 0.99966001510620117, + "bytes": 3932160, + "bits_per_second": 31467978.63737509, + "retransmits": 0, + "snd_cwnd": 437296, + "rtt": 117514, + "rttvar": 306, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 56.000549077987671, + "end": 57.000209093093872, + "seconds": 0.99966001510620117, + "bytes": 3932160, + "bits_per_second": 31467978.63737509, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 57.000209093093872, + "end": 58.000838994979858, + "seconds": 1.0006299018859863, + "bytes": 2621440, + "bits_per_second": 20958318.315765798, + "retransmits": 0, + "snd_cwnd": 440192, + "rtt": 118383, + "rttvar": 323, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 57.000209093093872, + "end": 58.000838994979858, + "seconds": 1.0006299018859863, + "bytes": 2621440, + "bits_per_second": 20958318.315765798, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 58.000838994979858, + "end": 59.000524997711182, + "seconds": 0.99968600273132324, + "bytes": 3932160, + "bits_per_second": 31467160.602482192, + "retransmits": 0, + "snd_cwnd": 450328, + "rtt": 120846, + "rttvar": 335, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 58.000838994979858, + "end": 59.000524997711182, + "seconds": 0.99968600273132324, + "bytes": 3932160, + "bits_per_second": 31467160.602482192, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 59.000524997711182, + "end": 60.00037407875061, + "seconds": 0.99984908103942871, + "bytes": 3932160, + "bits_per_second": 31462028.216595914, + "retransmits": 0, + "snd_cwnd": 469152, + "rtt": 123002, + "rttvar": 513, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 59.000524997711182, + "end": 60.00037407875061, + "seconds": 0.99984908103942871, + "bytes": 3932160, + "bits_per_second": 31462028.216595914, + "retransmits": 0, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 60.00037407875061, + "seconds": 60.00037407875061, + "bytes": 204131232, + "bits_per_second": 27217327.909599677, + "retransmits": 151, + "max_snd_cwnd": 684904, + "max_rtt": 185380, + "min_rtt": 16971, + "mean_rtt": 114276 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 60.166090965270996, + "seconds": 60.00037407875061, + "bytes": 201371912, + "bits_per_second": 26775468.875481464 + } + }], + "sum_sent": { + "start": 0, + "end": 60.00037407875061, + "seconds": 60.00037407875061, + "bytes": 204131232, + "bits_per_second": 27217327.909599677, + "retransmits": 151 + }, + "sum_received": { + "start": 0, + "end": 60.166090965270996, + "seconds": 60.166090965270996, + "bytes": 201371912, + "bits_per_second": 26775468.875481464 + }, + "cpu_utilization_percent": { + "host_total": 0.16851056748211016, + "host_user": 0.030470960226327178, + "host_system": 0.1380629056415377, + "remote_total": 2.4574523468392719, + "remote_user": 0.39782184891924127, + "remote_system": 2.0596315262714215 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/inbound/bw_increasing/0.json b/results/manual/inbound/bw_increasing/0.json new file mode 100644 index 0000000..ce33950 --- /dev/null +++ b/results/manual/inbound/bw_increasing/0.json @@ -0,0 +1,1528 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.1", + "local_port": 45144, + "remote_host": "1.1.1.2", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-SpeedTest 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 08:06:55 GMT", + "timesecs": 1620979615 + }, + "connecting_to": { + "host": "1.1.1.2", + "port": 5201 + }, + "cookie": "zrbc54banwzg62lkfr7w2ftuma47iljakakb", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 60, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001921653747559, + "seconds": 1.0001921653747559, + "bytes": 2019960, + "bits_per_second": 16156575.265659302, + "retransmits": 20, + "snd_cwnd": 49232, + "rtt": 26436, + "rttvar": 261, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001921653747559, + "seconds": 1.0001921653747559, + "bytes": 2019960, + "bits_per_second": 16156575.265659302, + "retransmits": 20, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001921653747559, + "end": 2.0002470016479492, + "seconds": 1.0000548362731934, + "bytes": 2085120, + "bits_per_second": 16680045.328477491, + "retransmits": 1, + "snd_cwnd": 72400, + "rtt": 38768, + "rttvar": 147, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001921653747559, + "end": 2.0002470016479492, + "seconds": 1.0000548362731934, + "bytes": 2085120, + "bits_per_second": 16680045.328477491, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0002470016479492, + "end": 3.0005102157592773, + "seconds": 1.0002632141113281, + "bytes": 1759320, + "bits_per_second": 14070856.352049669, + "retransmits": 1, + "snd_cwnd": 88328, + "rtt": 46810, + "rttvar": 93, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0002470016479492, + "end": 3.0005102157592773, + "seconds": 1.0002632141113281, + "bytes": 1759320, + "bits_per_second": 14070856.352049669, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0005102157592773, + "end": 4.0001561641693115, + "seconds": 0.99964594841003418, + "bytes": 2150280, + "bits_per_second": 17208332.637530979, + "retransmits": 0, + "snd_cwnd": 104256, + "rtt": 56023, + "rttvar": 795, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0005102157592773, + "end": 4.0001561641693115, + "seconds": 0.99964594841003418, + "bytes": 2150280, + "bits_per_second": 17208332.637530979, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001561641693115, + "end": 5.000338077545166, + "seconds": 1.0001819133758545, + "bytes": 1824480, + "bits_per_second": 14593185.304396806, + "retransmits": 0, + "snd_cwnd": 117288, + "rtt": 62849, + "rttvar": 750, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001561641693115, + "end": 5.000338077545166, + "seconds": 1.0001819133758545, + "bytes": 1824480, + "bits_per_second": 14593185.304396806, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000338077545166, + "end": 6.0004100799560547, + "seconds": 1.0000720024108887, + "bytes": 1824480, + "bits_per_second": 14594789.139995508, + "retransmits": 0, + "snd_cwnd": 128872, + "rtt": 68670, + "rttvar": 147, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000338077545166, + "end": 6.0004100799560547, + "seconds": 1.0000720024108887, + "bytes": 1824480, + "bits_per_second": 14594789.139995508, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0004100799560547, + "end": 7.0010240077972412, + "seconds": 1.0006139278411865, + "bytes": 1824480, + "bits_per_second": 14586884.7053632, + "retransmits": 0, + "snd_cwnd": 140456, + "rtt": 75551, + "rttvar": 1202, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0004100799560547, + "end": 7.0010240077972412, + "seconds": 1.0006139278411865, + "bytes": 1824480, + "bits_per_second": 14586884.7053632, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0010240077972412, + "end": 8.0005431175231934, + "seconds": 0.99951910972595215, + "bytes": 2085120, + "bits_per_second": 16688985.570844743, + "retransmits": 1, + "snd_cwnd": 183896, + "rtt": 95891, + "rttvar": 925, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0010240077972412, + "end": 8.0005431175231934, + "seconds": 0.99951910972595215, + "bytes": 2085120, + "bits_per_second": 16688985.570844743, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0005431175231934, + "end": 9.0002670288085938, + "seconds": 0.99972391128540039, + "bytes": 1954800, + "bits_per_second": 15642718.778120294, + "retransmits": 1, + "snd_cwnd": 189688, + "rtt": 101261, + "rttvar": 251, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0005431175231934, + "end": 9.0002670288085938, + "seconds": 0.99972391128540039, + "bytes": 1954800, + "bits_per_second": 15642718.778120294, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002670288085938, + "end": 10.000290155410767, + "seconds": 1.0000231266021729, + "bytes": 1954800, + "bits_per_second": 15638038.345308425, + "retransmits": 0, + "snd_cwnd": 196928, + "rtt": 104737, + "rttvar": 230, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002670288085938, + "end": 10.000290155410767, + "seconds": 1.0000231266021729, + "bytes": 1954800, + "bits_per_second": 15638038.345308425, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 10.000290155410767, + "end": 11.001020193099976, + "seconds": 1.000730037689209, + "bytes": 1759320, + "bits_per_second": 14064292.536376385, + "retransmits": 0, + "snd_cwnd": 204168, + "rtt": 109172, + "rttvar": 37, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 10.000290155410767, + "end": 11.001020193099976, + "seconds": 1.000730037689209, + "bytes": 1759320, + "bits_per_second": 14064292.536376385, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 11.001020193099976, + "end": 12.000495195388794, + "seconds": 0.99947500228881836, + "bytes": 1824480, + "bits_per_second": 14603506.807649242, + "retransmits": 0, + "snd_cwnd": 211408, + "rtt": 113254, + "rttvar": 840, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 11.001020193099976, + "end": 12.000495195388794, + "seconds": 0.99947500228881836, + "bytes": 1824480, + "bits_per_second": 14603506.807649242, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 12.000495195388794, + "end": 13.000220060348511, + "seconds": 0.9997248649597168, + "bytes": 2345760, + "bits_per_second": 18771244.627146658, + "retransmits": 0, + "snd_cwnd": 237472, + "rtt": 125051, + "rttvar": 419, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 12.000495195388794, + "end": 13.000220060348511, + "seconds": 0.9997248649597168, + "bytes": 2345760, + "bits_per_second": 18771244.627146658, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 13.000220060348511, + "end": 14.000702142715454, + "seconds": 1.0004820823669434, + "bytes": 1629000, + "bits_per_second": 13025720.529815843, + "retransmits": 0, + "snd_cwnd": 279464, + "rtt": 146508, + "rttvar": 175, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 13.000220060348511, + "end": 14.000702142715454, + "seconds": 1.0004820823669434, + "bytes": 1629000, + "bits_per_second": 13025720.529815843, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 14.000702142715454, + "end": 15.000148057937622, + "seconds": 0.999445915222168, + "bytes": 2541240, + "bits_per_second": 20341190.744154315, + "retransmits": 0, + "snd_cwnd": 338832, + "rtt": 175754, + "rttvar": 946, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 14.000702142715454, + "end": 15.000148057937622, + "seconds": 0.999445915222168, + "bytes": 2541240, + "bits_per_second": 20341190.744154315, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 15.000148057937622, + "end": 16.00048303604126, + "seconds": 1.0003349781036377, + "bytes": 1563840, + "bits_per_second": 12506530.586101182, + "retransmits": 0, + "snd_cwnd": 419920, + "rtt": 215181, + "rttvar": 736, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 15.000148057937622, + "end": 16.00048303604126, + "seconds": 1.0003349781036377, + "bytes": 1563840, + "bits_per_second": 12506530.586101182, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 16.00048303604126, + "end": 17.000360012054443, + "seconds": 0.99987697601318359, + "bytes": 2801880, + "bits_per_second": 22417797.926876608, + "retransmits": 0, + "snd_cwnd": 522728, + "rtt": 265067, + "rttvar": 483, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 16.00048303604126, + "end": 17.000360012054443, + "seconds": 0.99987697601318359, + "bytes": 2801880, + "bits_per_second": 22417797.926876608, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 17.000360012054443, + "end": 18.000298023223877, + "seconds": 0.99993801116943359, + "bytes": 2215440, + "bits_per_second": 17724618.728387207, + "retransmits": 1, + "snd_cwnd": 540104, + "rtt": 291269, + "rttvar": 298, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 17.000360012054443, + "end": 18.000298023223877, + "seconds": 0.99993801116943359, + "bytes": 2215440, + "bits_per_second": 17724618.728387207, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 18.000298023223877, + "end": 19.000742197036743, + "seconds": 1.0004441738128662, + "bytes": 1107720, + "bits_per_second": 8857825.585835835, + "retransmits": 0, + "snd_cwnd": 543000, + "rtt": 291791, + "rttvar": 179, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 18.000298023223877, + "end": 19.000742197036743, + "seconds": 1.0004441738128662, + "bytes": 1107720, + "bits_per_second": 8857825.585835835, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 19.000742197036743, + "end": 20.0005362033844, + "seconds": 0.99979400634765625, + "bytes": 2215440, + "bits_per_second": 17727171.684841085, + "retransmits": 22, + "snd_cwnd": 545896, + "rtt": 298604, + "rttvar": 3842, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 19.000742197036743, + "end": 20.0005362033844, + "seconds": 0.99979400634765625, + "bytes": 2215440, + "bits_per_second": 17727171.684841085, + "retransmits": 22, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 20.0005362033844, + "end": 21.000095129013062, + "seconds": 0.99955892562866211, + "bytes": 3323160, + "bits_per_second": 26597011.260020979, + "retransmits": 71, + "snd_cwnd": 545896, + "rtt": 198243, + "rttvar": 1617, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 20.0005362033844, + "end": 21.000095129013062, + "seconds": 0.99955892562866211, + "bytes": 3323160, + "bits_per_second": 26597011.260020979, + "retransmits": 71, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 21.000095129013062, + "end": 22.0003981590271, + "seconds": 1.0003030300140381, + "bytes": 2215440, + "bits_per_second": 17718150.868493591, + "retransmits": 11, + "snd_cwnd": 545896, + "rtt": 197904, + "rttvar": 1609, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 21.000095129013062, + "end": 22.0003981590271, + "seconds": 1.0003030300140381, + "bytes": 2215440, + "bits_per_second": 17718150.868493591, + "retransmits": 11, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 22.0003981590271, + "end": 23.000549077987671, + "seconds": 1.0001509189605713, + "bytes": 2215440, + "bits_per_second": 17720845.588403355, + "retransmits": 7, + "snd_cwnd": 547344, + "rtt": 197507, + "rttvar": 1355, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 22.0003981590271, + "end": 23.000549077987671, + "seconds": 1.0001509189605713, + "bytes": 2215440, + "bits_per_second": 17720845.588403355, + "retransmits": 7, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 23.000549077987671, + "end": 24.000344038009644, + "seconds": 0.99979496002197266, + "bytes": 3323160, + "bits_per_second": 26590732.16313846, + "retransmits": 8, + "snd_cwnd": 547344, + "rtt": 198218, + "rttvar": 1490, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 23.000549077987671, + "end": 24.000344038009644, + "seconds": 0.99979496002197266, + "bytes": 3323160, + "bits_per_second": 26590732.16313846, + "retransmits": 8, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 24.000344038009644, + "end": 25.000171184539795, + "seconds": 0.99982714653015137, + "bytes": 3323160, + "bits_per_second": 26589876.152355779, + "retransmits": 2, + "snd_cwnd": 548792, + "rtt": 197859, + "rttvar": 1162, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 24.000344038009644, + "end": 25.000171184539795, + "seconds": 0.99982714653015137, + "bytes": 3323160, + "bits_per_second": 26589876.152355779, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 25.000171184539795, + "end": 26.000339031219482, + "seconds": 1.0001678466796875, + "bytes": 2215440, + "bits_per_second": 17720545.665247839, + "retransmits": 7, + "snd_cwnd": 548792, + "rtt": 195757, + "rttvar": 2266, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 25.000171184539795, + "end": 26.000339031219482, + "seconds": 1.0001678466796875, + "bytes": 2215440, + "bits_per_second": 17720545.665247839, + "retransmits": 7, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 26.000339031219482, + "end": 27.000137090682983, + "seconds": 0.999798059463501, + "bytes": 3323160, + "bits_per_second": 26590649.730072349, + "retransmits": 4, + "snd_cwnd": 550240, + "rtt": 199955, + "rttvar": 1302, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 26.000339031219482, + "end": 27.000137090682983, + "seconds": 0.999798059463501, + "bytes": 3323160, + "bits_per_second": 26590649.730072349, + "retransmits": 4, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 27.000137090682983, + "end": 28.000436067581177, + "seconds": 1.0002989768981934, + "bytes": 2215440, + "bits_per_second": 17718222.66074739, + "retransmits": 5, + "snd_cwnd": 550240, + "rtt": 199004, + "rttvar": 1801, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 27.000137090682983, + "end": 28.000436067581177, + "seconds": 1.0002989768981934, + "bytes": 2215440, + "bits_per_second": 17718222.66074739, + "retransmits": 5, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 28.000436067581177, + "end": 29.000181198120117, + "seconds": 0.99974513053894043, + "bytes": 3323160, + "bits_per_second": 26592057.503364347, + "retransmits": 6, + "snd_cwnd": 551688, + "rtt": 197591, + "rttvar": 1019, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 28.000436067581177, + "end": 29.000181198120117, + "seconds": 0.99974513053894043, + "bytes": 3323160, + "bits_per_second": 26592057.503364347, + "retransmits": 6, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 29.000181198120117, + "end": 30.000405073165894, + "seconds": 1.0002238750457764, + "bytes": 2215440, + "bits_per_second": 17719553.034253322, + "retransmits": 2, + "snd_cwnd": 554584, + "rtt": 199741, + "rttvar": 1469, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 29.000181198120117, + "end": 30.000405073165894, + "seconds": 1.0002238750457764, + "bytes": 2215440, + "bits_per_second": 17719553.034253322, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 30.000405073165894, + "end": 31.000163078308105, + "seconds": 0.99975800514221191, + "bytes": 3323160, + "bits_per_second": 26591715.058303874, + "retransmits": 5, + "snd_cwnd": 556032, + "rtt": 200289, + "rttvar": 1442, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 30.000405073165894, + "end": 31.000163078308105, + "seconds": 0.99975800514221191, + "bytes": 3323160, + "bits_per_second": 26591715.058303874, + "retransmits": 5, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 31.000163078308105, + "end": 32.000394105911255, + "seconds": 1.0002310276031494, + "bytes": 2215440, + "bits_per_second": 17719426.323407322, + "retransmits": 1, + "snd_cwnd": 558928, + "rtt": 200593, + "rttvar": 1465, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 31.000163078308105, + "end": 32.000394105911255, + "seconds": 1.0002310276031494, + "bytes": 2215440, + "bits_per_second": 17719426.323407322, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 32.000394105911255, + "end": 33.000213146209717, + "seconds": 0.99981904029846191, + "bytes": 3323160, + "bits_per_second": 26590091.735064246, + "retransmits": 1, + "snd_cwnd": 561824, + "rtt": 201445, + "rttvar": 1456, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 32.000394105911255, + "end": 33.000213146209717, + "seconds": 0.99981904029846191, + "bytes": 3323160, + "bits_per_second": 26590091.735064246, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 33.000213146209717, + "end": 34.000380039215088, + "seconds": 1.0001668930053711, + "bytes": 2345760, + "bits_per_second": 18762948.595119338, + "retransmits": 1, + "snd_cwnd": 564720, + "rtt": 200967, + "rttvar": 2221, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 33.000213146209717, + "end": 34.000380039215088, + "seconds": 1.0001668930053711, + "bytes": 2345760, + "bits_per_second": 18762948.595119338, + "retransmits": 1, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 34.000380039215088, + "end": 35.000537157058716, + "seconds": 1.0001571178436279, + "bytes": 2345760, + "bits_per_second": 18763131.977164041, + "retransmits": 2, + "snd_cwnd": 567616, + "rtt": 204118, + "rttvar": 1508, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 34.000380039215088, + "end": 35.000537157058716, + "seconds": 1.0001571178436279, + "bytes": 2345760, + "bits_per_second": 18763131.977164041, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 35.000537157058716, + "end": 36.0002601146698, + "seconds": 0.999722957611084, + "bytes": 3518640, + "bits_per_second": 28156920.660564322, + "retransmits": 0, + "snd_cwnd": 570512, + "rtt": 205422, + "rttvar": 1178, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 35.000537157058716, + "end": 36.0002601146698, + "seconds": 0.999722957611084, + "bytes": 3518640, + "bits_per_second": 28156920.660564322, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 36.0002601146698, + "end": 37.000463008880615, + "seconds": 1.0002028942108154, + "bytes": 2345760, + "bits_per_second": 18762273.243377183, + "retransmits": 2, + "snd_cwnd": 573408, + "rtt": 206601, + "rttvar": 1595, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 36.0002601146698, + "end": 37.000463008880615, + "seconds": 1.0002028942108154, + "bytes": 2345760, + "bits_per_second": 18762273.243377183, + "retransmits": 2, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 37.000463008880615, + "end": 38.000093221664429, + "seconds": 0.99963021278381348, + "bytes": 3518640, + "bits_per_second": 28159533.035330247, + "retransmits": 0, + "snd_cwnd": 577752, + "rtt": 206834, + "rttvar": 1578, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 37.000463008880615, + "end": 38.000093221664429, + "seconds": 0.99963021278381348, + "bytes": 3518640, + "bits_per_second": 28159533.035330247, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 38.000093221664429, + "end": 39.000349998474121, + "seconds": 1.0002567768096924, + "bytes": 2345760, + "bits_per_second": 18761262.542858444, + "retransmits": 0, + "snd_cwnd": 580648, + "rtt": 208735, + "rttvar": 1314, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 38.000093221664429, + "end": 39.000349998474121, + "seconds": 1.0002567768096924, + "bytes": 2345760, + "bits_per_second": 18761262.542858444, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 39.000349998474121, + "end": 40.000493049621582, + "seconds": 1.0001430511474609, + "bytes": 2345760, + "bits_per_second": 18763395.874689862, + "retransmits": 0, + "snd_cwnd": 589336, + "rtt": 208233, + "rttvar": 1084, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 39.000349998474121, + "end": 40.000493049621582, + "seconds": 1.0001430511474609, + "bytes": 2345760, + "bits_per_second": 18763395.874689862, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 40.000493049621582, + "end": 41.000223159790039, + "seconds": 0.999730110168457, + "bytes": 3648960, + "bits_per_second": 29199560.664508872, + "retransmits": 3, + "snd_cwnd": 602368, + "rtt": 217668, + "rttvar": 1362, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 40.000493049621582, + "end": 41.000223159790039, + "seconds": 0.999730110168457, + "bytes": 3648960, + "bits_per_second": 29199560.664508872, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 41.000223159790039, + "end": 42.00108814239502, + "seconds": 1.0008649826049805, + "bytes": 1238040, + "bits_per_second": 9895760.339443326, + "retransmits": 35, + "snd_cwnd": 603816, + "rtt": 311786, + "rttvar": 2936, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 41.000223159790039, + "end": 42.00108814239502, + "seconds": 1.0008649826049805, + "bytes": 1238040, + "bits_per_second": 9895760.339443326, + "retransmits": 35, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 42.00108814239502, + "end": 43.000758171081543, + "seconds": 0.99967002868652344, + "bytes": 2476080, + "bits_per_second": 19815178.44045677, + "retransmits": 0, + "snd_cwnd": 605264, + "rtt": 326109, + "rttvar": 106, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 42.00108814239502, + "end": 43.000758171081543, + "seconds": 0.99967002868652344, + "bytes": 2476080, + "bits_per_second": 19815178.44045677, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 43.000758171081543, + "end": 44.001633167266846, + "seconds": 1.0008749961853027, + "bytes": 1238040, + "bits_per_second": 9895661.3340816312, + "retransmits": 0, + "snd_cwnd": 609608, + "rtt": 327536, + "rttvar": 99, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 43.000758171081543, + "end": 44.001633167266846, + "seconds": 1.0008749961853027, + "bytes": 1238040, + "bits_per_second": 9895661.3340816312, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 44.001633167266846, + "end": 45.000609159469604, + "seconds": 0.99897599220275879, + "bytes": 2476080, + "bits_per_second": 19828944.994285215, + "retransmits": 0, + "snd_cwnd": 618296, + "rtt": 330970, + "rttvar": 175, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 44.001633167266846, + "end": 45.000609159469604, + "seconds": 0.99897599220275879, + "bytes": 2476080, + "bits_per_second": 19828944.994285215, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 45.000609159469604, + "end": 46.000739097595215, + "seconds": 1.0001299381256104, + "bytes": 1238040, + "bits_per_second": 9903033.2184257414, + "retransmits": 0, + "snd_cwnd": 638568, + "rtt": 339096, + "rttvar": 567, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 45.000609159469604, + "end": 46.000739097595215, + "seconds": 1.0001299381256104, + "bytes": 1238040, + "bits_per_second": 9903033.2184257414, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 46.000739097595215, + "end": 47.000483989715576, + "seconds": 0.99974489212036133, + "bytes": 2606400, + "bits_per_second": 20856520.662762918, + "retransmits": 0, + "snd_cwnd": 671872, + "rtt": 354505, + "rttvar": 618, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 46.000739097595215, + "end": 47.000483989715576, + "seconds": 0.99974489212036133, + "bytes": 2606400, + "bits_per_second": 20856520.662762918, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 47.000483989715576, + "end": 48.000863075256348, + "seconds": 1.0003790855407715, + "bytes": 1310720, + "bits_per_second": 10481786.50629401, + "retransmits": 0, + "snd_cwnd": 721104, + "rtt": 377495, + "rttvar": 651, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 47.000483989715576, + "end": 48.000863075256348, + "seconds": 1.0003790855407715, + "bytes": 1310720, + "bits_per_second": 10481786.50629401, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 48.000863075256348, + "end": 49.000325202941895, + "seconds": 0.99946212768554688, + "bytes": 2621440, + "bits_per_second": 20982806.070464842, + "retransmits": 15, + "snd_cwnd": 516936, + "rtt": 277788, + "rttvar": 347, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 48.000863075256348, + "end": 49.000325202941895, + "seconds": 0.99946212768554688, + "bytes": 2621440, + "bits_per_second": 20982806.070464842, + "retransmits": 15, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 49.000325202941895, + "end": 50.00090217590332, + "seconds": 1.0005769729614258, + "bytes": 1310720, + "bits_per_second": 10479713.488673545, + "retransmits": 0, + "snd_cwnd": 579200, + "rtt": 299147, + "rttvar": 320, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 49.000325202941895, + "end": 50.00090217590332, + "seconds": 1.0005769729614258, + "bytes": 1310720, + "bits_per_second": 10479713.488673545, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 50.00090217590332, + "end": 51.000515222549438, + "seconds": 0.99961304664611816, + "bytes": 2621440, + "bits_per_second": 20979638.141342018, + "retransmits": 0, + "snd_cwnd": 638568, + "rtt": 334469, + "rttvar": 674, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 50.00090217590332, + "end": 51.000515222549438, + "seconds": 0.99961304664611816, + "bytes": 2621440, + "bits_per_second": 20979638.141342018, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 51.000515222549438, + "end": 52.000858068466187, + "seconds": 1.000342845916748, + "bytes": 1310720, + "bits_per_second": 10482166.232108647, + "retransmits": 0, + "snd_cwnd": 682008, + "rtt": 359802, + "rttvar": 675, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 51.000515222549438, + "end": 52.000858068466187, + "seconds": 1.000342845916748, + "bytes": 1310720, + "bits_per_second": 10482166.232108647, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 52.000858068466187, + "end": 53.000456094741821, + "seconds": 0.99959802627563477, + "bytes": 2621440, + "bits_per_second": 20979953.390001189, + "retransmits": 0, + "snd_cwnd": 710968, + "rtt": 378115, + "rttvar": 610, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 52.000858068466187, + "end": 53.000456094741821, + "seconds": 0.99959802627563477, + "bytes": 2621440, + "bits_per_second": 20979953.390001189, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 53.000456094741821, + "end": 54.000795125961304, + "seconds": 1.0003390312194824, + "bytes": 1310720, + "bits_per_second": 10482206.204847503, + "retransmits": 3, + "snd_cwnd": 543000, + "rtt": 385674, + "rttvar": 154, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 53.000456094741821, + "end": 54.000795125961304, + "seconds": 1.0003390312194824, + "bytes": 1310720, + "bits_per_second": 10482206.204847503, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 54.000795125961304, + "end": 55.0008270740509, + "seconds": 1.0000319480895996, + "bytes": 1310720, + "bits_per_second": 10485425.010702267, + "retransmits": 3, + "snd_cwnd": 528520, + "rtt": 277706, + "rttvar": 73, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 54.000795125961304, + "end": 55.0008270740509, + "seconds": 1.0000319480895996, + "bytes": 1310720, + "bits_per_second": 10485425.010702267, + "retransmits": 3, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 55.0008270740509, + "end": 56.000821113586426, + "seconds": 0.99999403953552246, + "bytes": 2621440, + "bits_per_second": 20971645.000745062, + "retransmits": 0, + "snd_cwnd": 567616, + "rtt": 299988, + "rttvar": 322, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 55.0008270740509, + "end": 56.000821113586426, + "seconds": 0.99999403953552246, + "bytes": 2621440, + "bits_per_second": 20971645.000745062, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 56.000821113586426, + "end": 57.001172065734863, + "seconds": 1.0003509521484375, + "bytes": 1310720, + "bits_per_second": 10482081.291050809, + "retransmits": 0, + "snd_cwnd": 593680, + "rtt": 316237, + "rttvar": 240, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 56.000821113586426, + "end": 57.001172065734863, + "seconds": 1.0003509521484375, + "bytes": 1310720, + "bits_per_second": 10482081.291050809, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 57.001172065734863, + "end": 58.00049614906311, + "seconds": 0.99932408332824707, + "bytes": 2621440, + "bits_per_second": 20985704.58759924, + "retransmits": 0, + "snd_cwnd": 608160, + "rtt": 325162, + "rttvar": 670, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 57.001172065734863, + "end": 58.00049614906311, + "seconds": 0.99932408332824707, + "bytes": 2621440, + "bits_per_second": 20985704.58759924, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 58.00049614906311, + "end": 59.0011351108551, + "seconds": 1.0006389617919922, + "bytes": 1310720, + "bits_per_second": 10479064.278310329, + "retransmits": 0, + "snd_cwnd": 613952, + "rtt": 329714, + "rttvar": 355, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 58.00049614906311, + "end": 59.0011351108551, + "seconds": 1.0006389617919922, + "bytes": 1310720, + "bits_per_second": 10479064.278310329, + "retransmits": 0, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 59.0011351108551, + "end": 60.000243186950684, + "seconds": 0.999108076095581, + "bytes": 2621440, + "bits_per_second": 20990241.698330272, + "retransmits": 0, + "snd_cwnd": 615400, + "rtt": 331527, + "rttvar": 834, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 59.0011351108551, + "end": 60.000243186950684, + "seconds": 0.999108076095581, + "bytes": 2621440, + "bits_per_second": 20990241.698330272, + "retransmits": 0, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 60.000243186950684, + "seconds": 60.000243186950684, + "bytes": 134633120, + "bits_per_second": 17951009.909143977, + "retransmits": 241, + "max_snd_cwnd": 721104, + "max_rtt": 385674, + "min_rtt": 26436, + "mean_rtt": 220569 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 60.370160818099976, + "seconds": 60.000243186950684, + "bytes": 131471160, + "bits_per_second": 17422005.602553606 + } + }], + "sum_sent": { + "start": 0, + "end": 60.000243186950684, + "seconds": 60.000243186950684, + "bytes": 134633120, + "bits_per_second": 17951009.909143977, + "retransmits": 241 + }, + "sum_received": { + "start": 0, + "end": 60.370160818099976, + "seconds": 60.370160818099976, + "bytes": 131471160, + "bits_per_second": 17422005.602553606 + }, + "cpu_utilization_percent": { + "host_total": 0.13389990967605836, + "host_user": 0.022927975535149466, + "host_system": 0.11100854700740907, + "remote_total": 0.18932595988551884, + "remote_user": 0.027353231732747132, + "remote_system": 0.16197438125937516 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/1p1/0.json b/results/manual/outbound/1p1/0.json index 8d8e954..f126074 100644 --- a/results/manual/outbound/1p1/0.json +++ b/results/manual/outbound/1p1/0.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42798, + "local_port": 54404, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:37:43 GMT", - "timesecs": 1616344663 + "time": "Fri, 14 May 2021 03:48:31 GMT", + "timesecs": 1620964111 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "o6blacxanyqg5c4lhencva6rnz7llhsdh6gi", + "cookie": "2c22gpn7c7fwqacp6q4g2zpyffqtjwsfulpa", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001389980316162, - "seconds": 1.0001389980316162, - "bytes": 1914256, - "bits_per_second": 15311919.673305145, + "end": 1.0001940727233887, + "seconds": 1.0001940727233887, + "bytes": 4129696, + "bits_per_second": 33031157.55329695, + "retransmits": 60, + "snd_cwnd": 21720, + "rtt": 17792, + "rttvar": 8126, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001389980316162, - "seconds": 1.0001389980316162, - "bytes": 1914256, - "bits_per_second": 15311919.673305145, + "end": 1.0001940727233887, + "seconds": 1.0001940727233887, + "bytes": 4129696, + "bits_per_second": 33031157.55329695, + "retransmits": 60, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001389980316162, - "end": 2.0001509189605713, - "seconds": 1.0000119209289551, - "bytes": 1847648, - "bits_per_second": 14781007.796656171, + "start": 1.0001940727233887, + "end": 2.0002560615539551, + "seconds": 1.0000619888305664, + "bytes": 1824480, + "bits_per_second": 14594935.277029984, + "retransmits": 64, + "snd_cwnd": 20272, + "rtt": 21374, + "rttvar": 6537, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001389980316162, - "end": 2.0001509189605713, - "seconds": 1.0000119209289551, - "bytes": 1847648, - "bits_per_second": 14781007.796656171, + "start": 1.0001940727233887, + "end": 2.0002560615539551, + "seconds": 1.0000619888305664, + "bytes": 1824480, + "bits_per_second": 14594935.277029984, + "retransmits": 64, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0001509189605713, - "end": 3.0000901222229004, - "seconds": 0.9999392032623291, - "bytes": 1843304, - "bits_per_second": 14747328.5894676, + "start": 2.0002560615539551, + "end": 3.0001111030578613, + "seconds": 0.99985504150390625, + "bytes": 2085120, + "bits_per_second": 16683378.397442257, + "retransmits": 80, + "snd_cwnd": 11584, + "rtt": 1337, + "rttvar": 964, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0001509189605713, - "end": 3.0000901222229004, - "seconds": 0.9999392032623291, - "bytes": 1843304, - "bits_per_second": 14747328.5894676, + "start": 2.0002560615539551, + "end": 3.0001111030578613, + "seconds": 0.99985504150390625, + "bytes": 2085120, + "bits_per_second": 16683378.397442257, + "retransmits": 80, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0000901222229004, - "end": 4.0001139640808105, - "seconds": 1.0000238418579102, - "bytes": 1846200, - "bits_per_second": 14769247.873690756, + "start": 3.0001111030578613, + "end": 4.00025200843811, + "seconds": 1.000140905380249, + "bytes": 1563840, + "bits_per_second": 12508957.420598133, + "retransmits": 81, + "snd_cwnd": 14480, + "rtt": 5448, + "rttvar": 7874, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0000901222229004, - "end": 4.0001139640808105, - "seconds": 1.0000238418579102, - "bytes": 1846200, - "bits_per_second": 14769247.873690756, + "start": 3.0001111030578613, + "end": 4.00025200843811, + "seconds": 1.000140905380249, + "bytes": 1563840, + "bits_per_second": 12508957.420598133, + "retransmits": 81, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001139640808105, - "end": 5.0001890659332275, - "seconds": 1.000075101852417, - "bytes": 1846200, - "bits_per_second": 14768490.858979087, + "start": 4.00025200843811, + "end": 5.0001370906829834, + "seconds": 0.999885082244873, + "bytes": 2085120, + "bits_per_second": 16682877.158792147, + "retransmits": 54, + "snd_cwnd": 13032, + "rtt": 6624, + "rttvar": 5966, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001139640808105, - "end": 5.0001890659332275, - "seconds": 1.000075101852417, - "bytes": 1846200, - "bits_per_second": 14768490.858979087, + "start": 4.00025200843811, + "end": 5.0001370906829834, + "seconds": 0.999885082244873, + "bytes": 2085120, + "bits_per_second": 16682877.158792147, + "retransmits": 54, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001890659332275, - "end": 6.0001339912414551, - "seconds": 0.99994492530822754, - "bytes": 1847648, - "bits_per_second": 14781998.113989908, + "start": 5.0001370906829834, + "end": 6.0001420974731445, + "seconds": 1.0000050067901611, + "bytes": 1824480, + "bits_per_second": 14595766.922057781, + "retransmits": 38, + "snd_cwnd": 24616, + "rtt": 15857, + "rttvar": 9049, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001890659332275, - "end": 6.0001339912414551, - "seconds": 0.99994492530822754, - "bytes": 1847648, - "bits_per_second": 14781998.113989908, + "start": 5.0001370906829834, + "end": 6.0001420974731445, + "seconds": 1.0000050067901611, + "bytes": 1824480, + "bits_per_second": 14595766.922057781, + "retransmits": 38, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001339912414551, - "end": 7.0000960826873779, - "seconds": 0.99996209144592285, - "bytes": 1844752, - "bits_per_second": 14758575.476256544, + "start": 6.0001420974731445, + "end": 7.0003020763397217, + "seconds": 1.0001599788665771, + "bytes": 1563840, + "bits_per_second": 12508718.869332952, + "retransmits": 65, + "snd_cwnd": 10136, + "rtt": 1796, + "rttvar": 1754, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001339912414551, - "end": 7.0000960826873779, - "seconds": 0.99996209144592285, - "bytes": 1844752, - "bits_per_second": 14758575.476256544, + "start": 6.0001420974731445, + "end": 7.0003020763397217, + "seconds": 1.0001599788665771, + "bytes": 1563840, + "bits_per_second": 12508718.869332952, + "retransmits": 65, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0000960826873779, - "end": 8.0000920295715332, - "seconds": 0.99999594688415527, - "bytes": 1846200, - "bits_per_second": 14769659.863142412, + "start": 7.0003020763397217, + "end": 8.0001161098480225, + "seconds": 0.99981403350830078, + "bytes": 1954800, + "bits_per_second": 15641308.759315554, + "retransmits": 55, + "snd_cwnd": 17376, + "rtt": 6915, + "rttvar": 8800, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0000960826873779, - "end": 8.0000920295715332, - "seconds": 0.99999594688415527, - "bytes": 1846200, - "bits_per_second": 14769659.863142412, + "start": 7.0003020763397217, + "end": 8.0001161098480225, + "seconds": 0.99981403350830078, + "bytes": 1954800, + "bits_per_second": 15641308.759315554, + "retransmits": 55, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0000920295715332, - "end": 9.0001389980316162, - "seconds": 1.000046968460083, - "bytes": 1838960, - "bits_per_second": 14710989.04749814, + "start": 8.0001161098480225, + "end": 9.0002779960632324, + "seconds": 1.00016188621521, + "bytes": 1889640, + "bits_per_second": 15114673.142770782, + "retransmits": 63, + "snd_cwnd": 17376, + "rtt": 17821, + "rttvar": 3693, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0000920295715332, - "end": 9.0001389980316162, - "seconds": 1.000046968460083, - "bytes": 1838960, - "bits_per_second": 14710989.04749814, + "start": 8.0001161098480225, + "end": 9.0002779960632324, + "seconds": 1.00016188621521, + "bytes": 1889640, + "bits_per_second": 15114673.142770782, + "retransmits": 63, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0001389980316162, - "end": 10.000092029571533, - "seconds": 0.999953031539917, - "bytes": 1847648, - "bits_per_second": 14781878.282060042, + "start": 9.0002779960632324, + "end": 10.000194072723389, + "seconds": 0.99991607666015625, + "bytes": 1824480, + "bits_per_second": 14597065.034449607, + "retransmits": 41, + "snd_cwnd": 20272, + "rtt": 11245, + "rttvar": 15091, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0001389980316162, - "end": 10.000092029571533, - "seconds": 0.999953031539917, - "bytes": 1847648, - "bits_per_second": 14781878.282060042, + "start": 9.0002779960632324, + "end": 10.000194072723389, + "seconds": 0.99991607666015625, + "bytes": 1824480, + "bits_per_second": 14597065.034449607, + "retransmits": 41, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.04088306427002, - "seconds": 10.04088306427002, - "bytes": 19297496, - "bits_per_second": 15375138.522362977, - "retransmits": 16, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.000194072723389, + "seconds": 10.000194072723389, + "bytes": 20745496, + "bits_per_second": 16596074.71545824, + "retransmits": 601, + "max_snd_cwnd": 24616, + "max_rtt": 21374, + "min_rtt": 1337, + "mean_rtt": 10620 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000092029571533, - "seconds": 10.000092029571533, - "bytes": 18522816, - "bits_per_second": 14818116.429509407 + "end": 10.112409114837646, + "seconds": 10.000194072723389, + "bytes": 20247384, + "bits_per_second": 16017851.944135921 } }], "sum_sent": { "start": 0, - "end": 10.04088306427002, - "seconds": 10.04088306427002, - "bytes": 19297496, - "bits_per_second": 15375138.522362977, - "retransmits": 16 + "end": 10.000194072723389, + "seconds": 10.000194072723389, + "bytes": 20745496, + "bits_per_second": 16596074.71545824, + "retransmits": 601 }, "sum_received": { "start": 0, - "end": 10.000092029571533, - "seconds": 10.000092029571533, - "bytes": 18522816, - "bits_per_second": 14818116.429509407 + "end": 10.112409114837646, + "seconds": 10.112409114837646, + "bytes": 20247384, + "bits_per_second": 16017851.944135921 }, "cpu_utilization_percent": { - "host_total": 4.7053223224632994, - "host_user": 0.45319093455590292, - "host_system": 4.2521313879073954, - "remote_total": 0.063178155600749727, - "remote_user": 0, - "remote_system": 0.063271706670247382 + "host_total": 0.50741242858100177, + "host_user": 0.0938771480221562, + "host_system": 0.41353528055884564, + "remote_total": 0.034620645265632986, + "remote_user": 0.006862387039658694, + "remote_system": 0.027760130330688297 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/1p1/1.json b/results/manual/outbound/1p1/1.json index a8c4640..e5b53d7 100644 --- a/results/manual/outbound/1p1/1.json +++ b/results/manual/outbound/1p1/1.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42794, + "local_port": 54412, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:37:26 GMT", - "timesecs": 1616344646 + "time": "Fri, 14 May 2021 03:49:02 GMT", + "timesecs": 1620964142 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "44qvipazua2z2xe2w65bs5m6ism4ksruis4b", + "cookie": "5ue5ryd3t455sgb4nfdsyzs73wpwpcwldftq", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001378059387207, - "seconds": 1.0001378059387207, - "bytes": 1889640, - "bits_per_second": 15115037.058129406, + "end": 1.0001850128173828, + "seconds": 1.0001850128173828, + "bytes": 3819824, + "bits_per_second": 30552939.314618077, + "retransmits": 96, + "snd_cwnd": 11584, + "rtt": 9617, + "rttvar": 7331, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001378059387207, - "seconds": 1.0001378059387207, + "end": 1.0001850128173828, + "seconds": 1.0001850128173828, + "bytes": 3819824, + "bits_per_second": 30552939.314618077, + "retransmits": 96, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001850128173828, + "end": 2.0001339912414551, + "seconds": 0.99994897842407227, + "bytes": 1954800, + "bits_per_second": 15639197.936524967, + "retransmits": 67, + "snd_cwnd": 28960, + "rtt": 9710, + "rttvar": 3094, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001850128173828, + "end": 2.0001339912414551, + "seconds": 0.99994897842407227, + "bytes": 1954800, + "bits_per_second": 15639197.936524967, + "retransmits": 67, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001339912414551, + "end": 3.0001189708709717, + "seconds": 0.9999849796295166, + "bytes": 1694160, + "bits_per_second": 13553483.578344688, + "retransmits": 58, + "snd_cwnd": 18824, + "rtt": 18469, + "rttvar": 1438, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001339912414551, + "end": 3.0001189708709717, + "seconds": 0.9999849796295166, + "bytes": 1694160, + "bits_per_second": 13553483.578344688, + "retransmits": 58, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001189708709717, + "end": 4.0001418590545654, + "seconds": 1.0000228881835938, + "bytes": 1824480, + "bits_per_second": 14595505.935380507, + "retransmits": 66, + "snd_cwnd": 21720, + "rtt": 17125, + "rttvar": 3515, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001189708709717, + "end": 4.0001418590545654, + "seconds": 1.0000228881835938, + "bytes": 1824480, + "bits_per_second": 14595505.935380507, + "retransmits": 66, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001418590545654, + "end": 5.0001118183135986, + "seconds": 0.9999699592590332, + "bytes": 1954800, + "bits_per_second": 15638869.803236773, + "retransmits": 79, + "snd_cwnd": 10136, + "rtt": 7128, + "rttvar": 7716, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001418590545654, + "end": 5.0001118183135986, + "seconds": 0.9999699592590332, + "bytes": 1954800, + "bits_per_second": 15638869.803236773, + "retransmits": 79, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001118183135986, + "end": 6.0001599788665771, + "seconds": 1.0000481605529785, + "bytes": 1694160, + "bits_per_second": 13552627.297975019, + "retransmits": 112, + "snd_cwnd": 8688, + "rtt": 880, + "rttvar": 86, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001118183135986, + "end": 6.0001599788665771, + "seconds": 1.0000481605529785, + "bytes": 1694160, + "bits_per_second": 13552627.297975019, + "retransmits": 112, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001599788665771, + "end": 7.0001640319824219, + "seconds": 1.0000040531158447, + "bytes": 1889640, + "bits_per_second": 15117058.72880974, + "retransmits": 113, + "snd_cwnd": 15928, + "rtt": 7210, + "rttvar": 11666, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001599788665771, + "end": 7.0001640319824219, + "seconds": 1.0000040531158447, "bytes": 1889640, - "bits_per_second": 15115037.058129406, + "bits_per_second": 15117058.72880974, + "retransmits": 113, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001378059387207, - "end": 2.0001349449157715, - "seconds": 0.99999713897705078, - "bytes": 1847648, - "bits_per_second": 14781226.289427632, - "omitted": false - }], - "sum": { - "start": 1.0001378059387207, - "end": 2.0001349449157715, - "seconds": 0.99999713897705078, - "bytes": 1847648, - "bits_per_second": 14781226.289427632, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 2.0001349449157715, - "end": 3.000046968460083, - "seconds": 0.99991202354431152, - "bytes": 1847648, - "bits_per_second": 14782484.510593511, - "omitted": false - }], - "sum": { - "start": 2.0001349449157715, - "end": 3.000046968460083, - "seconds": 0.99991202354431152, - "bytes": 1847648, - "bits_per_second": 14782484.510593511, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 3.000046968460083, - "end": 4.0000967979431152, - "seconds": 1.0000498294830322, - "bytes": 1846200, - "bits_per_second": 14768864.075138163, - "omitted": false - }], - "sum": { - "start": 3.000046968460083, - "end": 4.0000967979431152, - "seconds": 1.0000498294830322, - "bytes": 1846200, - "bits_per_second": 14768864.075138163, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 4.0000967979431152, - "end": 5.0001468658447266, - "seconds": 1.0000500679016113, - "bytes": 1846200, - "bits_per_second": 14768860.554142864, - "omitted": false - }], - "sum": { - "start": 4.0000967979431152, - "end": 5.0001468658447266, - "seconds": 1.0000500679016113, - "bytes": 1846200, - "bits_per_second": 14768860.554142864, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 5.0001468658447266, - "end": 6.0001349449157715, - "seconds": 0.99998807907104492, - "bytes": 1847648, - "bits_per_second": 14781360.207544893, - "omitted": false - }], - "sum": { - "start": 5.0001468658447266, - "end": 6.0001349449157715, - "seconds": 0.99998807907104492, - "bytes": 1847648, - "bits_per_second": 14781360.207544893, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 6.0001349449157715, - "end": 7.0000898838043213, - "seconds": 0.9999549388885498, - "bytes": 1847648, - "bits_per_second": 14781850.086594192, - "omitted": false - }], - "sum": { - "start": 6.0001349449157715, - "end": 7.0000898838043213, - "seconds": 0.9999549388885498, - "bytes": 1847648, - "bits_per_second": 14781850.086594192, - "omitted": false - } - }, { - "streams": [{ - "socket": 5, - "start": 7.0000898838043213, + "start": 7.0001640319824219, "end": 8.0001449584960938, - "seconds": 1.0000550746917725, - "bytes": 1847648, - "bits_per_second": 14780369.975679306, + "seconds": 0.99998092651367188, + "bytes": 1824480, + "bits_per_second": 14596118.398864724, + "retransmits": 69, + "snd_cwnd": 7240, + "rtt": 4036, + "rttvar": 5035, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0000898838043213, + "start": 7.0001640319824219, "end": 8.0001449584960938, - "seconds": 1.0000550746917725, - "bytes": 1847648, - "bits_per_second": 14780369.975679306, + "seconds": 0.99998092651367188, + "bytes": 1824480, + "bits_per_second": 14596118.398864724, + "retransmits": 69, "omitted": false } }, { "streams": [{ "socket": 5, "start": 8.0001449584960938, - "end": 9.00013780593872, - "seconds": 0.999992847442627, - "bytes": 1844752, - "bits_per_second": 14758121.558311164, + "end": 9.0001389980316162, + "seconds": 0.99999403953552246, + "bytes": 1824480, + "bits_per_second": 14595926.998504391, + "retransmits": 67, + "snd_cwnd": 24616, + "rtt": 16447, + "rttvar": 9232, + "pmtu": 1500, "omitted": false }], "sum": { "start": 8.0001449584960938, - "end": 9.00013780593872, - "seconds": 0.999992847442627, - "bytes": 1844752, - "bits_per_second": 14758121.558311164, + "end": 9.0001389980316162, + "seconds": 0.99999403953552246, + "bytes": 1824480, + "bits_per_second": 14595926.998504391, + "retransmits": 67, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.00013780593872, - "end": 10.000138998031616, - "seconds": 1.0000011920928955, - "bytes": 1846200, - "bits_per_second": 14769582.393285759, + "start": 9.0001389980316162, + "end": 10.000201940536499, + "seconds": 1.0000629425048828, + "bytes": 1759320, + "bits_per_second": 14073674.16769498, + "retransmits": 88, + "snd_cwnd": 23168, + "rtt": 8502, + "rttvar": 8113, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.00013780593872, - "end": 10.000138998031616, - "seconds": 1.0000011920928955, - "bytes": 1846200, - "bits_per_second": 14769582.393285759, + "start": 9.0001389980316162, + "end": 10.000201940536499, + "seconds": 1.0000629425048828, + "bytes": 1759320, + "bits_per_second": 14073674.16769498, + "retransmits": 88, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.04218602180481, - "seconds": 10.04218602180481, - "bytes": 20665856, - "bits_per_second": 16463232.969497114, - "retransmits": 26, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.000201940536499, + "seconds": 10.000201940536499, + "bytes": 20240144, + "bits_per_second": 16191788.222159954, + "retransmits": 815, + "max_snd_cwnd": 28960, + "max_rtt": 18469, + "min_rtt": 880, + "mean_rtt": 9912 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000138998031616, - "seconds": 10.000138998031616, - "bytes": 18511232, - "bits_per_second": 14808779.760876261 + "end": 10.111041069030762, + "seconds": 10.000201940536499, + "bytes": 19988192, + "bits_per_second": 15814942.784653177 } }], "sum_sent": { "start": 0, - "end": 10.04218602180481, - "seconds": 10.04218602180481, - "bytes": 20665856, - "bits_per_second": 16463232.969497114, - "retransmits": 26 + "end": 10.000201940536499, + "seconds": 10.000201940536499, + "bytes": 20240144, + "bits_per_second": 16191788.222159954, + "retransmits": 815 }, "sum_received": { "start": 0, - "end": 10.000138998031616, - "seconds": 10.000138998031616, - "bytes": 18511232, - "bits_per_second": 14808779.760876261 + "end": 10.111041069030762, + "seconds": 10.111041069030762, + "bytes": 19988192, + "bits_per_second": 15814942.784653177 }, "cpu_utilization_percent": { - "host_total": 4.747280521346978, - "host_user": 0.89436776767351389, - "host_system": 3.852922665212974, - "remote_total": 0.066901773089038552, - "remote_user": 0, - "remote_system": 0.066894241649987668 + "host_total": 0.51942528843880476, + "host_user": 0.08782160486820563, + "host_system": 0.43166316315398423, + "remote_total": 1.1334375802476175, + "remote_user": 0.094751072041736134, + "remote_system": 1.0387529408524783 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/1p1/2.json b/results/manual/outbound/1p1/2.json index b99844e..3de9fc1 100644 --- a/results/manual/outbound/1p1/2.json +++ b/results/manual/outbound/1p1/2.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42790, + "local_port": 54420, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:37:12 GMT", - "timesecs": 1616344632 + "time": "Fri, 14 May 2021 03:49:25 GMT", + "timesecs": 1620964165 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "vxwkds3iabg3jt3zkdjrob76h54cbn6odb4l", + "cookie": "3bzcxedlwuadyrvbvhiruhskbei4fbah5p4w", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001370906829834, - "seconds": 1.0001370906829834, - "bytes": 1914256, - "bits_per_second": 15311948.874470992, + "end": 1.0002131462097168, + "seconds": 1.0002131462097168, + "bytes": 3858920, + "bits_per_second": 30864781.288854543, + "retransmits": 122, + "snd_cwnd": 7240, + "rtt": 9265, + "rttvar": 13734, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001370906829834, - "seconds": 1.0001370906829834, - "bytes": 1914256, - "bits_per_second": 15311948.874470992, + "end": 1.0002131462097168, + "seconds": 1.0002131462097168, + "bytes": 3858920, + "bits_per_second": 30864781.288854543, + "retransmits": 122, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001370906829834, - "end": 2.0001311302185059, - "seconds": 0.99999403953552246, - "bytes": 1846200, - "bits_per_second": 14769688.034200871, + "start": 1.0002131462097168, + "end": 2.0002169609069824, + "seconds": 1.0000038146972656, + "bytes": 1954800, + "bits_per_second": 15638340.34446585, + "retransmits": 22, + "snd_cwnd": 20272, + "rtt": 18716, + "rttvar": 2845, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001370906829834, - "end": 2.0001311302185059, - "seconds": 0.99999403953552246, - "bytes": 1846200, - "bits_per_second": 14769688.034200871, + "start": 1.0002131462097168, + "end": 2.0002169609069824, + "seconds": 1.0000038146972656, + "bytes": 1954800, + "bits_per_second": 15638340.34446585, + "retransmits": 22, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0001311302185059, - "end": 3.0000810623168945, - "seconds": 0.99994993209838867, - "bytes": 1847648, - "bits_per_second": 14781924.099921461, + "start": 2.0002169609069824, + "end": 3.0001490116119385, + "seconds": 0.999932050704956, + "bytes": 1759320, + "bits_per_second": 14075516.421418214, + "retransmits": 59, + "snd_cwnd": 26064, + "rtt": 22117, + "rttvar": 8725, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0001311302185059, - "end": 3.0000810623168945, - "seconds": 0.99994993209838867, - "bytes": 1847648, - "bits_per_second": 14781924.099921461, + "start": 2.0002169609069824, + "end": 3.0001490116119385, + "seconds": 0.999932050704956, + "bytes": 1759320, + "bits_per_second": 14075516.421418214, + "retransmits": 59, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0000810623168945, - "end": 4.000136137008667, - "seconds": 1.0000550746917725, - "bytes": 1846200, - "bits_per_second": 14768786.6136294, + "start": 3.0001490116119385, + "end": 4.0001480579376221, + "seconds": 0.99999904632568359, + "bytes": 1954800, + "bits_per_second": 15638414.913954653, + "retransmits": 93, + "snd_cwnd": 11584, + "rtt": 10295, + "rttvar": 6015, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0000810623168945, - "end": 4.000136137008667, - "seconds": 1.0000550746917725, - "bytes": 1846200, - "bits_per_second": 14768786.6136294, + "start": 3.0001490116119385, + "end": 4.0001480579376221, + "seconds": 0.99999904632568359, + "bytes": 1954800, + "bits_per_second": 15638414.913954653, + "retransmits": 93, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.000136137008667, - "end": 5.00009822845459, - "seconds": 0.99996209144592285, - "bytes": 1846200, - "bits_per_second": 14770159.915405881, + "start": 4.0001480579376221, + "end": 5.00016713142395, + "seconds": 1.0000190734863281, + "bytes": 1759320, + "bits_per_second": 14074291.554192463, + "retransmits": 50, + "snd_cwnd": 28960, + "rtt": 24278, + "rttvar": 10695, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.000136137008667, - "end": 5.00009822845459, - "seconds": 0.99996209144592285, - "bytes": 1846200, - "bits_per_second": 14770159.915405881, + "start": 4.0001480579376221, + "end": 5.00016713142395, + "seconds": 1.0000190734863281, + "bytes": 1759320, + "bits_per_second": 14074291.554192463, + "retransmits": 50, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.00009822845459, - "end": 6.0002801418304443, - "seconds": 1.0001819133758545, - "bytes": 1847648, - "bits_per_second": 14778495.593976449, + "start": 5.00016713142395, + "end": 6.0001440048217773, + "seconds": 0.99997687339782715, + "bytes": 1954800, + "bits_per_second": 15638761.67141965, + "retransmits": 64, + "snd_cwnd": 17376, + "rtt": 1422, + "rttvar": 134, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.00009822845459, - "end": 6.0002801418304443, - "seconds": 1.0001819133758545, - "bytes": 1847648, - "bits_per_second": 14778495.593976449, + "start": 5.00016713142395, + "end": 6.0001440048217773, + "seconds": 0.99997687339782715, + "bytes": 1954800, + "bits_per_second": 15638761.67141965, + "retransmits": 64, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0002801418304443, - "end": 7.00009822845459, - "seconds": 0.99981808662414551, - "bytes": 1847648, - "bits_per_second": 14783873.384315547, + "start": 6.0001440048217773, + "end": 7.0001959800720215, + "seconds": 1.0000519752502441, + "bytes": 1759320, + "bits_per_second": 14073828.509241339, + "retransmits": 37, + "snd_cwnd": 21720, + "rtt": 19808, + "rttvar": 2389, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0002801418304443, - "end": 7.00009822845459, - "seconds": 0.99981808662414551, - "bytes": 1847648, - "bits_per_second": 14783873.384315547, + "start": 6.0001440048217773, + "end": 7.0001959800720215, + "seconds": 1.0000519752502441, + "bytes": 1759320, + "bits_per_second": 14073828.509241339, + "retransmits": 37, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.00009822845459, - "end": 8.00015902519226, - "seconds": 1.0000607967376709, - "bytes": 1846200, - "bits_per_second": 14768702.111092012, + "start": 7.0001959800720215, + "end": 8.0001320838928223, + "seconds": 0.99993610382080078, + "bytes": 1954800, + "bits_per_second": 15639399.297860105, + "retransmits": 78, + "snd_cwnd": 15928, + "rtt": 1358, + "rttvar": 272, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.00009822845459, - "end": 8.00015902519226, - "seconds": 1.0000607967376709, - "bytes": 1846200, - "bits_per_second": 14768702.111092012, + "start": 7.0001959800720215, + "end": 8.0001320838928223, + "seconds": 0.99993610382080078, + "bytes": 1954800, + "bits_per_second": 15639399.297860105, + "retransmits": 78, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.00015902519226, - "end": 9.0001490116119385, - "seconds": 0.99998998641967773, - "bytes": 1846200, - "bits_per_second": 14769747.898056917, + "start": 8.0001320838928223, + "end": 9.0001649856567383, + "seconds": 1.000032901763916, + "bytes": 1759320, + "bits_per_second": 14074096.937385235, + "retransmits": 58, + "snd_cwnd": 23168, + "rtt": 22223, + "rttvar": 8259, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.00015902519226, - "end": 9.0001490116119385, - "seconds": 0.99998998641967773, - "bytes": 1846200, - "bits_per_second": 14769747.898056917, + "start": 8.0001320838928223, + "end": 9.0001649856567383, + "seconds": 1.000032901763916, + "bytes": 1759320, + "bits_per_second": 14074096.937385235, + "retransmits": 58, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0001490116119385, - "end": 10.000189065933228, - "seconds": 1.0000400543212891, - "bytes": 1847648, - "bits_per_second": 14780591.973420255, + "start": 9.0001649856567383, + "end": 10.000307083129883, + "seconds": 1.0001420974731445, + "bytes": 1759320, + "bits_per_second": 14072560.32473718, + "retransmits": 33, + "snd_cwnd": 17376, + "rtt": 11885, + "rttvar": 4269, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0001490116119385, - "end": 10.000189065933228, - "seconds": 1.0000400543212891, - "bytes": 1847648, - "bits_per_second": 14780591.973420255, + "start": 9.0001649856567383, + "end": 10.000307083129883, + "seconds": 1.0001420974731445, + "bytes": 1759320, + "bits_per_second": 14072560.32473718, + "retransmits": 33, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.042500972747803, - "seconds": 10.042500972747803, - "bytes": 20470376, - "bits_per_second": 16306994.487170221, - "retransmits": 9, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.000307083129883, + "seconds": 10.000307083129883, + "bytes": 20474720, + "bits_per_second": 16379273.020157576, + "retransmits": 616, + "max_snd_cwnd": 28960, + "max_rtt": 24278, + "min_rtt": 1358, + "mean_rtt": 14136 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000189065933228, - "seconds": 10.000189065933228, - "bytes": 18535848, - "bits_per_second": 14828398.045508526 + "end": 10.091212034225464, + "seconds": 10.000307083129883, + "bytes": 20115616, + "bits_per_second": 15947036.634866582 } }], "sum_sent": { "start": 0, - "end": 10.042500972747803, - "seconds": 10.042500972747803, - "bytes": 20470376, - "bits_per_second": 16306994.487170221, - "retransmits": 9 + "end": 10.000307083129883, + "seconds": 10.000307083129883, + "bytes": 20474720, + "bits_per_second": 16379273.020157576, + "retransmits": 616 }, "sum_received": { "start": 0, - "end": 10.000189065933228, - "seconds": 10.000189065933228, - "bytes": 18535848, - "bits_per_second": 14828398.045508526 + "end": 10.091212034225464, + "seconds": 10.091212034225464, + "bytes": 20115616, + "bits_per_second": 15947036.634866582 }, "cpu_utilization_percent": { - "host_total": 4.9367710594819227, - "host_user": 0.87153243784686019, - "host_system": 4.0653179068157312, - "remote_total": 0.013349809358272489, - "remote_user": 0.00030208268252034684, - "remote_system": 0.013065076019005003 + "host_total": 0.50164321829136815, + "host_user": 0.2766565669310756, + "host_system": 0.22502629833176446, + "remote_total": 1.573733652377544, + "remote_user": 0.25244821800648903, + "remote_system": 1.3214320962433166 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/1p1/3.json b/results/manual/outbound/1p1/3.json new file mode 100644 index 0000000..4e9a35d --- /dev/null +++ b/results/manual/outbound/1p1/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54428, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 03:49:50 GMT", + "timesecs": 1620964190 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "ph5u4tpjgucx5iyr7t2xdsx57kehb55qizjs", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001988410949707, + "seconds": 1.0001988410949707, + "bytes": 3909600, + "bits_per_second": 31270582.123210251, + "retransmits": 189, + "snd_cwnd": 11584, + "rtt": 9273, + "rttvar": 5742, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001988410949707, + "seconds": 1.0001988410949707, + "bytes": 3909600, + "bits_per_second": 31270582.123210251, + "retransmits": 189, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001988410949707, + "end": 2.0002269744873047, + "seconds": 1.000028133392334, + "bytes": 1759320, + "bits_per_second": 14074164.046021121, + "retransmits": 62, + "snd_cwnd": 26064, + "rtt": 22568, + "rttvar": 8064, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001988410949707, + "end": 2.0002269744873047, + "seconds": 1.000028133392334, + "bytes": 1759320, + "bits_per_second": 14074164.046021121, + "retransmits": 62, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0002269744873047, + "end": 3.0000929832458496, + "seconds": 0.99986600875854492, + "bytes": 1954800, + "bits_per_second": 15640495.6894344, + "retransmits": 64, + "snd_cwnd": 27512, + "rtt": 1696, + "rttvar": 350, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0002269744873047, + "end": 3.0000929832458496, + "seconds": 0.99986600875854492, + "bytes": 1954800, + "bits_per_second": 15640495.6894344, + "retransmits": 64, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0000929832458496, + "end": 4.0001828670501709, + "seconds": 1.0000898838043213, + "bytes": 1759320, + "bits_per_second": 14073295.038702585, + "retransmits": 106, + "snd_cwnd": 7240, + "rtt": 1838, + "rttvar": 1936, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0000929832458496, + "end": 4.0001828670501709, + "seconds": 1.0000898838043213, + "bytes": 1759320, + "bits_per_second": 14073295.038702585, + "retransmits": 106, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001828670501709, + "end": 5.000173807144165, + "seconds": 0.99999094009399414, + "bytes": 1759320, + "bits_per_second": 14074687.515345952, + "retransmits": 55, + "snd_cwnd": 21720, + "rtt": 7897, + "rttvar": 8951, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001828670501709, + "end": 5.000173807144165, + "seconds": 0.99999094009399414, + "bytes": 1759320, + "bits_per_second": 14074687.515345952, + "retransmits": 55, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000173807144165, + "end": 6.000108003616333, + "seconds": 0.999934196472168, + "bytes": 1954800, + "bits_per_second": 15639429.129610008, + "retransmits": 58, + "snd_cwnd": 17376, + "rtt": 16663, + "rttvar": 1355, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000173807144165, + "end": 6.000108003616333, + "seconds": 0.999934196472168, + "bytes": 1954800, + "bits_per_second": 15639429.129610008, + "retransmits": 58, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.000108003616333, + "end": 7.000173807144165, + "seconds": 1.000065803527832, + "bytes": 1824480, + "bits_per_second": 14594879.605433678, + "retransmits": 47, + "snd_cwnd": 15928, + "rtt": 5221, + "rttvar": 5365, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.000108003616333, + "end": 7.000173807144165, + "seconds": 1.000065803527832, + "bytes": 1824480, + "bits_per_second": 14594879.605433678, + "retransmits": 47, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.000173807144165, + "end": 8.0002799034118652, + "seconds": 1.0001060962677002, + "bytes": 1759320, + "bits_per_second": 14073066.900126802, + "retransmits": 53, + "snd_cwnd": 18824, + "rtt": 15489, + "rttvar": 4021, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.000173807144165, + "end": 8.0002799034118652, + "seconds": 1.0001060962677002, + "bytes": 1759320, + "bits_per_second": 14073066.900126802, + "retransmits": 53, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0002799034118652, + "end": 9.0001189708709717, + "seconds": 0.99983906745910645, + "bytes": 2150280, + "bits_per_second": 17205008.845789649, + "retransmits": 65, + "snd_cwnd": 13032, + "rtt": 1860, + "rttvar": 2007, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0002799034118652, + "end": 9.0001189708709717, + "seconds": 0.99983906745910645, + "bytes": 2150280, + "bits_per_second": 17205008.845789649, + "retransmits": 65, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001189708709717, + "end": 10.000189781188965, + "seconds": 1.0000708103179932, + "bytes": 1563840, + "bits_per_second": 12509834.17466405, + "retransmits": 52, + "snd_cwnd": 27512, + "rtt": 11143, + "rttvar": 8208, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001189708709717, + "end": 10.000189781188965, + "seconds": 1.0000708103179932, + "bytes": 1563840, + "bits_per_second": 12509834.17466405, + "retransmits": 52, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000189781188965, + "seconds": 10.000189781188965, + "bytes": 20395080, + "bits_per_second": 16315754.357673915, + "retransmits": 751, + "max_snd_cwnd": 27512, + "max_rtt": 22568, + "min_rtt": 1696, + "mean_rtt": 9364 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.048063993453979, + "seconds": 10.000189781188965, + "bytes": 20037424, + "bits_per_second": 15953261.454587707 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000189781188965, + "seconds": 10.000189781188965, + "bytes": 20395080, + "bits_per_second": 16315754.357673915, + "retransmits": 751 + }, + "sum_received": { + "start": 0, + "end": 10.048063993453979, + "seconds": 10.048063993453979, + "bytes": 20037424, + "bits_per_second": 15953261.454587707 + }, + "cpu_utilization_percent": { + "host_total": 0.50588724672427343, + "host_user": 0.23157006067474634, + "host_system": 0.27439649425987, + "remote_total": 1.360740943618193, + "remote_user": 0.26223587862760411, + "remote_system": 1.0985753318390958 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/1p1/4.json b/results/manual/outbound/1p1/4.json new file mode 100644 index 0000000..68914e2 --- /dev/null +++ b/results/manual/outbound/1p1/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54436, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 03:50:13 GMT", + "timesecs": 1620964213 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "y3sskk4isbnwhlghqvucg5xjhcuddbtaftah", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.000126838684082, + "seconds": 1.000126838684082, + "bytes": 3918288, + "bits_per_second": 31342328.580286808, + "retransmits": 122, + "snd_cwnd": 18824, + "rtt": 1456, + "rttvar": 240, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.000126838684082, + "seconds": 1.000126838684082, + "bytes": 3918288, + "bits_per_second": 31342328.580286808, + "retransmits": 122, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.000126838684082, + "end": 2.0001139640808105, + "seconds": 0.99998712539672852, + "bytes": 1954800, + "bits_per_second": 15638601.340787984, + "retransmits": 97, + "snd_cwnd": 13032, + "rtt": 1262, + "rttvar": 315, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.000126838684082, + "end": 2.0001139640808105, + "seconds": 0.99998712539672852, + "bytes": 1954800, + "bits_per_second": 15638601.340787984, + "retransmits": 97, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001139640808105, + "end": 3.0001580715179443, + "seconds": 1.0000441074371338, + "bytes": 1759320, + "bits_per_second": 14073939.234609984, + "retransmits": 44, + "snd_cwnd": 24616, + "rtt": 24449, + "rttvar": 8502, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001139640808105, + "end": 3.0001580715179443, + "seconds": 1.0000441074371338, + "bytes": 1759320, + "bits_per_second": 14073939.234609984, + "retransmits": 44, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001580715179443, + "end": 4.0001308917999268, + "seconds": 0.99997282028198242, + "bytes": 1954800, + "bits_per_second": 15638825.058855226, + "retransmits": 37, + "snd_cwnd": 26064, + "rtt": 22604, + "rttvar": 9204, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001580715179443, + "end": 4.0001308917999268, + "seconds": 0.99997282028198242, + "bytes": 1954800, + "bits_per_second": 15638825.058855226, + "retransmits": 37, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001308917999268, + "end": 5.0001230239868164, + "seconds": 0.99999213218688965, + "bytes": 1824480, + "bits_per_second": 14595954.838244835, + "retransmits": 75, + "snd_cwnd": 27512, + "rtt": 20761, + "rttvar": 7976, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001308917999268, + "end": 5.0001230239868164, + "seconds": 0.99999213218688965, + "bytes": 1824480, + "bits_per_second": 14595954.838244835, + "retransmits": 75, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001230239868164, + "end": 6.0001368522644043, + "seconds": 1.0000138282775879, + "bytes": 1759320, + "bits_per_second": 14074365.37576871, + "retransmits": 89, + "snd_cwnd": 5792, + "rtt": 1006, + "rttvar": 87, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001230239868164, + "end": 6.0001368522644043, + "seconds": 1.0000138282775879, + "bytes": 1759320, + "bits_per_second": 14074365.37576871, + "retransmits": 89, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001368522644043, + "end": 7.000114917755127, + "seconds": 0.99997806549072266, + "bytes": 1824480, + "bits_per_second": 14596160.159610435, + "retransmits": 101, + "snd_cwnd": 15928, + "rtt": 6562, + "rttvar": 7725, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001368522644043, + "end": 7.000114917755127, + "seconds": 0.99997806549072266, + "bytes": 1824480, + "bits_per_second": 14596160.159610435, + "retransmits": 101, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.000114917755127, + "end": 8.0001289844512939, + "seconds": 1.000014066696167, + "bytes": 1954800, + "bits_per_second": 15638180.022473019, + "retransmits": 40, + "snd_cwnd": 17376, + "rtt": 1327, + "rttvar": 210, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.000114917755127, + "end": 8.0001289844512939, + "seconds": 1.000014066696167, + "bytes": 1954800, + "bits_per_second": 15638180.022473019, + "retransmits": 40, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001289844512939, + "end": 9.0000820159912109, + "seconds": 0.999953031539917, + "bytes": 1759320, + "bits_per_second": 14075221.091459993, + "retransmits": 41, + "snd_cwnd": 18824, + "rtt": 1216, + "rttvar": 273, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001289844512939, + "end": 9.0000820159912109, + "seconds": 0.999953031539917, + "bytes": 1759320, + "bits_per_second": 14075221.091459993, + "retransmits": 41, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0000820159912109, + "end": 10.000232934951782, + "seconds": 1.0001509189605713, + "bytes": 1824480, + "bits_per_second": 14593637.543390997, + "retransmits": 52, + "snd_cwnd": 18824, + "rtt": 22581, + "rttvar": 12937, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0000820159912109, + "end": 10.000232934951782, + "seconds": 1.0001509189605713, + "bytes": 1824480, + "bits_per_second": 14593637.543390997, + "retransmits": 52, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000232934951782, + "seconds": 10.000232934951782, + "bytes": 20534088, + "bits_per_second": 16426887.760369161, + "retransmits": 698, + "max_snd_cwnd": 27512, + "max_rtt": 24449, + "min_rtt": 1006, + "mean_rtt": 10322 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.131095886230469, + "seconds": 10.000232934951782, + "bytes": 20101136, + "bits_per_second": 15872822.62509837 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000232934951782, + "seconds": 10.000232934951782, + "bytes": 20534088, + "bits_per_second": 16426887.760369161, + "retransmits": 698 + }, + "sum_received": { + "start": 0, + "end": 10.131095886230469, + "seconds": 10.131095886230469, + "bytes": 20101136, + "bits_per_second": 15872822.62509837 + }, + "cpu_utilization_percent": { + "host_total": 0.51180947053187864, + "host_user": 0.18753891573743006, + "host_system": 0.3243696716042036, + "remote_total": 1.61312059438777, + "remote_user": 0.046787226785234552, + "remote_system": 1.5664043918557198 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/1p2/0.json b/results/manual/outbound/1p2/0.json index 0f85536..89e0500 100644 --- a/results/manual/outbound/1p2/0.json +++ b/results/manual/outbound/1p2/0.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42802, + "local_port": 54444, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:38:06 GMT", - "timesecs": 1616344686 + "time": "Fri, 14 May 2021 03:56:41 GMT", + "timesecs": 1620964601 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "mjcocxhz2zspvdlfmqy45d7prnd5affkmifr", + "cookie": "gua25a5tq6y4lspkrezi6tmmati7f3h5n5h3", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001380443572998, - "seconds": 1.0001380443572998, - "bytes": 2810568, - "bits_per_second": 22481440.563986171, + "end": 1.000175952911377, + "seconds": 1.000175952911377, + "bytes": 4732064, + "bits_per_second": 37849852.208308764, + "retransmits": 118, + "snd_cwnd": 15928, + "rtt": 4904, + "rttvar": 2854, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001380443572998, - "seconds": 1.0001380443572998, - "bytes": 2810568, - "bits_per_second": 22481440.563986171, + "end": 1.000175952911377, + "seconds": 1.000175952911377, + "bytes": 4732064, + "bits_per_second": 37849852.208308764, + "retransmits": 118, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001380443572998, - "end": 2.0001161098480225, - "seconds": 0.99997806549072266, - "bytes": 2752648, - "bits_per_second": 22021667.03445987, + "start": 1.000175952911377, + "end": 2.0002830028533936, + "seconds": 1.0001070499420166, + "bytes": 2541240, + "bits_per_second": 20327743.916192442, + "retransmits": 64, + "snd_cwnd": 23168, + "rtt": 22136, + "rttvar": 8522, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001380443572998, - "end": 2.0001161098480225, - "seconds": 0.99997806549072266, - "bytes": 2752648, - "bits_per_second": 22021667.03445987, + "start": 1.000175952911377, + "end": 2.0002830028533936, + "seconds": 1.0001070499420166, + "bytes": 2541240, + "bits_per_second": 20327743.916192442, + "retransmits": 64, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0001161098480225, - "end": 3.000075101852417, - "seconds": 0.99995899200439453, - "bytes": 2762784, - "bits_per_second": 22103178.407042984, + "start": 2.0002830028533936, + "end": 3.0001389980316162, + "seconds": 0.99985599517822266, + "bytes": 3192840, + "bits_per_second": 25546398.804606911, + "retransmits": 141, + "snd_cwnd": 28960, + "rtt": 14048, + "rttvar": 2413, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0001161098480225, - "end": 3.000075101852417, - "seconds": 0.99995899200439453, - "bytes": 2762784, - "bits_per_second": 22103178.407042984, + "start": 2.0002830028533936, + "end": 3.0001389980316162, + "seconds": 0.99985599517822266, + "bytes": 3192840, + "bits_per_second": 25546398.804606911, + "retransmits": 141, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.000075101852417, - "end": 4.0001010894775391, - "seconds": 1.0000259876251221, - "bytes": 2762784, - "bits_per_second": 22101697.629367448, + "start": 3.0001389980316162, + "end": 4.0001049041748047, + "seconds": 0.99996590614318848, + "bytes": 2736720, + "bits_per_second": 21894506.468168486, + "retransmits": 46, + "snd_cwnd": 26064, + "rtt": 6623, + "rttvar": 11030, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.000075101852417, - "end": 4.0001010894775391, - "seconds": 1.0000259876251221, - "bytes": 2762784, - "bits_per_second": 22101697.629367448, + "start": 3.0001389980316162, + "end": 4.0001049041748047, + "seconds": 0.99996590614318848, + "bytes": 2736720, + "bits_per_second": 21894506.468168486, + "retransmits": 46, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001010894775391, - "end": 5.0001320838928223, - "seconds": 1.0000309944152832, - "bytes": 2758440, - "bits_per_second": 22066836.051319439, + "start": 4.0001049041748047, + "end": 5.0000889301300049, + "seconds": 0.9999840259552002, + "bytes": 2671560, + "bits_per_second": 21372821.410406709, + "retransmits": 61, + "snd_cwnd": 15928, + "rtt": 1273, + "rttvar": 236, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001010894775391, - "end": 5.0001320838928223, - "seconds": 1.0000309944152832, - "bytes": 2758440, - "bits_per_second": 22066836.051319439, + "start": 4.0001049041748047, + "end": 5.0000889301300049, + "seconds": 0.9999840259552002, + "bytes": 2671560, + "bits_per_second": 21372821.410406709, + "retransmits": 61, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001320838928223, - "end": 6.0001151561737061, - "seconds": 0.99998307228088379, - "bytes": 2762784, - "bits_per_second": 22102646.147385709, + "start": 5.0000889301300049, + "end": 6.000432014465332, + "seconds": 1.0003430843353271, + "bytes": 4039920, + "bits_per_second": 32308275.536761902, + "retransmits": 116, + "snd_cwnd": 7240, + "rtt": 10453, + "rttvar": 14635, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001320838928223, - "end": 6.0001151561737061, - "seconds": 0.99998307228088379, - "bytes": 2762784, - "bits_per_second": 22102646.147385709, + "start": 5.0000889301300049, + "end": 6.000432014465332, + "seconds": 1.0003430843353271, + "bytes": 4039920, + "bits_per_second": 32308275.536761902, + "retransmits": 116, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001151561737061, - "end": 7.0000941753387451, - "seconds": 0.99997901916503906, - "bytes": 2761336, - "bits_per_second": 22091151.490803525, + "start": 6.000432014465332, + "end": 7.0002889633178711, + "seconds": 0.99985694885253906, + "bytes": 3453480, + "bits_per_second": 27631792.759660672, + "retransmits": 48, + "snd_cwnd": 20272, + "rtt": 12916, + "rttvar": 13582, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001151561737061, - "end": 7.0000941753387451, - "seconds": 0.99997901916503906, - "bytes": 2761336, - "bits_per_second": 22091151.490803525, + "start": 6.000432014465332, + "end": 7.0002889633178711, + "seconds": 0.99985694885253906, + "bytes": 3453480, + "bits_per_second": 27631792.759660672, + "retransmits": 48, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0000941753387451, - "end": 8.0001120567321777, - "seconds": 1.0000178813934326, - "bytes": 2764232, - "bits_per_second": 22113460.580511205, + "start": 7.0002889633178711, + "end": 8.0003960132598877, + "seconds": 1.0001070499420166, + "bytes": 2541240, + "bits_per_second": 20327743.916192442, + "retransmits": 62, + "snd_cwnd": 17376, + "rtt": 1032, + "rttvar": 62, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0000941753387451, - "end": 8.0001120567321777, - "seconds": 1.0000178813934326, - "bytes": 2764232, - "bits_per_second": 22113460.580511205, + "start": 7.0002889633178711, + "end": 8.0003960132598877, + "seconds": 1.0001070499420166, + "bytes": 2541240, + "bits_per_second": 20327743.916192442, + "retransmits": 62, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0001120567321777, - "end": 9.0001239776611328, - "seconds": 1.0000119209289551, - "bytes": 2765680, - "bits_per_second": 22125176.247345835, + "start": 8.0003960132598877, + "end": 9.0001609325408936, + "seconds": 0.99976491928100586, + "bytes": 3453480, + "bits_per_second": 27634336.299646247, + "retransmits": 93, + "snd_cwnd": 8688, + "rtt": 3975, + "rttvar": 5046, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0001120567321777, - "end": 9.0001239776611328, - "seconds": 1.0000119209289551, - "bytes": 2765680, - "bits_per_second": 22125176.247345835, + "start": 8.0003960132598877, + "end": 9.0001609325408936, + "seconds": 0.99976491928100586, + "bytes": 3453480, + "bits_per_second": 27634336.299646247, + "retransmits": 93, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0001239776611328, - "end": 10.000071048736572, - "seconds": 0.99994707107543945, - "bytes": 2764232, - "bits_per_second": 22115026.524570573, + "start": 9.0001609325408936, + "end": 10.000165939331055, + "seconds": 1.0000050067901611, + "bytes": 2541240, + "bits_per_second": 20329818.212866195, + "retransmits": 68, + "snd_cwnd": 17376, + "rtt": 1081, + "rttvar": 80, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0001239776611328, - "end": 10.000071048736572, - "seconds": 0.99994707107543945, - "bytes": 2764232, - "bits_per_second": 22115026.524570573, + "start": 9.0001609325408936, + "end": 10.000165939331055, + "seconds": 1.0000050067901611, + "bytes": 2541240, + "bits_per_second": 20329818.212866195, + "retransmits": 68, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.0433669090271, - "seconds": 10.0433669090271, - "bytes": 28340256, - "bits_per_second": 22574307.008162718, - "retransmits": 52, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.000165939331055, + "seconds": 10.000165939331055, + "bytes": 31903784, + "bits_per_second": 25522603.679621864, + "retransmits": 817, + "max_snd_cwnd": 28960, + "max_rtt": 22136, + "min_rtt": 1032, + "mean_rtt": 7844 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000071048736572, - "seconds": 10.000071048736572, - "bytes": 27665488, - "bits_per_second": 22132233.153279692 + "end": 10.040658950805664, + "seconds": 10.000165939331055, + "bytes": 29505896, + "bits_per_second": 23509131.139352117 } }], "sum_sent": { "start": 0, - "end": 10.0433669090271, - "seconds": 10.0433669090271, - "bytes": 28340256, - "bits_per_second": 22574307.008162718, - "retransmits": 52 + "end": 10.000165939331055, + "seconds": 10.000165939331055, + "bytes": 31903784, + "bits_per_second": 25522603.679621864, + "retransmits": 817 }, "sum_received": { "start": 0, - "end": 10.000071048736572, - "seconds": 10.000071048736572, - "bytes": 27665488, - "bits_per_second": 22132233.153279692 + "end": 10.040658950805664, + "seconds": 10.040658950805664, + "bytes": 29505896, + "bits_per_second": 23509131.139352117 }, "cpu_utilization_percent": { - "host_total": 1.5521013099719991, - "host_user": 0.37426921913173389, - "host_system": 1.1779510197309966, - "remote_total": 0.054973579768307759, - "remote_user": 0, - "remote_system": 0.054986520818159051 + "host_total": 0.56399951149648608, + "host_user": 0.13213782143293307, + "host_system": 0.43196081821166471, + "remote_total": 0.11261389928767734, + "remote_user": 0.012582442977363304, + "remote_system": 0.10003267353416792 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/1p2/1.json b/results/manual/outbound/1p2/1.json index 2bd744f..2cf01fc 100644 --- a/results/manual/outbound/1p2/1.json +++ b/results/manual/outbound/1p2/1.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42806, + "local_port": 54448, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:38:19 GMT", - "timesecs": 1616344699 + "time": "Fri, 14 May 2021 03:58:38 GMT", + "timesecs": 1620964718 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "rd6qcyxv35ja2jiicoyl555wzne6rhk4h2br", + "cookie": "ew6okhcyinpyz5vpfnqcdi22n7zbrpefx2fh", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001509189605713, - "seconds": 1.0001509189605713, - "bytes": 2816360, - "bits_per_second": 22527480.176107533, + "end": 1.0001459121704102, + "seconds": 1.0001459121704102, + "bytes": 4878312, + "bits_per_second": 39020802.390032127, + "retransmits": 74, + "snd_cwnd": 21720, + "rtt": 13849, + "rttvar": 7098, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001509189605713, - "seconds": 1.0001509189605713, - "bytes": 2816360, - "bits_per_second": 22527480.176107533, + "end": 1.0001459121704102, + "seconds": 1.0001459121704102, + "bytes": 4878312, + "bits_per_second": 39020802.390032127, + "retransmits": 74, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001509189605713, - "end": 2.000208854675293, - "seconds": 1.0000579357147217, - "bytes": 2754096, - "bits_per_second": 22031491.589788362, + "start": 1.0001459121704102, + "end": 2.0002319812774658, + "seconds": 1.0000860691070557, + "bytes": 2606400, + "bits_per_second": 20849405.510285087, + "retransmits": 28, + "snd_cwnd": 33304, + "rtt": 31430, + "rttvar": 1214, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001509189605713, - "end": 2.000208854675293, - "seconds": 1.0000579357147217, - "bytes": 2754096, - "bits_per_second": 22031491.589788362, + "start": 1.0001459121704102, + "end": 2.0002319812774658, + "seconds": 1.0000860691070557, + "bytes": 2606400, + "bits_per_second": 20849405.510285087, + "retransmits": 28, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.000208854675293, - "end": 3.0001637935638428, - "seconds": 0.9999549388885498, - "bytes": 2756992, - "bits_per_second": 22056929.909776915, + "start": 2.0002319812774658, + "end": 3.00028395652771, + "seconds": 1.0000519752502441, + "bytes": 2671560, + "bits_per_second": 21371369.217736848, + "retransmits": 43, + "snd_cwnd": 8688, + "rtt": 19622, + "rttvar": 8830, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.000208854675293, - "end": 3.0001637935638428, - "seconds": 0.9999549388885498, - "bytes": 2756992, - "bits_per_second": 22056929.909776915, + "start": 2.0002319812774658, + "end": 3.00028395652771, + "seconds": 1.0000519752502441, + "bytes": 2671560, + "bits_per_second": 21371369.217736848, + "retransmits": 43, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0001637935638428, - "end": 4.0000579357147217, - "seconds": 0.99989414215087891, - "bytes": 2767128, - "bits_per_second": 22139367.625837773, + "start": 3.00028395652771, + "end": 4.000187873840332, + "seconds": 0.99990391731262207, + "bytes": 2867040, + "bits_per_second": 22938523.995029926, + "retransmits": 102, + "snd_cwnd": 26064, + "rtt": 28916, + "rttvar": 15400, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0001637935638428, - "end": 4.0000579357147217, - "seconds": 0.99989414215087891, - "bytes": 2767128, - "bits_per_second": 22139367.625837773, + "start": 3.00028395652771, + "end": 4.000187873840332, + "seconds": 0.99990391731262207, + "bytes": 2867040, + "bits_per_second": 22938523.995029926, + "retransmits": 102, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0000579357147217, - "end": 5.0001318454742432, - "seconds": 1.0000739097595215, - "bytes": 2759888, - "bits_per_second": 22077472.259334471, + "start": 4.000187873840332, + "end": 5.000236988067627, + "seconds": 1.0000491142272949, + "bytes": 2736720, + "bits_per_second": 21892684.757704712, + "retransmits": 99, + "snd_cwnd": 7240, + "rtt": 2483, + "rttvar": 2445, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0000579357147217, - "end": 5.0001318454742432, - "seconds": 1.0000739097595215, - "bytes": 2759888, - "bits_per_second": 22077472.259334471, + "start": 4.000187873840332, + "end": 5.000236988067627, + "seconds": 1.0000491142272949, + "bytes": 2736720, + "bits_per_second": 21892684.757704712, + "retransmits": 99, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001318454742432, - "end": 6.0001130104064941, - "seconds": 0.999981164932251, - "bytes": 2767128, - "bits_per_second": 22137440.960200276, + "start": 5.000236988067627, + "end": 6.00014591217041, + "seconds": 0.9999089241027832, + "bytes": 3062520, + "bits_per_second": 24502391.577296861, + "retransmits": 91, + "snd_cwnd": 15928, + "rtt": 12040, + "rttvar": 4026, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001318454742432, - "end": 6.0001130104064941, - "seconds": 0.999981164932251, - "bytes": 2767128, - "bits_per_second": 22137440.960200276, + "start": 5.000236988067627, + "end": 6.00014591217041, + "seconds": 0.9999089241027832, + "bytes": 3062520, + "bits_per_second": 24502391.577296861, + "retransmits": 91, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001130104064941, - "end": 7.00009298324585, - "seconds": 0.99997997283935547, - "bytes": 2754096, - "bits_per_second": 22033209.262621418, + "start": 6.00014591217041, + "end": 7.0002610683441162, + "seconds": 1.0001151561737061, + "bytes": 2736720, + "bits_per_second": 21891239.088668864, + "retransmits": 49, + "snd_cwnd": 15928, + "rtt": 2938, + "rttvar": 3419, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001130104064941, - "end": 7.00009298324585, - "seconds": 0.99997997283935547, - "bytes": 2754096, - "bits_per_second": 22033209.262621418, + "start": 6.00014591217041, + "end": 7.0002610683441162, + "seconds": 1.0001151561737061, + "bytes": 2736720, + "bits_per_second": 21891239.088668864, + "retransmits": 49, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.00009298324585, - "end": 8.0000858306884766, - "seconds": 0.999992847442627, - "bytes": 2756992, - "bits_per_second": 22056093.757476024, + "start": 7.0002610683441162, + "end": 8.0001330375671387, + "seconds": 0.99987196922302246, + "bytes": 2932200, + "bits_per_second": 23460603.679317426, + "retransmits": 150, + "snd_cwnd": 5792, + "rtt": 1846, + "rttvar": 1952, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.00009298324585, - "end": 8.0000858306884766, - "seconds": 0.999992847442627, - "bytes": 2756992, - "bits_per_second": 22056093.757476024, + "start": 7.0002610683441162, + "end": 8.0001330375671387, + "seconds": 0.99987196922302246, + "bytes": 2932200, + "bits_per_second": 23460603.679317426, + "retransmits": 150, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0000858306884766, - "end": 9.000093936920166, - "seconds": 1.0000081062316895, - "bytes": 2761336, - "bits_per_second": 22090508.929216482, + "start": 8.0001330375671387, + "end": 9.00025200843811, + "seconds": 1.0001189708709717, + "bytes": 2476080, + "bits_per_second": 19806283.629185922, + "retransmits": 77, + "snd_cwnd": 13032, + "rtt": 9442, + "rttvar": 8132, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0000858306884766, - "end": 9.000093936920166, - "seconds": 1.0000081062316895, - "bytes": 2761336, - "bits_per_second": 22090508.929216482, + "start": 8.0001330375671387, + "end": 9.00025200843811, + "seconds": 1.0001189708709717, + "bytes": 2476080, + "bits_per_second": 19806283.629185922, + "retransmits": 77, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.000093936920166, - "end": 10.000105857849121, - "seconds": 1.0000119209289551, - "bytes": 2768576, - "bits_per_second": 22148343.971165046, + "start": 9.00025200843811, + "end": 10.00025200843811, + "seconds": 1, + "bytes": 2867040, + "bits_per_second": 22936320, + "retransmits": 59, + "snd_cwnd": 11584, + "rtt": 13197, + "rttvar": 13760, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.000093936920166, - "end": 10.000105857849121, - "seconds": 1.0000119209289551, - "bytes": 2768576, - "bits_per_second": 22148343.971165046, + "start": 9.00025200843811, + "end": 10.00025200843811, + "seconds": 1, + "bytes": 2867040, + "bits_per_second": 22936320, + "retransmits": 59, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.039644002914429, - "seconds": 10.039644002914429, - "bytes": 28680536, - "bits_per_second": 22853827.081258476, - "retransmits": 52, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.00025200843811, + "seconds": 10.00025200843811, + "bytes": 29834592, + "bits_per_second": 23867072.129643034, + "retransmits": 772, + "max_snd_cwnd": 33304, + "max_rtt": 31430, + "min_rtt": 1846, + "mean_rtt": 13576 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000105857849121, - "seconds": 10.000105857849121, - "bytes": 27662592, - "bits_per_second": 22129839.338280626 + "end": 10.125314950942993, + "seconds": 10.00025200843811, + "bytes": 29598568, + "bits_per_second": 23385795.419425186 } }], "sum_sent": { "start": 0, - "end": 10.039644002914429, - "seconds": 10.039644002914429, - "bytes": 28680536, - "bits_per_second": 22853827.081258476, - "retransmits": 52 + "end": 10.00025200843811, + "seconds": 10.00025200843811, + "bytes": 29834592, + "bits_per_second": 23867072.129643034, + "retransmits": 772 }, "sum_received": { "start": 0, - "end": 10.000105857849121, - "seconds": 10.000105857849121, - "bytes": 27662592, - "bits_per_second": 22129839.338280626 + "end": 10.125314950942993, + "seconds": 10.125314950942993, + "bytes": 29598568, + "bits_per_second": 23385795.419425186 }, "cpu_utilization_percent": { - "host_total": 1.5284999950937184, - "host_user": 0.38112391909412796, - "host_system": 1.1474157227195627, - "remote_total": 0.094581720993264284, - "remote_user": 0, - "remote_system": 0.0946445190485341 + "host_total": 0.57344930984065623, + "host_user": 0.08539637697321141, + "host_system": 0.48806284538943817, + "remote_total": 0.25263338509061833, + "remote_user": 0.02610343324542444, + "remote_system": 0.22654880342026523 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/1p2/2.json b/results/manual/outbound/1p2/2.json index ceb0af3..532fe6d 100644 --- a/results/manual/outbound/1p2/2.json +++ b/results/manual/outbound/1p2/2.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42810, + "local_port": 54452, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:38:32 GMT", - "timesecs": 1616344712 + "time": "Fri, 14 May 2021 04:00:39 GMT", + "timesecs": 1620964839 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "dc2gmsoanvxotpazp7rgoa4wbjwbzhbnwq6v", + "cookie": "gngrjckryh7llopg4jaacnn7nurliy4hyntp", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001230239868164, - "seconds": 1.0001230239868164, - "bytes": 2804776, - "bits_per_second": 22435447.901753116, + "end": 1.0001709461212158, + "seconds": 1.0001709461212158, + "bytes": 4733512, + "bits_per_second": 37861623.702285163, + "retransmits": 108, + "snd_cwnd": 17376, + "rtt": 11917, + "rttvar": 6399, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001230239868164, - "seconds": 1.0001230239868164, - "bytes": 2804776, - "bits_per_second": 22435447.901753116, + "end": 1.0001709461212158, + "seconds": 1.0001709461212158, + "bytes": 4733512, + "bits_per_second": 37861623.702285163, + "retransmits": 108, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001230239868164, - "end": 2.0001170635223389, - "seconds": 0.99999403953552246, - "bytes": 2755544, - "bits_per_second": 22044483.395360205, + "start": 1.0001709461212158, + "end": 2.0001900196075439, + "seconds": 1.0000190734863281, + "bytes": 2801880, + "bits_per_second": 22414612.475195404, + "retransmits": 71, + "snd_cwnd": 8688, + "rtt": 4214, + "rttvar": 5148, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001230239868164, - "end": 2.0001170635223389, - "seconds": 0.99999403953552246, - "bytes": 2755544, - "bits_per_second": 22044483.395360205, + "start": 1.0001709461212158, + "end": 2.0001900196075439, + "seconds": 1.0000190734863281, + "bytes": 2801880, + "bits_per_second": 22414612.475195404, + "retransmits": 71, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0001170635223389, - "end": 3.0000801086425781, - "seconds": 0.99996304512023926, - "bytes": 2756992, - "bits_per_second": 22056751.104584981, + "start": 2.0001900196075439, + "end": 3.0000860691070557, + "seconds": 0.99989604949951172, + "bytes": 2801880, + "bits_per_second": 22417370.296861991, + "retransmits": 32, + "snd_cwnd": 18824, + "rtt": 1477, + "rttvar": 300, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0001170635223389, - "end": 3.0000801086425781, - "seconds": 0.99996304512023926, - "bytes": 2756992, - "bits_per_second": 22056751.104584981, + "start": 2.0001900196075439, + "end": 3.0000860691070557, + "seconds": 0.99989604949951172, + "bytes": 2801880, + "bits_per_second": 22417370.296861991, + "retransmits": 32, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0000801086425781, - "end": 4.0001089572906494, - "seconds": 1.0000288486480713, - "bytes": 2759888, - "bits_per_second": 22078467.066073656, + "start": 3.0000860691070557, + "end": 4.0001940727233887, + "seconds": 1.000108003616333, + "bytes": 2736720, + "bits_per_second": 21891395.650103211, + "retransmits": 86, + "snd_cwnd": 20272, + "rtt": 10191, + "rttvar": 13831, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0000801086425781, - "end": 4.0001089572906494, - "seconds": 1.0000288486480713, - "bytes": 2759888, - "bits_per_second": 22078467.066073656, + "start": 3.0000860691070557, + "end": 4.0001940727233887, + "seconds": 1.000108003616333, + "bytes": 2736720, + "bits_per_second": 21891395.650103211, + "retransmits": 86, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001089572906494, - "end": 5.0002450942993164, - "seconds": 1.000136137008667, - "bytes": 2767128, - "bits_per_second": 22134010.741987783, + "start": 4.0001940727233887, + "end": 5.0001440048217773, + "seconds": 0.99994993209838867, + "bytes": 3062520, + "bits_per_second": 24501386.733020291, + "retransmits": 72, + "snd_cwnd": 31856, + "rtt": 13807, + "rttvar": 3238, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001089572906494, - "end": 5.0002450942993164, - "seconds": 1.000136137008667, - "bytes": 2767128, - "bits_per_second": 22134010.741987783, + "start": 4.0001940727233887, + "end": 5.0001440048217773, + "seconds": 0.99994993209838867, + "bytes": 3062520, + "bits_per_second": 24501386.733020291, + "retransmits": 72, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0002450942993164, - "end": 6.0001301765441895, - "seconds": 0.999885082244873, - "bytes": 2764232, - "bits_per_second": 22116397.566759866, + "start": 5.0001440048217773, + "end": 6.0001189708709717, + "seconds": 0.99997496604919434, + "bytes": 2541240, + "bits_per_second": 20330428.950958215, + "retransmits": 45, + "snd_cwnd": 21720, + "rtt": 13560, + "rttvar": 7236, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0002450942993164, - "end": 6.0001301765441895, - "seconds": 0.999885082244873, - "bytes": 2764232, - "bits_per_second": 22116397.566759866, + "start": 5.0001440048217773, + "end": 6.0001189708709717, + "seconds": 0.99997496604919434, + "bytes": 2541240, + "bits_per_second": 20330428.950958215, + "retransmits": 45, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001301765441895, - "end": 7.0001151561737061, - "seconds": 0.9999849796295166, - "bytes": 2761336, - "bits_per_second": 22091019.815301981, + "start": 6.0001189708709717, + "end": 7.0000839233398438, + "seconds": 0.99996495246887207, + "bytes": 3192840, + "bits_per_second": 25543615.240650266, + "retransmits": 90, + "snd_cwnd": 13032, + "rtt": 3285, + "rttvar": 4111, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001301765441895, - "end": 7.0001151561737061, - "seconds": 0.9999849796295166, - "bytes": 2761336, - "bits_per_second": 22091019.815301981, + "start": 6.0001189708709717, + "end": 7.0000839233398438, + "seconds": 0.99996495246887207, + "bytes": 3192840, + "bits_per_second": 25543615.240650266, + "retransmits": 90, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0001151561737061, - "end": 8.0000860691070557, - "seconds": 0.99997091293334961, - "bytes": 2758440, - "bits_per_second": 22068161.89809598, + "start": 7.0000839233398438, + "end": 8.0001199245452881, + "seconds": 1.0000360012054443, + "bytes": 2541240, + "bits_per_second": 20329188.124721806, + "retransmits": 135, + "snd_cwnd": 39096, + "rtt": 11325, + "rttvar": 10320, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0001151561737061, - "end": 8.0000860691070557, - "seconds": 0.99997091293334961, - "bytes": 2758440, - "bits_per_second": 22068161.89809598, + "start": 7.0000839233398438, + "end": 8.0001199245452881, + "seconds": 1.0000360012054443, + "bytes": 2541240, + "bits_per_second": 20329188.124721806, + "retransmits": 135, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0000860691070557, - "end": 9.0000820159912109, - "seconds": 0.99999594688415527, - "bytes": 2768576, - "bits_per_second": 22148697.771237876, + "start": 8.0001199245452881, + "end": 9.0001199245452881, + "seconds": 1, + "bytes": 3062520, + "bits_per_second": 24500160, + "retransmits": 81, + "snd_cwnd": 13032, + "rtt": 3648, + "rttvar": 4611, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0000860691070557, - "end": 9.0000820159912109, - "seconds": 0.99999594688415527, - "bytes": 2768576, - "bits_per_second": 22148697.771237876, + "start": 8.0001199245452881, + "end": 9.0001199245452881, + "seconds": 1, + "bytes": 3062520, + "bits_per_second": 24500160, + "retransmits": 81, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0000820159912109, - "end": 10.0001220703125, - "seconds": 1.0000400543212891, - "bytes": 2761336, - "bits_per_second": 22089803.207925096, + "start": 9.0001199245452881, + "end": 10.000140905380249, + "seconds": 1.0000209808349609, + "bytes": 2736720, + "bits_per_second": 21893300.660272095, + "retransmits": 58, + "snd_cwnd": 8688, + "rtt": 6397, + "rttvar": 7237, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0000820159912109, - "end": 10.0001220703125, - "seconds": 1.0000400543212891, - "bytes": 2761336, - "bits_per_second": 22089803.207925096, + "start": 9.0001199245452881, + "end": 10.000140905380249, + "seconds": 1.0000209808349609, + "bytes": 2736720, + "bits_per_second": 21893300.660272095, + "retransmits": 58, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.043806076049805, - "seconds": 10.043806076049805, - "bytes": 28674744, - "bits_per_second": 22839743.247036234, - "retransmits": 57, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.000140905380249, + "seconds": 10.000140905380249, + "bytes": 30211072, + "bits_per_second": 24168517.052591465, + "retransmits": 778, + "max_snd_cwnd": 39096, + "max_rtt": 13807, + "min_rtt": 1477, + "mean_rtt": 7982 }, "receiver": { "socket": 5, "start": 0, - "end": 10.0001220703125, - "seconds": 10.0001220703125, - "bytes": 27658248, - "bits_per_second": 22126328.303218953 + "end": 10.165760040283203, + "seconds": 10.000140905380249, + "bytes": 29728888, + "bits_per_second": 23395309.652948916 } }], "sum_sent": { "start": 0, - "end": 10.043806076049805, - "seconds": 10.043806076049805, - "bytes": 28674744, - "bits_per_second": 22839743.247036234, - "retransmits": 57 + "end": 10.000140905380249, + "seconds": 10.000140905380249, + "bytes": 30211072, + "bits_per_second": 24168517.052591465, + "retransmits": 778 }, "sum_received": { "start": 0, - "end": 10.0001220703125, - "seconds": 10.0001220703125, - "bytes": 27658248, - "bits_per_second": 22126328.303218953 + "end": 10.165760040283203, + "seconds": 10.165760040283203, + "bytes": 29728888, + "bits_per_second": 23395309.652948916 }, "cpu_utilization_percent": { - "host_total": 1.5067570963464285, - "host_user": 0.356880479388197, - "host_system": 1.1499460084572377, - "remote_total": 0.0923823797618372, - "remote_user": 0, - "remote_system": 0.0923823797618372 + "host_total": 0.567384771897822, + "host_user": 0.13481880489403561, + "host_system": 0.43265517221214145, + "remote_total": 0.24312409273562771, + "remote_user": 0.031246959117417695, + "remote_system": 0.21188865717934072 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/1p2/3.json b/results/manual/outbound/1p2/3.json new file mode 100644 index 0000000..556237a --- /dev/null +++ b/results/manual/outbound/1p2/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54456, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:01:26 GMT", + "timesecs": 1620964886 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "5qkdct5cawdwuxc7crgvpupswn4ewil7snqe", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001218318939209, + "seconds": 1.0001218318939209, + "bytes": 5085376, + "bits_per_second": 40678052.115869708, + "retransmits": 134, + "snd_cwnd": 28960, + "rtt": 13643, + "rttvar": 10056, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001218318939209, + "seconds": 1.0001218318939209, + "bytes": 5085376, + "bits_per_second": 40678052.115869708, + "retransmits": 134, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001218318939209, + "end": 2.0001897811889648, + "seconds": 1.0000679492950439, + "bytes": 2410920, + "bits_per_second": 19286049.526530489, + "retransmits": 201, + "snd_cwnd": 30408, + "rtt": 13852, + "rttvar": 3248, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001218318939209, + "end": 2.0001897811889648, + "seconds": 1.0000679492950439, + "bytes": 2410920, + "bits_per_second": 19286049.526530489, + "retransmits": 201, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001897811889648, + "end": 3.0001308917999268, + "seconds": 0.99994111061096191, + "bytes": 2997360, + "bits_per_second": 23980292.184755716, + "retransmits": 95, + "snd_cwnd": 7240, + "rtt": 1125, + "rttvar": 784, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001897811889648, + "end": 3.0001308917999268, + "seconds": 0.99994111061096191, + "bytes": 2997360, + "bits_per_second": 23980292.184755716, + "retransmits": 95, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001308917999268, + "end": 4.0001089572906494, + "seconds": 0.99997806549072266, + "bytes": 2606400, + "bits_per_second": 20851657.370872051, + "retransmits": 44, + "snd_cwnd": 36200, + "rtt": 17613, + "rttvar": 1095, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001308917999268, + "end": 4.0001089572906494, + "seconds": 0.99997806549072266, + "bytes": 2606400, + "bits_per_second": 20851657.370872051, + "retransmits": 44, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001089572906494, + "end": 5.0001509189605713, + "seconds": 1.0000419616699219, + "bytes": 2997360, + "bits_per_second": 23977873.848372146, + "retransmits": 133, + "snd_cwnd": 14480, + "rtt": 3125, + "rttvar": 3739, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001089572906494, + "end": 5.0001509189605713, + "seconds": 1.0000419616699219, + "bytes": 2997360, + "bits_per_second": 23977873.848372146, + "retransmits": 133, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001509189605713, + "end": 6.0001838207244873, + "seconds": 1.000032901763916, + "bytes": 2476080, + "bits_per_second": 19807988.282245886, + "retransmits": 68, + "snd_cwnd": 14480, + "rtt": 8348, + "rttvar": 10515, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001509189605713, + "end": 6.0001838207244873, + "seconds": 1.000032901763916, + "bytes": 2476080, + "bits_per_second": 19807988.282245886, + "retransmits": 68, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001838207244873, + "end": 7.00017786026001, + "seconds": 0.99999403953552246, + "bytes": 2932200, + "bits_per_second": 23457739.819024913, + "retransmits": 65, + "snd_cwnd": 31856, + "rtt": 11994, + "rttvar": 5816, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001838207244873, + "end": 7.00017786026001, + "seconds": 0.99999403953552246, + "bytes": 2932200, + "bits_per_second": 23457739.819024913, + "retransmits": 65, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.00017786026001, + "end": 8.0003328323364258, + "seconds": 1.000154972076416, + "bytes": 2410920, + "bits_per_second": 19284371.460912324, + "retransmits": 45, + "snd_cwnd": 21720, + "rtt": 8868, + "rttvar": 7745, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.00017786026001, + "end": 8.0003328323364258, + "seconds": 1.000154972076416, + "bytes": 2410920, + "bits_per_second": 19284371.460912324, + "retransmits": 45, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0003328323364258, + "end": 9.0003659725189209, + "seconds": 1.0000331401824951, + "bytes": 2280600, + "bits_per_second": 18244195.384035498, + "retransmits": 91, + "snd_cwnd": 1448, + "rtt": 5272, + "rttvar": 5389, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0003328323364258, + "end": 9.0003659725189209, + "seconds": 1.0000331401824951, + "bytes": 2280600, + "bits_per_second": 18244195.384035498, + "retransmits": 91, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0003659725189209, + "end": 10.000147819519043, + "seconds": 0.99978184700012207, + "bytes": 3714120, + "bits_per_second": 29719443.385729298, + "retransmits": 79, + "snd_cwnd": 24616, + "rtt": 1421, + "rttvar": 403, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0003659725189209, + "end": 10.000147819519043, + "seconds": 0.99978184700012207, + "bytes": 3714120, + "bits_per_second": 29719443.385729298, + "retransmits": 79, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000147819519043, + "seconds": 10.000147819519043, + "bytes": 29911336, + "bits_per_second": 23928715.086884454, + "retransmits": 955, + "max_snd_cwnd": 36200, + "max_rtt": 17613, + "min_rtt": 1125, + "mean_rtt": 8526 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.136964797973633, + "seconds": 10.000147819519043, + "bytes": 29456664, + "bits_per_second": 23246930.091649015 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000147819519043, + "seconds": 10.000147819519043, + "bytes": 29911336, + "bits_per_second": 23928715.086884454, + "retransmits": 955 + }, + "sum_received": { + "start": 0, + "end": 10.136964797973633, + "seconds": 10.136964797973633, + "bytes": 29456664, + "bits_per_second": 23246930.091649015 + }, + "cpu_utilization_percent": { + "host_total": 0.55137261300264, + "host_user": 0.086722858268046682, + "host_system": 0.46465966705123152, + "remote_total": 0.59535435095930345, + "remote_user": 0.055084874689931125, + "remote_system": 0.54030134794228835 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/1p2/4.json b/results/manual/outbound/1p2/4.json new file mode 100644 index 0000000..480295d --- /dev/null +++ b/results/manual/outbound/1p2/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54464, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:04:13 GMT", + "timesecs": 1620965053 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "fkkckigpdzzvezrkux5evyeoeyquecs3mmxw", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0002260208129883, + "seconds": 1.0002260208129883, + "bytes": 4475768, + "bits_per_second": 35798052.89498128, + "retransmits": 80, + "snd_cwnd": 2896, + "rtt": 23509, + "rttvar": 17075, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0002260208129883, + "seconds": 1.0002260208129883, + "bytes": 4475768, + "bits_per_second": 35798052.89498128, + "retransmits": 80, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0002260208129883, + "end": 2.0001468658447266, + "seconds": 0.99992084503173828, + "bytes": 3062520, + "bits_per_second": 24502099.462905332, + "retransmits": 52, + "snd_cwnd": 26064, + "rtt": 17232, + "rttvar": 8560, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0002260208129883, + "end": 2.0001468658447266, + "seconds": 0.99992084503173828, + "bytes": 3062520, + "bits_per_second": 24502099.462905332, + "retransmits": 52, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001468658447266, + "end": 3.0001199245452881, + "seconds": 0.99997305870056152, + "bytes": 2736720, + "bits_per_second": 21894349.86223565, + "retransmits": 46, + "snd_cwnd": 17376, + "rtt": 1445, + "rttvar": 214, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001468658447266, + "end": 3.0001199245452881, + "seconds": 0.99997305870056152, + "bytes": 2736720, + "bits_per_second": 21894349.86223565, + "retransmits": 46, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001199245452881, + "end": 4.0001418590545654, + "seconds": 1.0000219345092773, + "bytes": 3062520, + "bits_per_second": 24499622.612800509, + "retransmits": 74, + "snd_cwnd": 5792, + "rtt": 1413, + "rttvar": 1315, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001199245452881, + "end": 4.0001418590545654, + "seconds": 1.0000219345092773, + "bytes": 3062520, + "bits_per_second": 24499622.612800509, + "retransmits": 74, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001418590545654, + "end": 5.000234842300415, + "seconds": 1.0000929832458496, + "bytes": 2541240, + "bits_per_second": 20328029.833804324, + "retransmits": 75, + "snd_cwnd": 14480, + "rtt": 12500, + "rttvar": 5117, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001418590545654, + "end": 5.000234842300415, + "seconds": 1.0000929832458496, + "bytes": 2541240, + "bits_per_second": 20328029.833804324, + "retransmits": 75, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.000234842300415, + "end": 6.0001928806304932, + "seconds": 0.99995803833007812, + "bytes": 3127680, + "bits_per_second": 25022489.985465392, + "retransmits": 55, + "snd_cwnd": 31856, + "rtt": 10725, + "rttvar": 3983, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.000234842300415, + "end": 6.0001928806304932, + "seconds": 0.99995803833007812, + "bytes": 3127680, + "bits_per_second": 25022489.985465392, + "retransmits": 55, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001928806304932, + "end": 7.0002310276031494, + "seconds": 1.0000381469726562, + "bytes": 2541240, + "bits_per_second": 20329144.504680455, + "retransmits": 102, + "snd_cwnd": 1448, + "rtt": 2220, + "rttvar": 2264, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001928806304932, + "end": 7.0002310276031494, + "seconds": 1.0000381469726562, + "bytes": 2541240, + "bits_per_second": 20329144.504680455, + "retransmits": 102, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0002310276031494, + "end": 8.0001718997955322, + "seconds": 0.99994087219238281, + "bytes": 2997360, + "bits_per_second": 23980297.90244098, + "retransmits": 94, + "snd_cwnd": 14480, + "rtt": 3195, + "rttvar": 3819, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0002310276031494, + "end": 8.0001718997955322, + "seconds": 0.99994087219238281, + "bytes": 2997360, + "bits_per_second": 23980297.90244098, + "retransmits": 94, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001718997955322, + "end": 9.0002880096435547, + "seconds": 1.0001161098480225, + "bytes": 2410920, + "bits_per_second": 19285120.80755394, + "retransmits": 48, + "snd_cwnd": 28960, + "rtt": 1809, + "rttvar": 559, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001718997955322, + "end": 9.0002880096435547, + "seconds": 1.0001161098480225, + "bytes": 2410920, + "bits_per_second": 19285120.80755394, + "retransmits": 48, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002880096435547, + "end": 10.000144958496094, + "seconds": 0.99985694885253906, + "bytes": 3323160, + "bits_per_second": 26589083.598918758, + "retransmits": 41, + "snd_cwnd": 14480, + "rtt": 1311, + "rttvar": 279, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002880096435547, + "end": 10.000144958496094, + "seconds": 0.99985694885253906, + "bytes": 3323160, + "bits_per_second": 26589083.598918758, + "retransmits": 41, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000144958496094, + "seconds": 10.000144958496094, + "bytes": 30279128, + "bits_per_second": 24222951.267741326, + "retransmits": 667, + "max_snd_cwnd": 31856, + "max_rtt": 23509, + "min_rtt": 1311, + "mean_rtt": 7535 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.040968894958496, + "seconds": 10.000144958496094, + "bytes": 30047448, + "bits_per_second": 23939879.359719258 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000144958496094, + "seconds": 10.000144958496094, + "bytes": 30279128, + "bits_per_second": 24222951.267741326, + "retransmits": 667 + }, + "sum_received": { + "start": 0, + "end": 10.040968894958496, + "seconds": 10.040968894958496, + "bytes": 30047448, + "bits_per_second": 23939879.359719258 + }, + "cpu_utilization_percent": { + "host_total": 0.57482627806154529, + "host_user": 0.17835779409982189, + "host_system": 0.39656759364948729, + "remote_total": 1.8036162834245615, + "remote_user": 0.1881301853752515, + "remote_system": 1.6154918482765734 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/2p2/0.json b/results/manual/outbound/2p2/0.json index 6594f23..2f491c9 100644 --- a/results/manual/outbound/2p2/0.json +++ b/results/manual/outbound/2p2/0.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42814, + "local_port": 54468, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:38:55 GMT", - "timesecs": 1616344735 + "time": "Fri, 14 May 2021 04:06:48 GMT", + "timesecs": 1620965208 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "6hwswl6ioel6mspxlvsreowezzevosacy3ew", + "cookie": "xnvpbyavtqixlptthv6r47on4hbj53jnisna", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001370906829834, - "seconds": 1.0001370906829834, - "bytes": 3754664, - "bits_per_second": 30033194.728822451, + "end": 1.0001590251922607, + "seconds": 1.0001590251922607, + "bytes": 5742768, + "bits_per_second": 45934839.203364216, + "retransmits": 56, + "snd_cwnd": 24616, + "rtt": 11236, + "rttvar": 4460, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001370906829834, - "seconds": 1.0001370906829834, - "bytes": 3754664, - "bits_per_second": 30033194.728822451, + "end": 1.0001590251922607, + "seconds": 1.0001590251922607, + "bytes": 5742768, + "bits_per_second": 45934839.203364216, + "retransmits": 56, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001370906829834, - "end": 2.0000619888305664, - "seconds": 0.999924898147583, - "bytes": 3679368, - "bits_per_second": 29437154.78485423, + "start": 1.0001590251922607, + "end": 2.0001699924468994, + "seconds": 1.0000109672546387, + "bytes": 4039920, + "bits_per_second": 32319005.549236473, + "retransmits": 45, + "snd_cwnd": 27512, + "rtt": 9420, + "rttvar": 5322, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001370906829834, - "end": 2.0000619888305664, - "seconds": 0.999924898147583, - "bytes": 3679368, - "bits_per_second": 29437154.78485423, + "start": 1.0001590251922607, + "end": 2.0001699924468994, + "seconds": 1.0000109672546387, + "bytes": 4039920, + "bits_per_second": 32319005.549236473, + "retransmits": 45, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0000619888305664, - "end": 3.0000519752502441, - "seconds": 0.99998998641967773, - "bytes": 3683712, - "bits_per_second": 29469991.100122977, + "start": 2.0001699924468994, + "end": 3.0000929832458496, + "seconds": 0.9999229907989502, + "bytes": 3258000, + "bits_per_second": 26066007.322398458, + "retransmits": 58, + "snd_cwnd": 37648, + "rtt": 2237, + "rttvar": 1220, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0000619888305664, - "end": 3.0000519752502441, - "seconds": 0.99998998641967773, - "bytes": 3683712, - "bits_per_second": 29469991.100122977, + "start": 2.0001699924468994, + "end": 3.0000929832458496, + "seconds": 0.9999229907989502, + "bytes": 3258000, + "bits_per_second": 26066007.322398458, + "retransmits": 58, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0000519752502441, - "end": 4.0001130104064941, - "seconds": 1.00006103515625, - "bytes": 3690952, - "bits_per_second": 29525813.887335978, + "start": 3.0000929832458496, + "end": 4.0001611709594727, + "seconds": 1.000068187713623, + "bytes": 4039920, + "bits_per_second": 32317156.366996534, + "retransmits": 67, + "snd_cwnd": 11584, + "rtt": 9517, + "rttvar": 13894, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0000519752502441, - "end": 4.0001130104064941, - "seconds": 1.00006103515625, - "bytes": 3690952, - "bits_per_second": 29525813.887335978, + "start": 3.0000929832458496, + "end": 4.0001611709594727, + "seconds": 1.000068187713623, + "bytes": 4039920, + "bits_per_second": 32317156.366996534, + "retransmits": 67, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001130104064941, - "end": 5.00012993812561, - "seconds": 1.0000169277191162, - "bytes": 3692400, - "bits_per_second": 29538699.977183729, + "start": 4.0001611709594727, + "end": 5.0002760887146, + "seconds": 1.000114917755127, + "bytes": 3518640, + "bits_per_second": 28145885.53801791, + "retransmits": 61, + "snd_cwnd": 18824, + "rtt": 4506, + "rttvar": 5220, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001130104064941, - "end": 5.00012993812561, - "seconds": 1.0000169277191162, - "bytes": 3692400, - "bits_per_second": 29538699.977183729, + "start": 4.0001611709594727, + "end": 5.0002760887146, + "seconds": 1.000114917755127, + "bytes": 3518640, + "bits_per_second": 28145885.53801791, + "retransmits": 61, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.00012993812561, - "end": 6.0001161098480225, - "seconds": 0.99998617172241211, - "bytes": 3685160, - "bits_per_second": 29481687.680961013, + "start": 5.0002760887146, + "end": 6.0002169609069824, + "seconds": 0.99994087219238281, + "bytes": 3844440, + "bits_per_second": 30757338.614000384, + "retransmits": 93, + "snd_cwnd": 24616, + "rtt": 16237, + "rttvar": 8974, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.00012993812561, - "end": 6.0001161098480225, - "seconds": 0.99998617172241211, - "bytes": 3685160, - "bits_per_second": 29481687.680961013, + "start": 5.0002760887146, + "end": 6.0002169609069824, + "seconds": 0.99994087219238281, + "bytes": 3844440, + "bits_per_second": 30757338.614000384, + "retransmits": 93, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001161098480225, - "end": 7.0001420974731445, - "seconds": 1.0000259876251221, - "bytes": 3692400, - "bits_per_second": 29538432.366292972, + "start": 6.0002169609069824, + "end": 7.0000970363616943, + "seconds": 0.99988007545471191, + "bytes": 3714120, + "bits_per_second": 29716523.740597133, + "retransmits": 48, + "snd_cwnd": 23168, + "rtt": 3285, + "rttvar": 2468, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001161098480225, - "end": 7.0001420974731445, - "seconds": 1.0000259876251221, - "bytes": 3692400, - "bits_per_second": 29538432.366292972, + "start": 6.0002169609069824, + "end": 7.0000970363616943, + "seconds": 0.99988007545471191, + "bytes": 3714120, + "bits_per_second": 29716523.740597133, + "retransmits": 48, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0001420974731445, - "end": 8.0001449584960938, - "seconds": 1.0000028610229492, - "bytes": 3693848, - "bits_per_second": 29550699.454770695, + "start": 7.0000970363616943, + "end": 8.0001370906829834, + "seconds": 1.0000400543212891, + "bytes": 4039920, + "bits_per_second": 32318065.521820147, + "retransmits": 36, + "snd_cwnd": 37648, + "rtt": 12931, + "rttvar": 5061, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0001420974731445, - "end": 8.0001449584960938, - "seconds": 1.0000028610229492, - "bytes": 3693848, - "bits_per_second": 29550699.454770695, + "start": 7.0000970363616943, + "end": 8.0001370906829834, + "seconds": 1.0000400543212891, + "bytes": 4039920, + "bits_per_second": 32318065.521820147, + "retransmits": 36, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0001449584960938, - "end": 9.0000839233398438, - "seconds": 0.99993896484375, - "bytes": 3693848, - "bits_per_second": 29552587.746810719, + "start": 8.0001370906829834, + "end": 9.0001161098480225, + "seconds": 0.99997901916503906, + "bytes": 3844440, + "bits_per_second": 30756165.29002798, + "retransmits": 40, + "snd_cwnd": 43440, + "rtt": 19496, + "rttvar": 4198, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0001449584960938, - "end": 9.0000839233398438, - "seconds": 0.99993896484375, - "bytes": 3693848, - "bits_per_second": 29552587.746810719, + "start": 8.0001370906829834, + "end": 9.0001161098480225, + "seconds": 0.99997901916503906, + "bytes": 3844440, + "bits_per_second": 30756165.29002798, + "retransmits": 40, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0000839233398438, - "end": 10.000126123428345, - "seconds": 1.000042200088501, - "bytes": 3693848, - "bits_per_second": 29549537.006923147, + "start": 9.0001161098480225, + "end": 10.000175952911377, + "seconds": 1.0000598430633545, + "bytes": 3974760, + "bits_per_second": 31796177.21935223, + "retransmits": 34, + "snd_cwnd": 41992, + "rtt": 14907, + "rttvar": 6863, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0000839233398438, - "end": 10.000126123428345, - "seconds": 1.000042200088501, - "bytes": 3693848, - "bits_per_second": 29549537.006923147, + "start": 9.0001161098480225, + "end": 10.000175952911377, + "seconds": 1.0000598430633545, + "bytes": 3974760, + "bits_per_second": 31796177.21935223, + "retransmits": 34, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.040673017501831, - "seconds": 10.040673017501831, - "bytes": 38127288, - "bits_per_second": 30378272.797881637, - "retransmits": 15, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.000175952911377, + "seconds": 10.000175952911377, + "bytes": 40016928, + "bits_per_second": 32012979.122312158, + "retransmits": 538, + "max_snd_cwnd": 43440, + "max_rtt": 19496, + "min_rtt": 2237, + "mean_rtt": 10377 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000126123428345, - "seconds": 10.000126123428345, - "bytes": 36960200, - "bits_per_second": 29567787.080932479 + "end": 10.104799032211304, + "seconds": 10.000175952911377, + "bytes": 39738912, + "bits_per_second": 31461416.994695961 } }], "sum_sent": { "start": 0, - "end": 10.040673017501831, - "seconds": 10.040673017501831, - "bytes": 38127288, - "bits_per_second": 30378272.797881637, - "retransmits": 15 + "end": 10.000175952911377, + "seconds": 10.000175952911377, + "bytes": 40016928, + "bits_per_second": 32012979.122312158, + "retransmits": 538 }, "sum_received": { "start": 0, - "end": 10.000126123428345, - "seconds": 10.000126123428345, - "bytes": 36960200, - "bits_per_second": 29567787.080932479 + "end": 10.104799032211304, + "seconds": 10.104799032211304, + "bytes": 39738912, + "bits_per_second": 31461416.994695961 }, "cpu_utilization_percent": { - "host_total": 6.0539620563648189, - "host_user": 1.2829308159829349, - "host_system": 4.7711105394966591, - "remote_total": 0.065180108529148212, - "remote_user": 0.021386186637286163, - "remote_system": 0.0439000568131389 + "host_total": 0.60806682362315778, + "host_user": 0.15011132480231362, + "host_system": 0.45800505359596705, + "remote_total": 0.28994342399441025, + "remote_user": 0.037726928250831342, + "remote_system": 0.25225649488088786 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/2p2/1.json b/results/manual/outbound/2p2/1.json index 6229713..4cb9501 100644 --- a/results/manual/outbound/2p2/1.json +++ b/results/manual/outbound/2p2/1.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42818, + "local_port": 54472, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:39:09 GMT", - "timesecs": 1616344749 + "time": "Fri, 14 May 2021 04:07:26 GMT", + "timesecs": 1620965246 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "d622ecfskyipbl62t2rmcfnfqkdh62crkar6", + "cookie": "c63jb7kg6x4fmd4xlklyo2v3lousipheuizc", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001809597015381, - "seconds": 1.0001809597015381, - "bytes": 3760456, - "bits_per_second": 30078205.056990087, + "end": 1.0002849102020264, + "seconds": 1.0002849102020264, + "bytes": 5295336, + "bits_per_second": 42350621.875765435, + "retransmits": 79, + "snd_cwnd": 11584, + "rtt": 1909, + "rttvar": 1854, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001809597015381, - "seconds": 1.0001809597015381, - "bytes": 3760456, - "bits_per_second": 30078205.056990087, + "end": 1.0002849102020264, + "seconds": 1.0002849102020264, + "bytes": 5295336, + "bits_per_second": 42350621.875765435, + "retransmits": 79, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001809597015381, - "end": 2.0000979900360107, - "seconds": 0.99991703033447266, - "bytes": 3685160, - "bits_per_second": 29483726.254905868, + "start": 1.0002849102020264, + "end": 2.0001299381256104, + "seconds": 0.999845027923584, + "bytes": 4300560, + "bits_per_second": 34409812.560101524, + "retransmits": 98, + "snd_cwnd": 21720, + "rtt": 1425, + "rttvar": 120, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001809597015381, - "end": 2.0000979900360107, - "seconds": 0.99991703033447266, - "bytes": 3685160, - "bits_per_second": 29483726.254905868, + "start": 1.0002849102020264, + "end": 2.0001299381256104, + "seconds": 0.999845027923584, + "bytes": 4300560, + "bits_per_second": 34409812.560101524, + "retransmits": 98, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0000979900360107, - "end": 3.0001249313354492, - "seconds": 1.0000269412994385, - "bytes": 3692400, - "bits_per_second": 29538404.197007593, + "start": 2.0001299381256104, + "end": 3.00016188621521, + "seconds": 1.0000319480895996, + "bytes": 3583800, + "bits_per_second": 28669484.064754326, + "retransmits": 40, + "snd_cwnd": 23168, + "rtt": 8797, + "rttvar": 5899, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0000979900360107, - "end": 3.0001249313354492, - "seconds": 1.0000269412994385, - "bytes": 3692400, - "bits_per_second": 29538404.197007593, + "start": 2.0001299381256104, + "end": 3.00016188621521, + "seconds": 1.0000319480895996, + "bytes": 3583800, + "bits_per_second": 28669484.064754326, + "retransmits": 40, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0001249313354492, - "end": 4.0001289844512939, - "seconds": 1.0000040531158447, - "bytes": 3686608, - "bits_per_second": 29492744.462490115, + "start": 3.00016188621521, + "end": 4.0002579689025879, + "seconds": 1.0000960826873779, + "bytes": 3648960, + "bits_per_second": 29188875.4544048, + "retransmits": 41, + "snd_cwnd": 28960, + "rtt": 6625, + "rttvar": 10362, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0001249313354492, - "end": 4.0001289844512939, - "seconds": 1.0000040531158447, - "bytes": 3686608, - "bits_per_second": 29492744.462490115, + "start": 3.00016188621521, + "end": 4.0002579689025879, + "seconds": 1.0000960826873779, + "bytes": 3648960, + "bits_per_second": 29188875.4544048, + "retransmits": 41, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001289844512939, - "end": 5.0001199245452881, - "seconds": 0.99999094009399414, - "bytes": 3695296, - "bits_per_second": 29562635.834701948, + "start": 4.0002579689025879, + "end": 5.0000917911529541, + "seconds": 0.99983382225036621, + "bytes": 3909600, + "bits_per_second": 31281998.372093521, + "retransmits": 52, + "snd_cwnd": 31856, + "rtt": 18586, + "rttvar": 8534, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001289844512939, - "end": 5.0001199245452881, - "seconds": 0.99999094009399414, - "bytes": 3695296, - "bits_per_second": 29562635.834701948, + "start": 4.0002579689025879, + "end": 5.0000917911529541, + "seconds": 0.99983382225036621, + "bytes": 3909600, + "bits_per_second": 31281998.372093521, + "retransmits": 52, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.0001199245452881, - "end": 6.0001029968261719, - "seconds": 0.99998307228088379, - "bytes": 3692400, - "bits_per_second": 29539700.039745051, + "start": 5.0000917911529541, + "end": 6.0001189708709717, + "seconds": 1.0000271797180176, + "bytes": 3909600, + "bits_per_second": 31275949.928500213, + "retransmits": 107, + "snd_cwnd": 36200, + "rtt": 13271, + "rttvar": 5926, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.0001199245452881, - "end": 6.0001029968261719, - "seconds": 0.99998307228088379, - "bytes": 3692400, - "bits_per_second": 29539700.039745051, + "start": 5.0000917911529541, + "end": 6.0001189708709717, + "seconds": 1.0000271797180176, + "bytes": 3909600, + "bits_per_second": 31275949.928500213, + "retransmits": 107, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0001029968261719, - "end": 7.0001339912414551, - "seconds": 1.0000309944152832, - "bytes": 3692400, - "bits_per_second": 29538284.478144132, + "start": 6.0001189708709717, + "end": 7.0001428127288818, + "seconds": 1.0000238418579102, + "bytes": 3779280, + "bits_per_second": 30233519.176731665, + "retransmits": 72, + "snd_cwnd": 28960, + "rtt": 1681, + "rttvar": 162, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0001029968261719, - "end": 7.0001339912414551, - "seconds": 1.0000309944152832, - "bytes": 3692400, - "bits_per_second": 29538284.478144132, + "start": 6.0001189708709717, + "end": 7.0001428127288818, + "seconds": 1.0000238418579102, + "bytes": 3779280, + "bits_per_second": 30233519.176731665, + "retransmits": 72, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0001339912414551, - "end": 8.0001370906829834, - "seconds": 1.0000030994415283, - "bytes": 3692400, - "bits_per_second": 29539108.445260577, + "start": 7.0001428127288818, + "end": 8.0000839233398438, + "seconds": 0.99994111061096191, + "bytes": 3974760, + "bits_per_second": 31799952.679784752, + "retransmits": 41, + "snd_cwnd": 50680, + "rtt": 23443, + "rttvar": 4126, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0001339912414551, - "end": 8.0001370906829834, - "seconds": 1.0000030994415283, - "bytes": 3692400, - "bits_per_second": 29539108.445260577, + "start": 7.0001428127288818, + "end": 8.0000839233398438, + "seconds": 0.99994111061096191, + "bytes": 3974760, + "bits_per_second": 31799952.679784752, + "retransmits": 41, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0001370906829834, - "end": 9.000114917755127, - "seconds": 0.99997782707214355, - "bytes": 3688056, - "bits_per_second": 29505102.2145028, + "start": 8.0000839233398438, + "end": 9.00009298324585, + "seconds": 1.0000090599060059, + "bytes": 3583800, + "bits_per_second": 28670140.251224149, + "retransmits": 43, + "snd_cwnd": 28960, + "rtt": 1924, + "rttvar": 327, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0001370906829834, - "end": 9.000114917755127, - "seconds": 0.99997782707214355, - "bytes": 3688056, - "bits_per_second": 29505102.2145028, + "start": 8.0000839233398438, + "end": 9.00009298324585, + "seconds": 1.0000090599060059, + "bytes": 3583800, + "bits_per_second": 28670140.251224149, + "retransmits": 43, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.000114917755127, - "end": 10.000093936920166, - "seconds": 0.99997901916503906, - "bytes": 3695296, - "bits_per_second": 29562988.256177556, + "start": 9.00009298324585, + "end": 10.000166893005371, + "seconds": 1.0000739097595215, + "bytes": 3909600, + "bits_per_second": 31274488.510075063, + "retransmits": 38, + "snd_cwnd": 37648, + "rtt": 17195, + "rttvar": 5681, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.000114917755127, - "end": 10.000093936920166, - "seconds": 0.99997901916503906, - "bytes": 3695296, - "bits_per_second": 29562988.256177556, + "start": 9.00009298324585, + "end": 10.000166893005371, + "seconds": 1.0000739097595215, + "bytes": 3909600, + "bits_per_second": 31274488.510075063, + "retransmits": 38, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.040145874023438, - "seconds": 10.040145874023438, - "bytes": 37998416, - "bits_per_second": 30277182.404938668, - "retransmits": 13, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.000166893005371, + "seconds": 10.000166893005371, + "bytes": 39895296, + "bits_per_second": 31915704.1492216, + "retransmits": 611, + "max_snd_cwnd": 50680, + "max_rtt": 23443, + "min_rtt": 1425, + "mean_rtt": 9485 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000093936920166, - "seconds": 10.000093936920166, - "bytes": 36980472, - "bits_per_second": 29584099.696078867 + "end": 10.075079917907715, + "seconds": 10.000166893005371, + "bytes": 39456552, + "bits_per_second": 31330016.096343912 } }], "sum_sent": { "start": 0, - "end": 10.040145874023438, - "seconds": 10.040145874023438, - "bytes": 37998416, - "bits_per_second": 30277182.404938668, - "retransmits": 13 + "end": 10.000166893005371, + "seconds": 10.000166893005371, + "bytes": 39895296, + "bits_per_second": 31915704.1492216, + "retransmits": 611 }, "sum_received": { "start": 0, - "end": 10.000093936920166, - "seconds": 10.000093936920166, - "bytes": 36980472, - "bits_per_second": 29584099.696078867 + "end": 10.075079917907715, + "seconds": 10.075079917907715, + "bytes": 39456552, + "bits_per_second": 31330016.096343912 }, "cpu_utilization_percent": { - "host_total": 6.6500892521994874, - "host_user": 1.2573612373371057, - "host_system": 5.3928568702783783, - "remote_total": 0.096644763680941576, - "remote_user": 0.0022465348840550949, - "remote_system": 0.094405522741315223 + "host_total": 0.60897337082275049, + "host_user": 0.16755441825893094, + "host_system": 0.441428865853268, + "remote_total": 1.0930358184728148, + "remote_user": 0.086091169396017908, + "remote_system": 1.0069683279633126 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/2p2/2.json b/results/manual/outbound/2p2/2.json index 447e2d9..796ad1c 100644 --- a/results/manual/outbound/2p2/2.json +++ b/results/manual/outbound/2p2/2.json @@ -3,21 +3,21 @@ "connected": [{ "socket": 5, "local_host": "1.1.1.2", - "local_port": 42822, + "local_port": 54476, "remote_host": "1.1.1.1", "remote_port": 5201 }], "version": "iperf 3.6", "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", "timestamp": { - "time": "Sun, 21 Mar 2021 16:39:23 GMT", - "timesecs": 1616344763 + "time": "Fri, 14 May 2021 04:09:46 GMT", + "timesecs": 1620965386 }, "connecting_to": { "host": "1.1.1.1", "port": 5201 }, - "cookie": "tdcpiccmepq4cmjdq5rpovikzpfvzgzbhsgo", + "cookie": "sn2gthvrhdnsqmldubjlmvxu2adm4y5elhy3", "tcp_mss_default": 1448, "sock_bufsize": 0, "sndbuf_actual": 16384, @@ -30,7 +30,7 @@ "duration": 10, "bytes": 0, "blocks": 0, - "reverse": 1, + "reverse": 0, "tos": 0 } }, @@ -38,180 +38,240 @@ "streams": [{ "socket": 5, "start": 0, - "end": 1.0001189708709717, - "seconds": 1.0001189708709717, - "bytes": 3734392, - "bits_per_second": 29871582.15185409, + "end": 1.0001308917999268, + "seconds": 1.0001308917999268, + "bytes": 5955624, + "bits_per_second": 47638756.4774184, + "retransmits": 69, + "snd_cwnd": 13032, + "rtt": 4007, + "rttvar": 3657, + "pmtu": 1500, "omitted": false }], "sum": { "start": 0, - "end": 1.0001189708709717, - "seconds": 1.0001189708709717, - "bytes": 3734392, - "bits_per_second": 29871582.15185409, + "end": 1.0001308917999268, + "seconds": 1.0001308917999268, + "bytes": 5955624, + "bits_per_second": 47638756.4774184, + "retransmits": 69, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 1.0001189708709717, - "end": 2.0000920295715332, - "seconds": 0.99997305870056152, - "bytes": 3688056, - "bits_per_second": 29505242.909584232, + "start": 1.0001308917999268, + "end": 2.0000948905944824, + "seconds": 0.99996399879455566, + "bytes": 3648960, + "bits_per_second": 29192730.973505259, + "retransmits": 34, + "snd_cwnd": 28960, + "rtt": 1614, + "rttvar": 200, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 1.0001189708709717, - "end": 2.0000920295715332, - "seconds": 0.99997305870056152, - "bytes": 3688056, - "bits_per_second": 29505242.909584232, + "start": 1.0001308917999268, + "end": 2.0000948905944824, + "seconds": 0.99996399879455566, + "bytes": 3648960, + "bits_per_second": 29192730.973505259, + "retransmits": 34, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 2.0000920295715332, - "end": 3.0001518726348877, - "seconds": 1.0000598430633545, - "bytes": 3690952, - "bits_per_second": 29525849.082742747, + "start": 2.0000948905944824, + "end": 3.0001640319824219, + "seconds": 1.0000691413879395, + "bytes": 3648960, + "bits_per_second": 29189661.786270615, + "retransmits": 51, + "snd_cwnd": 20272, + "rtt": 1424, + "rttvar": 144, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 2.0000920295715332, - "end": 3.0001518726348877, - "seconds": 1.0000598430633545, - "bytes": 3690952, - "bits_per_second": 29525849.082742747, + "start": 2.0000948905944824, + "end": 3.0001640319824219, + "seconds": 1.0000691413879395, + "bytes": 3648960, + "bits_per_second": 29189661.786270615, + "retransmits": 51, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 3.0001518726348877, - "end": 4.0001118183135986, - "seconds": 0.99995994567871094, - "bytes": 3692400, - "bits_per_second": 29540383.220000494, + "start": 3.0001640319824219, + "end": 4.0001389980316162, + "seconds": 0.99997496604919434, + "bytes": 3974760, + "bits_per_second": 31798876.051498748, + "retransmits": 62, + "snd_cwnd": 17376, + "rtt": 1284, + "rttvar": 256, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 3.0001518726348877, - "end": 4.0001118183135986, - "seconds": 0.99995994567871094, - "bytes": 3692400, - "bits_per_second": 29540383.220000494, + "start": 3.0001640319824219, + "end": 4.0001389980316162, + "seconds": 0.99997496604919434, + "bytes": 3974760, + "bits_per_second": 31798876.051498748, + "retransmits": 62, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 4.0001118183135986, - "end": 5.000147819519043, - "seconds": 1.0000360012054443, - "bytes": 3692400, - "bits_per_second": 29538136.591476128, + "start": 4.0001389980316162, + "end": 5.0000820159912109, + "seconds": 0.99994301795959473, + "bytes": 3583800, + "bits_per_second": 28672033.79098798, + "retransmits": 37, + "snd_cwnd": 30408, + "rtt": 4632, + "rttvar": 5513, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 4.0001118183135986, - "end": 5.000147819519043, - "seconds": 1.0000360012054443, - "bytes": 3692400, - "bits_per_second": 29538136.591476128, + "start": 4.0001389980316162, + "end": 5.0000820159912109, + "seconds": 0.99994301795959473, + "bytes": 3583800, + "bits_per_second": 28672033.79098798, + "retransmits": 37, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 5.000147819519043, - "end": 6.0000839233398438, - "seconds": 0.99993610382080078, - "bytes": 3688056, - "bits_per_second": 29506333.341962729, + "start": 5.0000820159912109, + "end": 6.0002501010894775, + "seconds": 1.0001680850982666, + "bytes": 3779280, + "bits_per_second": 30229158.928850926, + "retransmits": 42, + "snd_cwnd": 43440, + "rtt": 24701, + "rttvar": 13277, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 5.000147819519043, - "end": 6.0000839233398438, - "seconds": 0.99993610382080078, - "bytes": 3688056, - "bits_per_second": 29506333.341962729, + "start": 5.0000820159912109, + "end": 6.0002501010894775, + "seconds": 1.0001680850982666, + "bytes": 3779280, + "bits_per_second": 30229158.928850926, + "retransmits": 42, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 6.0000839233398438, - "end": 7.0001230239868164, - "seconds": 1.0000391006469727, - "bytes": 3677920, - "bits_per_second": 29422209.572570346, + "start": 6.0002501010894775, + "end": 7.0000879764556885, + "seconds": 0.99983787536621094, + "bytes": 3909600, + "bits_per_second": 31281871.561971221, + "retransmits": 47, + "snd_cwnd": 26064, + "rtt": 4300, + "rttvar": 4109, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 6.0000839233398438, - "end": 7.0001230239868164, - "seconds": 1.0000391006469727, - "bytes": 3677920, - "bits_per_second": 29422209.572570346, + "start": 6.0002501010894775, + "end": 7.0000879764556885, + "seconds": 0.99983787536621094, + "bytes": 3909600, + "bits_per_second": 31281871.561971221, + "retransmits": 47, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 7.0001230239868164, - "end": 8.0001239776611328, - "seconds": 1.0000009536743164, - "bytes": 3688056, - "bits_per_second": 29504419.862392556, + "start": 7.0000879764556885, + "end": 8.000175952911377, + "seconds": 1.0000879764556885, + "bytes": 3844440, + "bits_per_second": 30752814.476379924, + "retransmits": 32, + "snd_cwnd": 28960, + "rtt": 13615, + "rttvar": 12677, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 7.0001230239868164, - "end": 8.0001239776611328, - "seconds": 1.0000009536743164, - "bytes": 3688056, - "bits_per_second": 29504419.862392556, + "start": 7.0000879764556885, + "end": 8.000175952911377, + "seconds": 1.0000879764556885, + "bytes": 3844440, + "bits_per_second": 30752814.476379924, + "retransmits": 32, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 8.0001239776611328, - "end": 9.0001540184021, - "seconds": 1.0000300407409668, - "bytes": 3695296, - "bits_per_second": 29561479.951238189, + "start": 8.000175952911377, + "end": 9.0009939670562744, + "seconds": 1.0008180141448975, + "bytes": 130320, + "bits_per_second": 1041707.8682289377, + "retransmits": 6, + "snd_cwnd": 1448, + "rtt": 2147, + "rttvar": 1195, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 8.0001239776611328, - "end": 9.0001540184021, - "seconds": 1.0000300407409668, - "bytes": 3695296, - "bits_per_second": 29561479.951238189, + "start": 8.000175952911377, + "end": 9.0009939670562744, + "seconds": 1.0008180141448975, + "bytes": 130320, + "bits_per_second": 1041707.8682289377, + "retransmits": 6, "omitted": false } }, { "streams": [{ "socket": 5, - "start": 9.0001540184021, - "end": 10.000097990036011, - "seconds": 0.99994397163391113, - "bytes": 3692400, - "bits_per_second": 29540855.12584557, + "start": 9.0009939670562744, + "end": 10.001128911972046, + "seconds": 1.0001349449157715, + "bytes": 0, + "bits_per_second": 0, + "retransmits": 1, + "snd_cwnd": 1448, + "rtt": 2147, + "rttvar": 1195, + "pmtu": 1500, "omitted": false }], "sum": { - "start": 9.0001540184021, - "end": 10.000097990036011, - "seconds": 0.99994397163391113, - "bytes": 3692400, - "bits_per_second": 29540855.12584557, + "start": 9.0009939670562744, + "end": 10.001128911972046, + "seconds": 1.0001349449157715, + "bytes": 0, + "bits_per_second": 0, + "retransmits": 1, "omitted": false } }], @@ -220,47 +280,47 @@ "sender": { "socket": 5, "start": 0, - "end": 10.040136098861694, - "seconds": 10.040136098861694, - "bytes": 38356072, - "bits_per_second": 30562192.880511761, - "retransmits": 18, - "max_snd_cwnd": 0, - "max_rtt": 0, - "min_rtt": 0, - "mean_rtt": 0 + "end": 10.001128911972046, + "seconds": 10.001128911972046, + "bytes": 32475744, + "bits_per_second": 25977662.55057409, + "retransmits": 381, + "max_snd_cwnd": 43440, + "max_rtt": 24701, + "min_rtt": 1284, + "mean_rtt": 5987 }, "receiver": { "socket": 5, "start": 0, - "end": 10.000097990036011, - "seconds": 10.000097990036011, - "bytes": 36939928, - "bits_per_second": 29551652.823247567 + "end": 10.041979074478149, + "seconds": 10.001128911972046, + "bytes": 32168768, + "bits_per_second": 25627432.808942962 } }], "sum_sent": { "start": 0, - "end": 10.040136098861694, - "seconds": 10.040136098861694, - "bytes": 38356072, - "bits_per_second": 30562192.880511761, - "retransmits": 18 + "end": 10.001128911972046, + "seconds": 10.001128911972046, + "bytes": 32475744, + "bits_per_second": 25977662.55057409, + "retransmits": 381 }, "sum_received": { "start": 0, - "end": 10.000097990036011, - "seconds": 10.000097990036011, - "bytes": 36939928, - "bits_per_second": 29551652.823247567 + "end": 10.041979074478149, + "seconds": 10.041979074478149, + "bytes": 32168768, + "bits_per_second": 25627432.808942962 }, "cpu_utilization_percent": { - "host_total": 5.4500417301340329, - "host_user": 1.2231523005687608, - "host_system": 4.2269092515028248, - "remote_total": 0.10752626694328714, - "remote_user": 0, - "remote_system": 0.10751854069000386 + "host_total": 0.58890200886272293, + "host_user": 0.15109887931280591, + "host_system": 0.43783286756985657, + "remote_total": 0.22824015153834437, + "remote_user": 0.026366629698258412, + "remote_system": 0.20187922952050555 }, "sender_tcp_congestion": "cubic", "receiver_tcp_congestion": "cubic" diff --git a/results/manual/outbound/2p2/3.json b/results/manual/outbound/2p2/3.json new file mode 100644 index 0000000..4f62d3d --- /dev/null +++ b/results/manual/outbound/2p2/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54486, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:18:59 GMT", + "timesecs": 1620965939 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "y7yapjw24kp73xvgibhx2hv63phuzybua2ya", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.000093936920166, + "seconds": 1.000093936920166, + "bytes": 5944040, + "bits_per_second": 47547853.5010816, + "retransmits": 69, + "snd_cwnd": 31856, + "rtt": 5496, + "rttvar": 6783, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.000093936920166, + "seconds": 1.000093936920166, + "bytes": 5944040, + "bits_per_second": 47547853.5010816, + "retransmits": 69, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.000093936920166, + "end": 2.0000951290130615, + "seconds": 1.0000011920928955, + "bytes": 3648960, + "bits_per_second": 29191645.200847149, + "retransmits": 59, + "snd_cwnd": 21720, + "rtt": 8275, + "rttvar": 8108, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.000093936920166, + "end": 2.0000951290130615, + "seconds": 1.0000011920928955, + "bytes": 3648960, + "bits_per_second": 29191645.200847149, + "retransmits": 59, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0000951290130615, + "end": 3.0001559257507324, + "seconds": 1.0000607967376709, + "bytes": 3648960, + "bits_per_second": 29189905.348981861, + "retransmits": 40, + "snd_cwnd": 36200, + "rtt": 17361, + "rttvar": 1372, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0000951290130615, + "end": 3.0001559257507324, + "seconds": 1.0000607967376709, + "bytes": 3648960, + "bits_per_second": 29189905.348981861, + "retransmits": 40, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001559257507324, + "end": 4.0001609325408936, + "seconds": 1.0000050067901611, + "bytes": 3719912, + "bits_per_second": 29759147.002195586, + "retransmits": 97, + "snd_cwnd": 43440, + "rtt": 24997, + "rttvar": 14504, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001559257507324, + "end": 4.0001609325408936, + "seconds": 1.0000050067901611, + "bytes": 3719912, + "bits_per_second": 29759147.002195586, + "retransmits": 97, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001609325408936, + "end": 5.0002200603485107, + "seconds": 1.0000591278076172, + "bytes": 3518640, + "bits_per_second": 28147455.7026543, + "retransmits": 45, + "snd_cwnd": 28960, + "rtt": 1563, + "rttvar": 243, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001609325408936, + "end": 5.0002200603485107, + "seconds": 1.0000591278076172, + "bytes": 3518640, + "bits_per_second": 28147455.7026543, + "retransmits": 45, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0002200603485107, + "end": 6.0001199245452881, + "seconds": 0.99989986419677734, + "bytes": 4430880, + "bits_per_second": 35450589.873291679, + "retransmits": 51, + "snd_cwnd": 20272, + "rtt": 1528, + "rttvar": 229, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0002200603485107, + "end": 6.0001199245452881, + "seconds": 0.99989986419677734, + "bytes": 4430880, + "bits_per_second": 35450589.873291679, + "retransmits": 51, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001199245452881, + "end": 7.0001461505889893, + "seconds": 1.0000262260437012, + "bytes": 3518640, + "bits_per_second": 28148381.77930934, + "retransmits": 38, + "snd_cwnd": 36200, + "rtt": 16425, + "rttvar": 523, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001199245452881, + "end": 7.0001461505889893, + "seconds": 1.0000262260437012, + "bytes": 3518640, + "bits_per_second": 28148381.77930934, + "retransmits": 38, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001461505889893, + "end": 8.00012493133545, + "seconds": 0.99997878074646, + "bytes": 3583800, + "bits_per_second": 28671008.37739601, + "retransmits": 43, + "snd_cwnd": 24616, + "rtt": 1773, + "rttvar": 399, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001461505889893, + "end": 8.00012493133545, + "seconds": 0.99997878074646, + "bytes": 3583800, + "bits_per_second": 28671008.37739601, + "retransmits": 43, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.00012493133545, + "end": 9.0000989437103271, + "seconds": 0.99997401237487793, + "bytes": 4105080, + "bits_per_second": 32841493.472420812, + "retransmits": 82, + "snd_cwnd": 52128, + "rtt": 1935, + "rttvar": 151, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.00012493133545, + "end": 9.0000989437103271, + "seconds": 0.99997401237487793, + "bytes": 4105080, + "bits_per_second": 32841493.472420812, + "retransmits": 82, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0000989437103271, + "end": 10.000150918960571, + "seconds": 1.0000519752502441, + "bytes": 4039920, + "bits_per_second": 32317680.280480113, + "retransmits": 41, + "snd_cwnd": 23168, + "rtt": 6025, + "rttvar": 6384, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0000989437103271, + "end": 10.000150918960571, + "seconds": 1.0000519752502441, + "bytes": 4039920, + "bits_per_second": 32317680.280480113, + "retransmits": 41, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000150918960571, + "seconds": 10.000150918960571, + "bytes": 40158832, + "bits_per_second": 32126580.748982664, + "retransmits": 565, + "max_snd_cwnd": 52128, + "max_rtt": 24997, + "min_rtt": 1528, + "mean_rtt": 8537 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.047284841537476, + "seconds": 10.000150918960571, + "bytes": 39817104, + "bits_per_second": 31703772.414523903 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000150918960571, + "seconds": 10.000150918960571, + "bytes": 40158832, + "bits_per_second": 32126580.748982664, + "retransmits": 565 + }, + "sum_received": { + "start": 0, + "end": 10.047284841537476, + "seconds": 10.047284841537476, + "bytes": 39817104, + "bits_per_second": 31703772.414523903 + }, + "cpu_utilization_percent": { + "host_total": 0.613839783622889, + "host_user": 0.26475106064003828, + "host_system": 0.34910855080989733, + "remote_total": 0.10725704955108839, + "remote_user": 0.016066704052587623, + "remote_system": 0.091195021489202915 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/2p2/4.json b/results/manual/outbound/2p2/4.json new file mode 100644 index 0000000..92e9733 --- /dev/null +++ b/results/manual/outbound/2p2/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 54482, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 04:12:56 GMT", + "timesecs": 1620965576 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "kc3t6qtmui4idulvvx72tuvry4g5w3jz5fzy", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001249313354492, + "seconds": 1.0001249313354492, + "bytes": 5780416, + "bits_per_second": 46237551.480945587, + "retransmits": 49, + "snd_cwnd": 47784, + "rtt": 10566, + "rttvar": 8748, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001249313354492, + "seconds": 1.0001249313354492, + "bytes": 5780416, + "bits_per_second": 46237551.480945587, + "retransmits": 49, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001249313354492, + "end": 2.0000808238983154, + "seconds": 0.99995589256286621, + "bytes": 3779280, + "bits_per_second": 30235573.61366237, + "retransmits": 55, + "snd_cwnd": 39096, + "rtt": 19419, + "rttvar": 4249, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001249313354492, + "end": 2.0000808238983154, + "seconds": 0.99995589256286621, + "bytes": 3779280, + "bits_per_second": 30235573.61366237, + "retransmits": 55, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0000808238983154, + "end": 3.0000858306884766, + "seconds": 1.0000050067901611, + "bytes": 3844440, + "bits_per_second": 30755366.014336038, + "retransmits": 51, + "snd_cwnd": 18824, + "rtt": 1305, + "rttvar": 253, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0000808238983154, + "end": 3.0000858306884766, + "seconds": 1.0000050067901611, + "bytes": 3844440, + "bits_per_second": 30755366.014336038, + "retransmits": 51, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0000858306884766, + "end": 4.0001130104064941, + "seconds": 1.0000271797180176, + "bytes": 3518640, + "bits_per_second": 28148354.935650188, + "retransmits": 34, + "snd_cwnd": 24616, + "rtt": 1723, + "rttvar": 244, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0000858306884766, + "end": 4.0001130104064941, + "seconds": 1.0000271797180176, + "bytes": 3518640, + "bits_per_second": 28148354.935650188, + "retransmits": 34, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001130104064941, + "end": 5.0001749992370605, + "seconds": 1.0000619888305664, + "bytes": 4105080, + "bits_per_second": 32838604.373317465, + "retransmits": 43, + "snd_cwnd": 30408, + "rtt": 2105, + "rttvar": 463, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001130104064941, + "end": 5.0001749992370605, + "seconds": 1.0000619888305664, + "bytes": 4105080, + "bits_per_second": 32838604.373317465, + "retransmits": 43, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001749992370605, + "end": 6.0001578330993652, + "seconds": 0.99998283386230469, + "bytes": 3714120, + "bits_per_second": 29713470.065518551, + "retransmits": 42, + "snd_cwnd": 36200, + "rtt": 9933, + "rttvar": 6816, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001749992370605, + "end": 6.0001578330993652, + "seconds": 0.99998283386230469, + "bytes": 3714120, + "bits_per_second": 29713470.065518551, + "retransmits": 42, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001578330993652, + "end": 7.0001840591430664, + "seconds": 1.0000262260437012, + "bytes": 3648960, + "bits_per_second": 29190914.437802278, + "retransmits": 70, + "snd_cwnd": 36200, + "rtt": 15154, + "rttvar": 2215, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001578330993652, + "end": 7.0001840591430664, + "seconds": 1.0000262260437012, + "bytes": 3648960, + "bits_per_second": 29190914.437802278, + "retransmits": 70, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001840591430664, + "end": 8.0001430511474609, + "seconds": 0.99995899200439453, + "bytes": 3779280, + "bits_per_second": 30235479.896426722, + "retransmits": 54, + "snd_cwnd": 41992, + "rtt": 6433, + "rttvar": 6348, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001840591430664, + "end": 8.0001430511474609, + "seconds": 0.99995899200439453, + "bytes": 3779280, + "bits_per_second": 30235479.896426722, + "retransmits": 54, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001430511474609, + "end": 9.0001540184021, + "seconds": 1.0000109672546387, + "bytes": 3916840, + "bits_per_second": 31334376.347915649, + "retransmits": 69, + "snd_cwnd": 44888, + "rtt": 20785, + "rttvar": 5973, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001430511474609, + "end": 9.0001540184021, + "seconds": 1.0000109672546387, + "bytes": 3916840, + "bits_per_second": 31334376.347915649, + "retransmits": 69, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001540184021, + "end": 10.000392913818359, + "seconds": 1.0002388954162598, + "bytes": 3648960, + "bits_per_second": 29184707.907056123, + "retransmits": 53, + "snd_cwnd": 13032, + "rtt": 9405, + "rttvar": 14143, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001540184021, + "end": 10.000392913818359, + "seconds": 1.0002388954162598, + "bytes": 3648960, + "bits_per_second": 29184707.907056123, + "retransmits": 53, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000392913818359, + "seconds": 10.000392913818359, + "bytes": 39736016, + "bits_per_second": 31787563.822692208, + "retransmits": 520, + "max_snd_cwnd": 47784, + "max_rtt": 20785, + "min_rtt": 1305, + "mean_rtt": 9682 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.057265996932983, + "seconds": 10.000392913818359, + "bytes": 39375464, + "bits_per_second": 31321008.323341757 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000392913818359, + "seconds": 10.000392913818359, + "bytes": 39736016, + "bits_per_second": 31787563.822692208, + "retransmits": 520 + }, + "sum_received": { + "start": 0, + "end": 10.057265996932983, + "seconds": 10.057265996932983, + "bytes": 39375464, + "bits_per_second": 31321008.323341757 + }, + "cpu_utilization_percent": { + "host_total": 0.60696690290482047, + "host_user": 0.27256571246036915, + "host_system": 0.33453994612513366, + "remote_total": 0.31427613886125377, + "remote_user": 0.021476417187399326, + "remote_system": 0.29280750693347435 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/2p4/0.json b/results/manual/outbound/2p4/0.json new file mode 100644 index 0000000..a605ca1 --- /dev/null +++ b/results/manual/outbound/2p4/0.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39252, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:09:30 GMT", + "timesecs": 1620986970 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "tfg2y5ewxruivj4qi47zgxib4eve3oq4wxmw", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001611709594727, + "seconds": 1.0001611709594727, + "bytes": 7670056, + "bits_per_second": 61350560.071369112, + "retransmits": 85, + "snd_cwnd": 41992, + "rtt": 4202, + "rttvar": 3270, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001611709594727, + "seconds": 1.0001611709594727, + "bytes": 7670056, + "bits_per_second": 61350560.071369112, + "retransmits": 85, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001611709594727, + "end": 2.0001051425933838, + "seconds": 0.99994397163391113, + "bytes": 5929560, + "bits_per_second": 47439137.937387295, + "retransmits": 60, + "snd_cwnd": 31856, + "rtt": 1978, + "rttvar": 860, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001611709594727, + "end": 2.0001051425933838, + "seconds": 0.99994397163391113, + "bytes": 5929560, + "bits_per_second": 47439137.937387295, + "retransmits": 60, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001051425933838, + "end": 3.0001521110534668, + "seconds": 1.000046968460083, + "bytes": 5277960, + "bits_per_second": 42221696.911913954, + "retransmits": 91, + "snd_cwnd": 34752, + "rtt": 12031, + "rttvar": 6420, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001051425933838, + "end": 3.0001521110534668, + "seconds": 1.000046968460083, + "bytes": 5277960, + "bits_per_second": 42221696.911913954, + "retransmits": 91, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001521110534668, + "end": 4.0002050399780273, + "seconds": 1.0000529289245605, + "bytes": 5538600, + "bits_per_second": 44306454.906990685, + "retransmits": 43, + "snd_cwnd": 33304, + "rtt": 7822, + "rttvar": 3984, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001521110534668, + "end": 4.0002050399780273, + "seconds": 1.0000529289245605, + "bytes": 5538600, + "bits_per_second": 44306454.906990685, + "retransmits": 43, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0002050399780273, + "end": 5.0002071857452393, + "seconds": 1.0000021457672119, + "bytes": 6059880, + "bits_per_second": 48478935.975488715, + "retransmits": 72, + "snd_cwnd": 10136, + "rtt": 1229, + "rttvar": 302, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0002050399780273, + "end": 5.0002071857452393, + "seconds": 1.0000021457672119, + "bytes": 6059880, + "bits_per_second": 48478935.975488715, + "retransmits": 72, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0002071857452393, + "end": 6.0001661777496338, + "seconds": 0.99995899200439453, + "bytes": 5864400, + "bits_per_second": 46917123.977213882, + "retransmits": 98, + "snd_cwnd": 21720, + "rtt": 7124, + "rttvar": 3610, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0002071857452393, + "end": 6.0001661777496338, + "seconds": 0.99995899200439453, + "bytes": 5864400, + "bits_per_second": 46917123.977213882, + "retransmits": 98, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001661777496338, + "end": 7.0002009868621826, + "seconds": 1.0000348091125488, + "bytes": 5668920, + "bits_per_second": 45349781.414354682, + "retransmits": 62, + "snd_cwnd": 57920, + "rtt": 18191, + "rttvar": 3632, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001661777496338, + "end": 7.0002009868621826, + "seconds": 1.0000348091125488, + "bytes": 5668920, + "bits_per_second": 45349781.414354682, + "retransmits": 62, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0002009868621826, + "end": 8.0001471042633057, + "seconds": 0.999946117401123, + "bytes": 5994720, + "bits_per_second": 47960344.227990039, + "retransmits": 89, + "snd_cwnd": 36200, + "rtt": 1880, + "rttvar": 561, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0002009868621826, + "end": 8.0001471042633057, + "seconds": 0.999946117401123, + "bytes": 5994720, + "bits_per_second": 47960344.227990039, + "retransmits": 89, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001471042633057, + "end": 9.0000991821289062, + "seconds": 0.99995207786560059, + "bytes": 5538600, + "bits_per_second": 44310923.474030085, + "retransmits": 54, + "snd_cwnd": 33304, + "rtt": 1564, + "rttvar": 795, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001471042633057, + "end": 9.0000991821289062, + "seconds": 0.99995207786560059, + "bytes": 5538600, + "bits_per_second": 44310923.474030085, + "retransmits": 54, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0000991821289062, + "end": 10.000102043151855, + "seconds": 1.0000028610229492, + "bytes": 5603760, + "bits_per_second": 44829951.740479261, + "retransmits": 70, + "snd_cwnd": 30408, + "rtt": 1665, + "rttvar": 226, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0000991821289062, + "end": 10.000102043151855, + "seconds": 1.0000028610229492, + "bytes": 5603760, + "bits_per_second": 44829951.740479261, + "retransmits": 70, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000102043151855, + "seconds": 10.000102043151855, + "bytes": 59146456, + "bits_per_second": 47316681.965663686, + "retransmits": 724, + "max_snd_cwnd": 57920, + "max_rtt": 18191, + "min_rtt": 1229, + "mean_rtt": 5768 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.042309999465942, + "seconds": 10.000102043151855, + "bytes": 58638208, + "bits_per_second": 46712924.020962052 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000102043151855, + "seconds": 10.000102043151855, + "bytes": 59146456, + "bits_per_second": 47316681.965663686, + "retransmits": 724 + }, + "sum_received": { + "start": 0, + "end": 10.042309999465942, + "seconds": 10.042309999465942, + "bytes": 58638208, + "bits_per_second": 46712924.020962052 + }, + "cpu_utilization_percent": { + "host_total": 0.681419320961365, + "host_user": 0.13013491511843614, + "host_system": 0.55129431710836063, + "remote_total": 1.2637459997801388, + "remote_user": 0.21429480435336715, + "remote_system": 1.0496861839038913 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/2p4/1.json b/results/manual/outbound/2p4/1.json new file mode 100644 index 0000000..55a070b --- /dev/null +++ b/results/manual/outbound/2p4/1.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39256, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:09:44 GMT", + "timesecs": 1620986984 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "6fytryvusbdnhdiz63ncnquuxxhnqph4jyp4", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001111030578613, + "seconds": 1.0001111030578613, + "bytes": 7373216, + "bits_per_second": 58979175.233281441, + "retransmits": 96, + "snd_cwnd": 36200, + "rtt": 2166, + "rttvar": 627, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001111030578613, + "seconds": 1.0001111030578613, + "bytes": 7373216, + "bits_per_second": 58979175.233281441, + "retransmits": 96, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001111030578613, + "end": 2.0002570152282715, + "seconds": 1.0001459121704102, + "bytes": 5538600, + "bits_per_second": 44302335.750036471, + "retransmits": 75, + "snd_cwnd": 23168, + "rtt": 1483, + "rttvar": 237, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001111030578613, + "end": 2.0002570152282715, + "seconds": 1.0001459121704102, + "bytes": 5538600, + "bits_per_second": 44302335.750036471, + "retransmits": 75, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0002570152282715, + "end": 3.0000879764556885, + "seconds": 0.999830961227417, + "bytes": 6320520, + "bits_per_second": 50572708.748613067, + "retransmits": 77, + "snd_cwnd": 34752, + "rtt": 1777, + "rttvar": 380, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0002570152282715, + "end": 3.0000879764556885, + "seconds": 0.999830961227417, + "bytes": 6320520, + "bits_per_second": 50572708.748613067, + "retransmits": 77, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0000879764556885, + "end": 4.0002081394195557, + "seconds": 1.0001201629638672, + "bytes": 5606656, + "bits_per_second": 44847858.948345669, + "retransmits": 57, + "snd_cwnd": 34752, + "rtt": 15307, + "rttvar": 3848, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0000879764556885, + "end": 4.0002081394195557, + "seconds": 1.0001201629638672, + "bytes": 5606656, + "bits_per_second": 44847858.948345669, + "retransmits": 57, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0002081394195557, + "end": 5.0000870227813721, + "seconds": 0.99987888336181641, + "bytes": 5994720, + "bits_per_second": 47963569.186255127, + "retransmits": 70, + "snd_cwnd": 33304, + "rtt": 3871, + "rttvar": 1109, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0002081394195557, + "end": 5.0000870227813721, + "seconds": 0.99987888336181641, + "bytes": 5994720, + "bits_per_second": 47963569.186255127, + "retransmits": 70, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0000870227813721, + "end": 6.0001311302185059, + "seconds": 1.0000441074371338, + "bytes": 5212800, + "bits_per_second": 41700560.6951407, + "retransmits": 57, + "snd_cwnd": 31856, + "rtt": 13222, + "rttvar": 3068, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0000870227813721, + "end": 6.0001311302185059, + "seconds": 1.0000441074371338, + "bytes": 5212800, + "bits_per_second": 41700560.6951407, + "retransmits": 57, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001311302185059, + "end": 7.0001189708709717, + "seconds": 0.99998784065246582, + "bytes": 6320520, + "bits_per_second": 50564774.8346702, + "retransmits": 88, + "snd_cwnd": 62264, + "rtt": 2179, + "rttvar": 279, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001311302185059, + "end": 7.0001189708709717, + "seconds": 0.99998784065246582, + "bytes": 6320520, + "bits_per_second": 50564774.8346702, + "retransmits": 88, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001189708709717, + "end": 8.0000870227813721, + "seconds": 0.99996805191040039, + "bytes": 5538600, + "bits_per_second": 44310215.626739018, + "retransmits": 97, + "snd_cwnd": 10136, + "rtt": 3700, + "rttvar": 5310, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001189708709717, + "end": 8.0000870227813721, + "seconds": 0.99996805191040039, + "bytes": 5538600, + "bits_per_second": 44310215.626739018, + "retransmits": 97, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0000870227813721, + "end": 9.0001580715179443, + "seconds": 1.0000710487365723, + "bytes": 5799240, + "bits_per_second": 46390624.004775658, + "retransmits": 53, + "snd_cwnd": 47784, + "rtt": 3080, + "rttvar": 394, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0000870227813721, + "end": 9.0001580715179443, + "seconds": 1.0000710487365723, + "bytes": 5799240, + "bits_per_second": 46390624.004775658, + "retransmits": 53, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001580715179443, + "end": 10.000099182128906, + "seconds": 0.99994111061096191, + "bytes": 5473440, + "bits_per_second": 43790098.772162609, + "retransmits": 43, + "snd_cwnd": 46336, + "rtt": 2635, + "rttvar": 215, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001580715179443, + "end": 10.000099182128906, + "seconds": 0.99994111061096191, + "bytes": 5473440, + "bits_per_second": 43790098.772162609, + "retransmits": 43, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000099182128906, + "seconds": 10.000099182128906, + "bytes": 59178312, + "bits_per_second": 47342180.050179556, + "retransmits": 713, + "max_snd_cwnd": 62264, + "max_rtt": 15307, + "min_rtt": 1483, + "mean_rtt": 4942 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.042600870132446, + "seconds": 10.000099182128906, + "bytes": 58762736, + "bits_per_second": 46810770.843051545 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000099182128906, + "seconds": 10.000099182128906, + "bytes": 59178312, + "bits_per_second": 47342180.050179556, + "retransmits": 713 + }, + "sum_received": { + "start": 0, + "end": 10.042600870132446, + "seconds": 10.042600870132446, + "bytes": 58762736, + "bits_per_second": 46810770.843051545 + }, + "cpu_utilization_percent": { + "host_total": 0.6819438690661429, + "host_user": 0.24178442375505202, + "host_system": 0.4401594453110908, + "remote_total": 1.2591908066586477, + "remote_user": 0.14805080601081189, + "remote_system": 1.1112126279747971 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/2p4/2.json b/results/manual/outbound/2p4/2.json new file mode 100644 index 0000000..b8821ca --- /dev/null +++ b/results/manual/outbound/2p4/2.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39260, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:10:15 GMT", + "timesecs": 1620987015 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "46nrt4gwceo6d6ijt4ccudspdgzjg6iecjnu", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001339912414551, + "seconds": 1.0001339912414551, + "bytes": 7685984, + "bits_per_second": 61479634.2674803, + "retransmits": 104, + "snd_cwnd": 39096, + "rtt": 7211, + "rttvar": 7361, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001339912414551, + "seconds": 1.0001339912414551, + "bytes": 7685984, + "bits_per_second": 61479634.2674803, + "retransmits": 104, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001339912414551, + "end": 2.0001740455627441, + "seconds": 1.0000400543212891, + "bytes": 5473440, + "bits_per_second": 43785766.190853104, + "retransmits": 51, + "snd_cwnd": 40544, + "rtt": 17394, + "rttvar": 1292, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001339912414551, + "end": 2.0001740455627441, + "seconds": 1.0000400543212891, + "bytes": 5473440, + "bits_per_second": 43785766.190853104, + "retransmits": 51, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001740455627441, + "end": 3.0000941753387451, + "seconds": 0.999920129776001, + "bytes": 5473440, + "bits_per_second": 43791017.598384731, + "retransmits": 85, + "snd_cwnd": 46336, + "rtt": 1883, + "rttvar": 371, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001740455627441, + "end": 3.0000941753387451, + "seconds": 0.999920129776001, + "bytes": 5473440, + "bits_per_second": 43791017.598384731, + "retransmits": 85, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0000941753387451, + "end": 4.0001111030578613, + "seconds": 1.0000169277191162, + "bytes": 6255360, + "bits_per_second": 50042032.902523018, + "retransmits": 86, + "snd_cwnd": 27512, + "rtt": 2187, + "rttvar": 361, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0000941753387451, + "end": 4.0001111030578613, + "seconds": 1.0000169277191162, + "bytes": 6255360, + "bits_per_second": 50042032.902523018, + "retransmits": 86, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001111030578613, + "end": 5.00007700920105, + "seconds": 0.99996590614318848, + "bytes": 5343120, + "bits_per_second": 42746417.39023371, + "retransmits": 89, + "snd_cwnd": 20272, + "rtt": 1478, + "rttvar": 212, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001111030578613, + "end": 5.00007700920105, + "seconds": 0.99996590614318848, + "bytes": 5343120, + "bits_per_second": 42746417.39023371, + "retransmits": 89, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.00007700920105, + "end": 6.000108003616333, + "seconds": 1.0000309944152832, + "bytes": 5603760, + "bits_per_second": 44828690.560948148, + "retransmits": 73, + "snd_cwnd": 30408, + "rtt": 1454, + "rttvar": 328, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.00007700920105, + "end": 6.000108003616333, + "seconds": 1.0000309944152832, + "bytes": 5603760, + "bits_per_second": 44828690.560948148, + "retransmits": 73, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.000108003616333, + "end": 7.0002830028533936, + "seconds": 1.0001749992370605, + "bytes": 5277960, + "bits_per_second": 42216292.181076787, + "retransmits": 94, + "snd_cwnd": 50680, + "rtt": 7220, + "rttvar": 9496, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.000108003616333, + "end": 7.0002830028533936, + "seconds": 1.0001749992370605, + "bytes": 5277960, + "bits_per_second": 42216292.181076787, + "retransmits": 94, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0002830028533936, + "end": 8.0001180171966553, + "seconds": 0.99983501434326172, + "bytes": 6385680, + "bits_per_second": 51093869.755656935, + "retransmits": 92, + "snd_cwnd": 55024, + "rtt": 2093, + "rttvar": 785, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0002830028533936, + "end": 8.0001180171966553, + "seconds": 0.99983501434326172, + "bytes": 6385680, + "bits_per_second": 51093869.755656935, + "retransmits": 92, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001180171966553, + "end": 9.0000860691070557, + "seconds": 0.99996805191040039, + "bytes": 5864400, + "bits_per_second": 46916698.898900136, + "retransmits": 87, + "snd_cwnd": 17376, + "rtt": 1129, + "rttvar": 118, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001180171966553, + "end": 9.0000860691070557, + "seconds": 0.99996805191040039, + "bytes": 5864400, + "bits_per_second": 46916698.898900136, + "retransmits": 87, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0000860691070557, + "end": 10.0001060962677, + "seconds": 1.0000200271606445, + "bytes": 4952160, + "bits_per_second": 39616486.594258808, + "retransmits": 67, + "snd_cwnd": 18824, + "rtt": 1152, + "rttvar": 174, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0000860691070557, + "end": 10.0001060962677, + "seconds": 1.0000200271606445, + "bytes": 4952160, + "bits_per_second": 39616486.594258808, + "retransmits": 67, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.0001060962677, + "seconds": 10.0001060962677, + "bytes": 58315304, + "bits_per_second": 46651748.242362976, + "retransmits": 828, + "max_snd_cwnd": 55024, + "max_rtt": 17394, + "min_rtt": 1129, + "mean_rtt": 4320 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.0417320728302, + "seconds": 10.0001060962677, + "bytes": 57924344, + "bits_per_second": 46146894.6431863 + } + }], + "sum_sent": { + "start": 0, + "end": 10.0001060962677, + "seconds": 10.0001060962677, + "bytes": 58315304, + "bits_per_second": 46651748.242362976, + "retransmits": 828 + }, + "sum_received": { + "start": 0, + "end": 10.0417320728302, + "seconds": 10.0417320728302, + "bytes": 57924344, + "bits_per_second": 46146894.6431863 + }, + "cpu_utilization_percent": { + "host_total": 0.68521329414487342, + "host_user": 0.0809736260871849, + "host_system": 0.60432886789058748, + "remote_total": 0.54844803608748638, + "remote_user": 0.0018841174653820153, + "remote_system": 0.54661424563286576 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/2p4/3.json b/results/manual/outbound/2p4/3.json new file mode 100644 index 0000000..04b7583 --- /dev/null +++ b/results/manual/outbound/2p4/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39264, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:10:31 GMT", + "timesecs": 1620987031 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "az4czpiszf54ju4mrbfbajfznqwlxubmnguv", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0002720355987549, + "seconds": 1.0002720355987549, + "bytes": 7119816, + "bits_per_second": 56943037.466707826, + "retransmits": 69, + "snd_cwnd": 47784, + "rtt": 3597, + "rttvar": 1731, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0002720355987549, + "seconds": 1.0002720355987549, + "bytes": 7119816, + "bits_per_second": 56943037.466707826, + "retransmits": 69, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0002720355987549, + "end": 2.0001490116119385, + "seconds": 0.99987697601318359, + "bytes": 6059880, + "bits_per_second": 48485004.8185936, + "retransmits": 59, + "snd_cwnd": 40544, + "rtt": 22763, + "rttvar": 1294, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0002720355987549, + "end": 2.0001490116119385, + "seconds": 0.99987697601318359, + "bytes": 6059880, + "bits_per_second": 48485004.8185936, + "retransmits": 59, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001490116119385, + "end": 3.000154972076416, + "seconds": 1.0000059604644775, + "bytes": 5603760, + "bits_per_second": 44829812.793493308, + "retransmits": 57, + "snd_cwnd": 31856, + "rtt": 15028, + "rttvar": 2252, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001490116119385, + "end": 3.000154972076416, + "seconds": 1.0000059604644775, + "bytes": 5603760, + "bits_per_second": 44829812.793493308, + "retransmits": 57, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.000154972076416, + "end": 4.0001940727233887, + "seconds": 1.0000391006469727, + "bytes": 5929560, + "bits_per_second": 47434625.275462821, + "retransmits": 83, + "snd_cwnd": 15928, + "rtt": 1251, + "rttvar": 184, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.000154972076416, + "end": 4.0001940727233887, + "seconds": 1.0000391006469727, + "bytes": 5929560, + "bits_per_second": 47434625.275462821, + "retransmits": 83, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001940727233887, + "end": 5.0000960826873779, + "seconds": 0.99990200996398926, + "bytes": 5668920, + "bits_per_second": 45355804.416908108, + "retransmits": 114, + "snd_cwnd": 34752, + "rtt": 1671, + "rttvar": 343, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001940727233887, + "end": 5.0000960826873779, + "seconds": 0.99990200996398926, + "bytes": 5668920, + "bits_per_second": 45355804.416908108, + "retransmits": 114, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0000960826873779, + "end": 6.0001480579376221, + "seconds": 1.0000519752502441, + "bytes": 5538600, + "bits_per_second": 44306497.158722736, + "retransmits": 79, + "snd_cwnd": 31856, + "rtt": 1690, + "rttvar": 635, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0000960826873779, + "end": 6.0001480579376221, + "seconds": 1.0000519752502441, + "bytes": 5538600, + "bits_per_second": 44306497.158722736, + "retransmits": 79, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001480579376221, + "end": 7.0001680850982666, + "seconds": 1.0000200271606445, + "bytes": 5668920, + "bits_per_second": 45350451.759217314, + "retransmits": 60, + "snd_cwnd": 23168, + "rtt": 4419, + "rttvar": 2530, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001480579376221, + "end": 7.0001680850982666, + "seconds": 1.0000200271606445, + "bytes": 5668920, + "bits_per_second": 45350451.759217314, + "retransmits": 60, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001680850982666, + "end": 8.00023102760315, + "seconds": 1.0000629425048828, + "bytes": 6125040, + "bits_per_second": 48997235.991234377, + "retransmits": 113, + "snd_cwnd": 15928, + "rtt": 1772, + "rttvar": 456, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001680850982666, + "end": 8.00023102760315, + "seconds": 1.0000629425048828, + "bytes": 6125040, + "bits_per_second": 48997235.991234377, + "retransmits": 113, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.00023102760315, + "end": 9.0002040863037109, + "seconds": 0.99997305870056152, + "bytes": 5473440, + "bits_per_second": 43788699.7244713, + "retransmits": 51, + "snd_cwnd": 27512, + "rtt": 11444, + "rttvar": 3640, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.00023102760315, + "end": 9.0002040863037109, + "seconds": 0.99997305870056152, + "bytes": 5473440, + "bits_per_second": 43788699.7244713, + "retransmits": 51, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002040863037109, + "end": 10.000116109848022, + "seconds": 0.99991202354431152, + "bytes": 6125040, + "bits_per_second": 49004631.253770031, + "retransmits": 94, + "snd_cwnd": 11584, + "rtt": 1767, + "rttvar": 1516, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002040863037109, + "end": 10.000116109848022, + "seconds": 0.99991202354431152, + "bytes": 6125040, + "bits_per_second": 49004631.253770031, + "retransmits": 94, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000116109848022, + "seconds": 10.000116109848022, + "bytes": 59312976, + "bits_per_second": 47449829.860746615, + "retransmits": 779, + "max_snd_cwnd": 47784, + "max_rtt": 22763, + "min_rtt": 1251, + "mean_rtt": 6540 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.057633876800537, + "seconds": 10.000116109848022, + "bytes": 58913328, + "bits_per_second": 46860586.672093965 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000116109848022, + "seconds": 10.000116109848022, + "bytes": 59312976, + "bits_per_second": 47449829.860746615, + "retransmits": 779 + }, + "sum_received": { + "start": 0, + "end": 10.057633876800537, + "seconds": 10.057633876800537, + "bytes": 58913328, + "bits_per_second": 46860586.672093965 + }, + "cpu_utilization_percent": { + "host_total": 0.70030274871975173, + "host_user": 0.16683831775524968, + "host_system": 0.53346443096450213, + "remote_total": 1.0334111387273854, + "remote_user": 0.14700333654326553, + "remote_system": 0.88678605933278587 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/2p4/4.json b/results/manual/outbound/2p4/4.json new file mode 100644 index 0000000..65ad883 --- /dev/null +++ b/results/manual/outbound/2p4/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39268, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:10:44 GMT", + "timesecs": 1620987044 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "c55d7sudo4mtziy6rqqz4bvs4vqm3vmop6s4", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001449584960938, + "seconds": 1.0001449584960938, + "bytes": 7784448, + "bits_per_second": 62266557.933405042, + "retransmits": 113, + "snd_cwnd": 28960, + "rtt": 2112, + "rttvar": 335, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001449584960938, + "seconds": 1.0001449584960938, + "bytes": 7784448, + "bits_per_second": 62266557.933405042, + "retransmits": 113, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001449584960938, + "end": 2.0001099109649658, + "seconds": 0.99996495246887207, + "bytes": 5603760, + "bits_per_second": 44831651.238692306, + "retransmits": 49, + "snd_cwnd": 30408, + "rtt": 1835, + "rttvar": 752, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001449584960938, + "end": 2.0001099109649658, + "seconds": 0.99996495246887207, + "bytes": 5603760, + "bits_per_second": 44831651.238692306, + "retransmits": 49, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001099109649658, + "end": 3.0000967979431152, + "seconds": 0.99998688697814941, + "bytes": 5929560, + "bits_per_second": 47437102.043755628, + "retransmits": 64, + "snd_cwnd": 47784, + "rtt": 3067, + "rttvar": 392, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001099109649658, + "end": 3.0000967979431152, + "seconds": 0.99998688697814941, + "bytes": 5929560, + "bits_per_second": 47437102.043755628, + "retransmits": 64, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0000967979431152, + "end": 4.0001568794250488, + "seconds": 1.0000600814819336, + "bytes": 5538600, + "bits_per_second": 44306138.021568909, + "retransmits": 72, + "snd_cwnd": 13032, + "rtt": 2485, + "rttvar": 2754, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0000967979431152, + "end": 4.0001568794250488, + "seconds": 1.0000600814819336, + "bytes": 5538600, + "bits_per_second": 44306138.021568909, + "retransmits": 72, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001568794250488, + "end": 5.0001688003540039, + "seconds": 1.0000119209289551, + "bytes": 5799240, + "bits_per_second": 46393366.947968625, + "retransmits": 66, + "snd_cwnd": 34752, + "rtt": 2950, + "rttvar": 1688, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001568794250488, + "end": 5.0001688003540039, + "seconds": 1.0000119209289551, + "bytes": 5799240, + "bits_per_second": 46393366.947968625, + "retransmits": 66, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001688003540039, + "end": 6.000187873840332, + "seconds": 1.0000190734863281, + "bytes": 5473440, + "bits_per_second": 43786684.835265443, + "retransmits": 60, + "snd_cwnd": 10136, + "rtt": 1044, + "rttvar": 118, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001688003540039, + "end": 6.000187873840332, + "seconds": 1.0000190734863281, + "bytes": 5473440, + "bits_per_second": 43786684.835265443, + "retransmits": 60, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.000187873840332, + "end": 7.0002148151397705, + "seconds": 1.0000269412994385, + "bytes": 5668920, + "bits_per_second": 45350138.208346955, + "retransmits": 148, + "snd_cwnd": 17376, + "rtt": 1419, + "rttvar": 329, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.000187873840332, + "end": 7.0002148151397705, + "seconds": 1.0000269412994385, + "bytes": 5668920, + "bits_per_second": 45350138.208346955, + "retransmits": 148, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0002148151397705, + "end": 8.0001997947692871, + "seconds": 0.9999849796295166, + "bytes": 5603760, + "bits_per_second": 44830753.374524735, + "retransmits": 72, + "snd_cwnd": 20272, + "rtt": 5046, + "rttvar": 7143, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0002148151397705, + "end": 8.0001997947692871, + "seconds": 0.9999849796295166, + "bytes": 5603760, + "bits_per_second": 44830753.374524735, + "retransmits": 72, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001997947692871, + "end": 9.00013780593872, + "seconds": 0.99993801116943359, + "bytes": 5929560, + "bits_per_second": 47439420.71421282, + "retransmits": 55, + "snd_cwnd": 55024, + "rtt": 2925, + "rttvar": 1419, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001997947692871, + "end": 9.00013780593872, + "seconds": 0.99993801116943359, + "bytes": 5929560, + "bits_per_second": 47439420.71421282, + "retransmits": 55, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.00013780593872, + "end": 10.000385999679565, + "seconds": 1.0002481937408447, + "bytes": 5277960, + "bits_per_second": 42213202.947247483, + "retransmits": 96, + "snd_cwnd": 17376, + "rtt": 1720, + "rttvar": 329, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.00013780593872, + "end": 10.000385999679565, + "seconds": 1.0002481937408447, + "bytes": 5277960, + "bits_per_second": 42213202.947247483, + "retransmits": 96, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000385999679565, + "seconds": 10.000385999679565, + "bytes": 58609248, + "bits_per_second": 46885588.617781729, + "retransmits": 795, + "max_snd_cwnd": 55024, + "max_rtt": 5046, + "min_rtt": 1044, + "mean_rtt": 2460 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.086944103240967, + "seconds": 10.000385999679565, + "bytes": 58156024, + "bits_per_second": 46123799.957463264 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000385999679565, + "seconds": 10.000385999679565, + "bytes": 58609248, + "bits_per_second": 46885588.617781729, + "retransmits": 795 + }, + "sum_received": { + "start": 0, + "end": 10.086944103240967, + "seconds": 10.086944103240967, + "bytes": 58156024, + "bits_per_second": 46123799.957463264 + }, + "cpu_utilization_percent": { + "host_total": 0.70221781894812629, + "host_user": 0.10718113612004287, + "host_system": 0.5952745547780447, + "remote_total": 1.3932962681059531, + "remote_user": 0.23151824612562166, + "remote_system": 1.1617861045891194 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/4p4/0.json b/results/manual/outbound/4p4/0.json new file mode 100644 index 0000000..b50ee0b --- /dev/null +++ b/results/manual/outbound/4p4/0.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39272, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:11:04 GMT", + "timesecs": 1620987064 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "s7qjt66kkkorsazfybm5fygmih3zpvfz7xf4", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001559257507324, + "seconds": 1.0001559257507324, + "bytes": 10201160, + "bits_per_second": 81596556.99559328, + "retransmits": 59, + "snd_cwnd": 39096, + "rtt": 2533, + "rttvar": 270, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001559257507324, + "seconds": 1.0001559257507324, + "bytes": 10201160, + "bits_per_second": 81596556.99559328, + "retransmits": 59, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001559257507324, + "end": 2.0001161098480225, + "seconds": 0.99996018409729, + "bytes": 6516000, + "bits_per_second": 52130075.606018595, + "retransmits": 91, + "snd_cwnd": 44888, + "rtt": 1949, + "rttvar": 550, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001559257507324, + "end": 2.0001161098480225, + "seconds": 0.99996018409729, + "bytes": 6516000, + "bits_per_second": 52130075.606018595, + "retransmits": 91, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001161098480225, + "end": 3.0000820159912109, + "seconds": 0.99996590614318848, + "bytes": 8340480, + "bits_per_second": 66726114.950608715, + "retransmits": 67, + "snd_cwnd": 28960, + "rtt": 1626, + "rttvar": 247, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001161098480225, + "end": 3.0000820159912109, + "seconds": 0.99996590614318848, + "bytes": 8340480, + "bits_per_second": 66726114.950608715, + "retransmits": 67, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0000820159912109, + "end": 4.0000979900360107, + "seconds": 1.0000159740447998, + "bytes": 7623720, + "bits_per_second": 60988785.762403943, + "retransmits": 78, + "snd_cwnd": 52128, + "rtt": 2180, + "rttvar": 294, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0000820159912109, + "end": 4.0000979900360107, + "seconds": 1.0000159740447998, + "bytes": 7623720, + "bits_per_second": 60988785.762403943, + "retransmits": 78, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0000979900360107, + "end": 5.0000839233398438, + "seconds": 0.999985933303833, + "bytes": 7428240, + "bits_per_second": 59426755.93811997, + "retransmits": 86, + "snd_cwnd": 44888, + "rtt": 1781, + "rttvar": 295, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0000979900360107, + "end": 5.0000839233398438, + "seconds": 0.999985933303833, + "bytes": 7428240, + "bits_per_second": 59426755.93811997, + "retransmits": 86, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0000839233398438, + "end": 6.0001239776611328, + "seconds": 1.0000400543212891, + "bytes": 8275320, + "bits_per_second": 66199908.407599337, + "retransmits": 125, + "snd_cwnd": 2896, + "rtt": 1183, + "rttvar": 264, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0000839233398438, + "end": 6.0001239776611328, + "seconds": 1.0000400543212891, + "bytes": 8275320, + "bits_per_second": 66199908.407599337, + "retransmits": 125, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0001239776611328, + "end": 7.0001430511474609, + "seconds": 1.0000190734863281, + "bytes": 7819200, + "bits_per_second": 62552406.90752206, + "retransmits": 81, + "snd_cwnd": 26064, + "rtt": 2729, + "rttvar": 2377, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0001239776611328, + "end": 7.0001430511474609, + "seconds": 1.0000190734863281, + "bytes": 7819200, + "bits_per_second": 62552406.90752206, + "retransmits": 81, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001430511474609, + "end": 8.0002400875091553, + "seconds": 1.0000970363616943, + "bytes": 7167600, + "bits_per_second": 57335236.397263125, + "retransmits": 49, + "snd_cwnd": 33304, + "rtt": 7467, + "rttvar": 9463, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001430511474609, + "end": 8.0002400875091553, + "seconds": 1.0000970363616943, + "bytes": 7167600, + "bits_per_second": 57335236.397263125, + "retransmits": 49, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0002400875091553, + "end": 9.0001070499420166, + "seconds": 0.99986696243286133, + "bytes": 7884360, + "bits_per_second": 63083272.445093244, + "retransmits": 117, + "snd_cwnd": 34752, + "rtt": 12536, + "rttvar": 7022, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0002400875091553, + "end": 9.0001070499420166, + "seconds": 0.99986696243286133, + "bytes": 7884360, + "bits_per_second": 63083272.445093244, + "retransmits": 117, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001070499420166, + "end": 10.000245094299316, + "seconds": 1.0001380443572998, + "bytes": 7884360, + "bits_per_second": 63066174.070533074, + "retransmits": 71, + "snd_cwnd": 31856, + "rtt": 5475, + "rttvar": 7272, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001070499420166, + "end": 10.000245094299316, + "seconds": 1.0001380443572998, + "bytes": 7884360, + "bits_per_second": 63066174.070533074, + "retransmits": 71, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000245094299316, + "seconds": 10.000245094299316, + "bytes": 79140440, + "bits_per_second": 63310800.288376413, + "retransmits": 824, + "max_snd_cwnd": 52128, + "max_rtt": 12536, + "min_rtt": 1183, + "mean_rtt": 3945 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.110919952392578, + "seconds": 10.000245094299316, + "bytes": 77446280, + "bits_per_second": 61277336.07992705 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000245094299316, + "seconds": 10.000245094299316, + "bytes": 79140440, + "bits_per_second": 63310800.288376413, + "retransmits": 824 + }, + "sum_received": { + "start": 0, + "end": 10.110919952392578, + "seconds": 10.110919952392578, + "bytes": 77446280, + "bits_per_second": 61277336.07992705 + }, + "cpu_utilization_percent": { + "host_total": 0.72265962523563476, + "host_user": 0.29313642799048106, + "host_system": 0.429543015142459, + "remote_total": 0.99467716018496311, + "remote_user": 0.18796602793869208, + "remote_system": 0.80691302916135033 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/4p4/1.json b/results/manual/outbound/4p4/1.json new file mode 100644 index 0000000..1dd9e4c --- /dev/null +++ b/results/manual/outbound/4p4/1.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39276, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:11:18 GMT", + "timesecs": 1620987078 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "w4r5ra3rx4nixv3yvhzmtfci6s3dzob7ie7s", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0001471042633057, + "seconds": 1.0001471042633057, + "bytes": 9148464, + "bits_per_second": 73176947.359067783, + "retransmits": 150, + "snd_cwnd": 4344, + "rtt": 1126, + "rttvar": 104, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0001471042633057, + "seconds": 1.0001471042633057, + "bytes": 9148464, + "bits_per_second": 73176947.359067783, + "retransmits": 150, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0001471042633057, + "end": 2.0003008842468262, + "seconds": 1.0001537799835205, + "bytes": 6581160, + "bits_per_second": 52641184.839462884, + "retransmits": 57, + "snd_cwnd": 13032, + "rtt": 1077, + "rttvar": 208, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0001471042633057, + "end": 2.0003008842468262, + "seconds": 1.0001537799835205, + "bytes": 6581160, + "bits_per_second": 52641184.839462884, + "retransmits": 57, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0003008842468262, + "end": 3.0002419948577881, + "seconds": 0.99994111061096191, + "bytes": 8014680, + "bits_per_second": 64121216.059238106, + "retransmits": 48, + "snd_cwnd": 27512, + "rtt": 3164, + "rttvar": 460, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0003008842468262, + "end": 3.0002419948577881, + "seconds": 0.99994111061096191, + "bytes": 8014680, + "bits_per_second": 64121216.059238106, + "retransmits": 48, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0002419948577881, + "end": 4.0001389980316162, + "seconds": 0.99989700317382812, + "bytes": 8601120, + "bits_per_second": 68816047.834516644, + "retransmits": 74, + "snd_cwnd": 31856, + "rtt": 1621, + "rttvar": 553, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0002419948577881, + "end": 4.0001389980316162, + "seconds": 0.99989700317382812, + "bytes": 8601120, + "bits_per_second": 68816047.834516644, + "retransmits": 74, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001389980316162, + "end": 5.0001220703125, + "seconds": 0.99998307228088379, + "bytes": 7363080, + "bits_per_second": 58905637.138079837, + "retransmits": 78, + "snd_cwnd": 23168, + "rtt": 1377, + "rttvar": 137, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001389980316162, + "end": 5.0001220703125, + "seconds": 0.99998307228088379, + "bytes": 7363080, + "bits_per_second": 58905637.138079837, + "retransmits": 78, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001220703125, + "end": 6.0002880096435547, + "seconds": 1.0001659393310547, + "bytes": 6776640, + "bits_per_second": 54204125.403690107, + "retransmits": 70, + "snd_cwnd": 17376, + "rtt": 2166, + "rttvar": 745, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001220703125, + "end": 6.0002880096435547, + "seconds": 1.0001659393310547, + "bytes": 6776640, + "bits_per_second": 54204125.403690107, + "retransmits": 70, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0002880096435547, + "end": 7.0001630783081055, + "seconds": 0.99987506866455078, + "bytes": 8145000, + "bits_per_second": 65168141.5429517, + "retransmits": 76, + "snd_cwnd": 21720, + "rtt": 3743, + "rttvar": 4176, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0002880096435547, + "end": 7.0001630783081055, + "seconds": 0.99987506866455078, + "bytes": 8145000, + "bits_per_second": 65168141.5429517, + "retransmits": 76, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001630783081055, + "end": 8.0000970363616943, + "seconds": 0.99993395805358887, + "bytes": 7558560, + "bits_per_second": 60472473.719868757, + "retransmits": 46, + "snd_cwnd": 40544, + "rtt": 1986, + "rttvar": 623, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001630783081055, + "end": 8.0000970363616943, + "seconds": 0.99993395805358887, + "bytes": 7558560, + "bits_per_second": 60472473.719868757, + "retransmits": 46, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0000970363616943, + "end": 9.0002779960632324, + "seconds": 1.0001809597015381, + "bytes": 8405640, + "bits_per_second": 67232953.54479301, + "retransmits": 98, + "snd_cwnd": 20272, + "rtt": 2650, + "rttvar": 2812, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0000970363616943, + "end": 9.0002779960632324, + "seconds": 1.0001809597015381, + "bytes": 8405640, + "bits_per_second": 67232953.54479301, + "retransmits": 98, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0002779960632324, + "end": 10.000186920166016, + "seconds": 0.9999089241027832, + "bytes": 7037280, + "bits_per_second": 56303367.879745975, + "retransmits": 94, + "snd_cwnd": 11584, + "rtt": 1261, + "rttvar": 176, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0002779960632324, + "end": 10.000186920166016, + "seconds": 0.9999089241027832, + "bytes": 7037280, + "bits_per_second": 56303367.879745975, + "retransmits": 94, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000186920166016, + "seconds": 10.000186920166016, + "bytes": 77631624, + "bits_per_second": 62104138.348414965, + "retransmits": 791, + "max_snd_cwnd": 40544, + "max_rtt": 3743, + "min_rtt": 1077, + "mean_rtt": 2017 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.141212940216064, + "seconds": 10.000186920166016, + "bytes": 77117584, + "bits_per_second": 60834998.302171111 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000186920166016, + "seconds": 10.000186920166016, + "bytes": 77631624, + "bits_per_second": 62104138.348414965, + "retransmits": 791 + }, + "sum_received": { + "start": 0, + "end": 10.141212940216064, + "seconds": 10.141212940216064, + "bytes": 77117584, + "bits_per_second": 60834998.302171111 + }, + "cpu_utilization_percent": { + "host_total": 0.75240073768702631, + "host_user": 0.16061229648138192, + "host_system": 0.59192715632907067, + "remote_total": 1.504694215420566, + "remote_user": 0.22446458656147375, + "remote_system": 1.2802296288590922 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/4p4/2.json b/results/manual/outbound/4p4/2.json new file mode 100644 index 0000000..2ac9d43 --- /dev/null +++ b/results/manual/outbound/4p4/2.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39280, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:11:47 GMT", + "timesecs": 1620987107 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "lt6jv5yx4thysgnfrbs6gpk7gfh27vocksed", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0000979900360107, + "seconds": 1.0000979900360107, + "bytes": 9210728, + "bits_per_second": 73678604.230918184, + "retransmits": 119, + "snd_cwnd": 24616, + "rtt": 2003, + "rttvar": 561, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0000979900360107, + "seconds": 1.0000979900360107, + "bytes": 9210728, + "bits_per_second": 73678604.230918184, + "retransmits": 119, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0000979900360107, + "end": 2.0001680850982666, + "seconds": 1.0000700950622559, + "bytes": 7428240, + "bits_per_second": 59421754.828395948, + "retransmits": 47, + "snd_cwnd": 43440, + "rtt": 6799, + "rttvar": 3117, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0000979900360107, + "end": 2.0001680850982666, + "seconds": 1.0000700950622559, + "bytes": 7428240, + "bits_per_second": 59421754.828395948, + "retransmits": 47, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001680850982666, + "end": 3.0001189708709717, + "seconds": 0.99995088577270508, + "bytes": 8275320, + "bits_per_second": 66205811.64728149, + "retransmits": 62, + "snd_cwnd": 21720, + "rtt": 1480, + "rttvar": 253, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001680850982666, + "end": 3.0001189708709717, + "seconds": 0.99995088577270508, + "bytes": 8275320, + "bits_per_second": 66205811.64728149, + "retransmits": 62, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001189708709717, + "end": 4.0001521110534668, + "seconds": 1.0000331401824951, + "bytes": 7363080, + "bits_per_second": 58902687.954171747, + "retransmits": 56, + "snd_cwnd": 44888, + "rtt": 6047, + "rttvar": 6147, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001189708709717, + "end": 4.0001521110534668, + "seconds": 1.0000331401824951, + "bytes": 7363080, + "bits_per_second": 58902687.954171747, + "retransmits": 56, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001521110534668, + "end": 5.0001440048217773, + "seconds": 0.99999189376831055, + "bytes": 7688880, + "bits_per_second": 61511538.626783684, + "retransmits": 74, + "snd_cwnd": 44888, + "rtt": 2148, + "rttvar": 918, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001521110534668, + "end": 5.0001440048217773, + "seconds": 0.99999189376831055, + "bytes": 7688880, + "bits_per_second": 61511538.626783684, + "retransmits": 74, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.0001440048217773, + "end": 6.0000920295715332, + "seconds": 0.99994802474975586, + "bytes": 7363080, + "bits_per_second": 58907701.742539376, + "retransmits": 85, + "snd_cwnd": 57920, + "rtt": 2207, + "rttvar": 323, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.0001440048217773, + "end": 6.0000920295715332, + "seconds": 0.99994802474975586, + "bytes": 7363080, + "bits_per_second": 58907701.742539376, + "retransmits": 85, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0000920295715332, + "end": 7.0001220703125, + "seconds": 1.0000300407409668, + "bytes": 7949520, + "bits_per_second": 63594249.581621341, + "retransmits": 57, + "snd_cwnd": 27512, + "rtt": 1544, + "rttvar": 148, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0000920295715332, + "end": 7.0001220703125, + "seconds": 1.0000300407409668, + "bytes": 7949520, + "bits_per_second": 63594249.581621341, + "retransmits": 57, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.0001220703125, + "end": 8.0002250671386719, + "seconds": 1.0001029968261719, + "bytes": 7623720, + "bits_per_second": 60983478.895224869, + "retransmits": 58, + "snd_cwnd": 50680, + "rtt": 1902, + "rttvar": 520, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.0001220703125, + "end": 8.0002250671386719, + "seconds": 1.0001029968261719, + "bytes": 7623720, + "bits_per_second": 60983478.895224869, + "retransmits": 58, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0002250671386719, + "end": 9.0000860691070557, + "seconds": 0.99986100196838379, + "bytes": 8079840, + "bits_per_second": 64647705.903869145, + "retransmits": 56, + "snd_cwnd": 39096, + "rtt": 2617, + "rttvar": 452, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0002250671386719, + "end": 9.0000860691070557, + "seconds": 0.99986100196838379, + "bytes": 8079840, + "bits_per_second": 64647705.903869145, + "retransmits": 56, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0000860691070557, + "end": 10.000136137008667, + "seconds": 1.0000500679016113, + "bytes": 7558560, + "bits_per_second": 60465452.621667251, + "retransmits": 73, + "snd_cwnd": 26064, + "rtt": 1569, + "rttvar": 231, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0000860691070557, + "end": 10.000136137008667, + "seconds": 1.0000500679016113, + "bytes": 7558560, + "bits_per_second": 60465452.621667251, + "retransmits": 73, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000136137008667, + "seconds": 10.000136137008667, + "bytes": 78540968, + "bits_per_second": 62831919.025049515, + "retransmits": 687, + "max_snd_cwnd": 57920, + "max_rtt": 6799, + "min_rtt": 1480, + "mean_rtt": 2831 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.040771961212158, + "seconds": 10.000136137008667, + "bytes": 78042856, + "bits_per_second": 62180761.639827847 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000136137008667, + "seconds": 10.000136137008667, + "bytes": 78540968, + "bits_per_second": 62831919.025049515, + "retransmits": 687 + }, + "sum_received": { + "start": 0, + "end": 10.040771961212158, + "seconds": 10.040771961212158, + "bytes": 78042856, + "bits_per_second": 62180761.639827847 + }, + "cpu_utilization_percent": { + "host_total": 0.74078280151938058, + "host_user": 0.27554654706166759, + "host_system": 0.46523625445771311, + "remote_total": 0.63269231444528473, + "remote_user": 0.10092802714106158, + "remote_system": 0.53182224489310959 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/4p4/3.json b/results/manual/outbound/4p4/3.json new file mode 100644 index 0000000..377de5b --- /dev/null +++ b/results/manual/outbound/4p4/3.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39284, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:12:03 GMT", + "timesecs": 1620987123 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "bnji4ytqrkaqtguci3wbrhrn43jllvqnhgh5", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0000839233398438, + "seconds": 1.0000839233398438, + "bytes": 9135432, + "bits_per_second": 73077323.106978014, + "retransmits": 98, + "snd_cwnd": 60816, + "rtt": 2806, + "rttvar": 560, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0000839233398438, + "seconds": 1.0000839233398438, + "bytes": 9135432, + "bits_per_second": 73077323.106978014, + "retransmits": 98, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0000839233398438, + "end": 2.0001070499420166, + "seconds": 1.0000231266021729, + "bytes": 7884360, + "bits_per_second": 63073421.326077312, + "retransmits": 58, + "snd_cwnd": 36200, + "rtt": 1756, + "rttvar": 323, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0000839233398438, + "end": 2.0001070499420166, + "seconds": 1.0000231266021729, + "bytes": 7884360, + "bits_per_second": 63073421.326077312, + "retransmits": 58, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001070499420166, + "end": 3.0001869201660156, + "seconds": 1.000079870223999, + "bytes": 7493400, + "bits_per_second": 59942412.38609568, + "retransmits": 68, + "snd_cwnd": 21720, + "rtt": 1688, + "rttvar": 441, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001070499420166, + "end": 3.0001869201660156, + "seconds": 1.000079870223999, + "bytes": 7493400, + "bits_per_second": 59942412.38609568, + "retransmits": 68, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001869201660156, + "end": 4.0000920295715332, + "seconds": 0.99990510940551758, + "bytes": 7623720, + "bits_per_second": 60995547.903801374, + "retransmits": 78, + "snd_cwnd": 44888, + "rtt": 1930, + "rttvar": 268, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001869201660156, + "end": 4.0000920295715332, + "seconds": 0.99990510940551758, + "bytes": 7623720, + "bits_per_second": 60995547.903801374, + "retransmits": 78, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0000920295715332, + "end": 5.00021505355835, + "seconds": 1.0001230239868164, + "bytes": 7623720, + "bits_per_second": 60982257.719530277, + "retransmits": 45, + "snd_cwnd": 43440, + "rtt": 3517, + "rttvar": 2436, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0000920295715332, + "end": 5.00021505355835, + "seconds": 1.0001230239868164, + "bytes": 7623720, + "bits_per_second": 60982257.719530277, + "retransmits": 45, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.00021505355835, + "end": 6.0003180503845215, + "seconds": 1.0001029968261719, + "bytes": 6581160, + "bits_per_second": 52643857.849724032, + "retransmits": 129, + "snd_cwnd": 1448, + "rtt": 1311, + "rttvar": 426, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.00021505355835, + "end": 6.0003180503845215, + "seconds": 1.0001029968261719, + "bytes": 6581160, + "bits_per_second": 52643857.849724032, + "retransmits": 129, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0003180503845215, + "end": 7.00014591217041, + "seconds": 0.99982786178588867, + "bytes": 8926920, + "bits_per_second": 71427655.42904371, + "retransmits": 72, + "snd_cwnd": 40544, + "rtt": 2431, + "rttvar": 500, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0003180503845215, + "end": 7.00014591217041, + "seconds": 0.99982786178588867, + "bytes": 8926920, + "bits_per_second": 71427655.42904371, + "retransmits": 72, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.00014591217041, + "end": 8.0001640319824219, + "seconds": 1.0000181198120117, + "bytes": 7297920, + "bits_per_second": 58382302.123660706, + "retransmits": 64, + "snd_cwnd": 59368, + "rtt": 3503, + "rttvar": 346, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.00014591217041, + "end": 8.0001640319824219, + "seconds": 1.0000181198120117, + "bytes": 7297920, + "bits_per_second": 58382302.123660706, + "retransmits": 64, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001640319824219, + "end": 9.0001840591430664, + "seconds": 1.0000200271606445, + "bytes": 7819200, + "bits_per_second": 62552347.25409285, + "retransmits": 51, + "snd_cwnd": 55024, + "rtt": 6482, + "rttvar": 5384, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001640319824219, + "end": 9.0001840591430664, + "seconds": 1.0000200271606445, + "bytes": 7819200, + "bits_per_second": 62552347.25409285, + "retransmits": 51, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001840591430664, + "end": 10.000332117080688, + "seconds": 1.0001480579376221, + "bytes": 7428240, + "bits_per_second": 59417122.823335342, + "retransmits": 54, + "snd_cwnd": 33304, + "rtt": 3328, + "rttvar": 2507, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001840591430664, + "end": 10.000332117080688, + "seconds": 1.0001480579376221, + "bytes": 7428240, + "bits_per_second": 59417122.823335342, + "retransmits": 54, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000332117080688, + "seconds": 10.000332117080688, + "bytes": 77814072, + "bits_per_second": 62249190.19806762, + "retransmits": 717, + "max_snd_cwnd": 60816, + "max_rtt": 6482, + "min_rtt": 1311, + "mean_rtt": 2875 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.105985879898071, + "seconds": 10.000332117080688, + "bytes": 77326096, + "bits_per_second": 61212114.81509009 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000332117080688, + "seconds": 10.000332117080688, + "bytes": 77814072, + "bits_per_second": 62249190.19806762, + "retransmits": 717 + }, + "sum_received": { + "start": 0, + "end": 10.105985879898071, + "seconds": 10.105985879898071, + "bytes": 77326096, + "bits_per_second": 61212114.81509009 + }, + "cpu_utilization_percent": { + "host_total": 0.75224601701691685, + "host_user": 0.19080864539436462, + "host_system": 0.56164545084326578, + "remote_total": 1.305656293930723, + "remote_user": 0.2759017165348665, + "remote_system": 1.0298238867701572 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +} diff --git a/results/manual/outbound/4p4/4.json b/results/manual/outbound/4p4/4.json new file mode 100644 index 0000000..2407bd2 --- /dev/null +++ b/results/manual/outbound/4p4/4.json @@ -0,0 +1,328 @@ +{ + "start": { + "connected": [{ + "socket": 5, + "local_host": "1.1.1.2", + "local_port": 39288, + "remote_host": "1.1.1.1", + "remote_port": 5201 + }], + "version": "iperf 3.6", + "system_info": "Linux Test-Client 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64", + "timestamp": { + "time": "Fri, 14 May 2021 10:12:16 GMT", + "timesecs": 1620987136 + }, + "connecting_to": { + "host": "1.1.1.1", + "port": 5201 + }, + "cookie": "asol32r6oefqnw4c6ehyqbzs6cwbutuyiqy5", + "tcp_mss_default": 1448, + "sock_bufsize": 0, + "sndbuf_actual": 16384, + "rcvbuf_actual": 131072, + "test_start": { + "protocol": "TCP", + "num_streams": 1, + "blksize": 131072, + "omit": 0, + "duration": 10, + "bytes": 0, + "blocks": 0, + "reverse": 0, + "tos": 0 + } + }, + "intervals": [{ + "streams": [{ + "socket": 5, + "start": 0, + "end": 1.0000920295715332, + "seconds": 1.0000920295715332, + "bytes": 9485848, + "bits_per_second": 75879800.814443022, + "retransmits": 105, + "snd_cwnd": 24616, + "rtt": 1491, + "rttvar": 285, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 0, + "end": 1.0000920295715332, + "seconds": 1.0000920295715332, + "bytes": 9485848, + "bits_per_second": 75879800.814443022, + "retransmits": 105, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 1.0000920295715332, + "end": 2.0001578330993652, + "seconds": 1.000065803527832, + "bytes": 7623720, + "bits_per_second": 60985746.922705017, + "retransmits": 58, + "snd_cwnd": 52128, + "rtt": 5117, + "rttvar": 2271, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 1.0000920295715332, + "end": 2.0001578330993652, + "seconds": 1.000065803527832, + "bytes": 7623720, + "bits_per_second": 60985746.922705017, + "retransmits": 58, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 2.0001578330993652, + "end": 3.0001039505004883, + "seconds": 0.999946117401123, + "bytes": 7297920, + "bits_per_second": 58386506.016683526, + "retransmits": 59, + "snd_cwnd": 31856, + "rtt": 1695, + "rttvar": 259, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 2.0001578330993652, + "end": 3.0001039505004883, + "seconds": 0.999946117401123, + "bytes": 7297920, + "bits_per_second": 58386506.016683526, + "retransmits": 59, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 3.0001039505004883, + "end": 4.0001018047332764, + "seconds": 0.99999785423278809, + "bytes": 7819200, + "bits_per_second": 62553734.225751884, + "retransmits": 55, + "snd_cwnd": 47784, + "rtt": 4170, + "rttvar": 2638, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 3.0001039505004883, + "end": 4.0001018047332764, + "seconds": 0.99999785423278809, + "bytes": 7819200, + "bits_per_second": 62553734.225751884, + "retransmits": 55, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 4.0001018047332764, + "end": 5.00010085105896, + "seconds": 0.99999904632568359, + "bytes": 7949520, + "bits_per_second": 63596220.650082253, + "retransmits": 114, + "snd_cwnd": 52128, + "rtt": 3131, + "rttvar": 622, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 4.0001018047332764, + "end": 5.00010085105896, + "seconds": 0.99999904632568359, + "bytes": 7949520, + "bits_per_second": 63596220.650082253, + "retransmits": 114, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 5.00010085105896, + "end": 6.0002129077911377, + "seconds": 1.0001120567321777, + "bytes": 7297920, + "bits_per_second": 58376818.484485693, + "retransmits": 47, + "snd_cwnd": 28960, + "rtt": 7051, + "rttvar": 9710, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 5.00010085105896, + "end": 6.0002129077911377, + "seconds": 1.0001120567321777, + "bytes": 7297920, + "bits_per_second": 58376818.484485693, + "retransmits": 47, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 6.0002129077911377, + "end": 7.00009298324585, + "seconds": 0.99988007545471191, + "bytes": 9252720, + "bits_per_second": 74030638.0906104, + "retransmits": 69, + "snd_cwnd": 28960, + "rtt": 1884, + "rttvar": 332, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 6.0002129077911377, + "end": 7.00009298324585, + "seconds": 0.99988007545471191, + "bytes": 9252720, + "bits_per_second": 74030638.0906104, + "retransmits": 69, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 7.00009298324585, + "end": 8.0001518726348877, + "seconds": 1.0000588893890381, + "bytes": 7623720, + "bits_per_second": 60986168.561793625, + "retransmits": 54, + "snd_cwnd": 33304, + "rtt": 2043, + "rttvar": 753, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 7.00009298324585, + "end": 8.0001518726348877, + "seconds": 1.0000588893890381, + "bytes": 7623720, + "bits_per_second": 60986168.561793625, + "retransmits": 54, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 8.0001518726348877, + "end": 9.0001959800720215, + "seconds": 1.0000441074371338, + "bytes": 7037280, + "bits_per_second": 56295756.938439935, + "retransmits": 65, + "snd_cwnd": 68056, + "rtt": 3959, + "rttvar": 518, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 8.0001518726348877, + "end": 9.0001959800720215, + "seconds": 1.0000441074371338, + "bytes": 7037280, + "bits_per_second": 56295756.938439935, + "retransmits": 65, + "omitted": false + } + }, { + "streams": [{ + "socket": 5, + "start": 9.0001959800720215, + "end": 10.000094890594482, + "seconds": 0.99989891052246094, + "bytes": 7167600, + "bits_per_second": 57346597.137543276, + "retransmits": 60, + "snd_cwnd": 24616, + "rtt": 1470, + "rttvar": 224, + "pmtu": 1500, + "omitted": false + }], + "sum": { + "start": 9.0001959800720215, + "end": 10.000094890594482, + "seconds": 0.99989891052246094, + "bytes": 7167600, + "bits_per_second": 57346597.137543276, + "retransmits": 60, + "omitted": false + } + }], + "end": { + "streams": [{ + "sender": { + "socket": 5, + "start": 0, + "end": 10.000094890594482, + "seconds": 10.000094890594482, + "bytes": 78555448, + "bits_per_second": 62843762.071805753, + "retransmits": 686, + "max_snd_cwnd": 68056, + "max_rtt": 7051, + "min_rtt": 1470, + "mean_rtt": 3201 + }, + "receiver": { + "socket": 5, + "start": 0, + "end": 10.041627168655396, + "seconds": 10.000094890594482, + "bytes": 77489720, + "bits_per_second": 61734791.542057313 + } + }], + "sum_sent": { + "start": 0, + "end": 10.000094890594482, + "seconds": 10.000094890594482, + "bytes": 78555448, + "bits_per_second": 62843762.071805753, + "retransmits": 686 + }, + "sum_received": { + "start": 0, + "end": 10.041627168655396, + "seconds": 10.041627168655396, + "bytes": 77489720, + "bits_per_second": 61734791.542057313 + }, + "cpu_utilization_percent": { + "host_total": 0.71465426282095124, + "host_user": 0.16367066299007291, + "host_system": 0.55099351085564452, + "remote_total": 1.4096169330714159, + "remote_user": 0.35718158566499808, + "remote_system": 1.0525522007059809 + }, + "sender_tcp_congestion": "cubic", + "receiver_tcp_congestion": "cubic" + } +}