* I am going to turn off the AsyncSlowStart experiment, but wanted to send the results for the curious minded.
What is the feature:* Some time ago, I observed that windows asynchronous IO may delay handing an IO completion to the application when only part of the requested IO can complete. Specifically, I could see from wire traces that we had received data which should complete a socket read (say 1400 bytes). But the application didn't wake until 40-50ms later! This was pure latency as it delayed chrome from doing work which it could do. I further observed that the delay did not occur when the entire buffer was filled. So, if you issue a 1KB read, there was no delay, but if you issue a 4KB or 32KB read, the OS seems to delay completing the IO. One speculative theory is that windows async-io completion logic has a Nagle-esque behavior - trying to batch additional data into a single Async IO Read Completion before handing up to the application. Without the AsyncSlowStart, chrome issues its normal reads 4KB or 32KB. With the AsyncSlowStart feature, Chrome starts the read size at 1KB. With each successful Read completion, it doubles the read size, so 1KB, 2KB, 4KB, 8KB, etc. This allows large transfers to not be impeded by using ridiculously small buffers, but allows us to avoid the delay at the beginning of a connection. *How I measured:* - Using the Net.Transaction_Connected_New_AsyncSlowStart_off compared to Net.Transaction_Connected_New_AsyncSlowStart. - This measures the time-to-first-byte for new connections when the feature is off or on. - Excluding data after the 99%-tile, because the data has a skew at 50s which is not related to this feature (and shows on all of our histograms). *Results:* Based on the time-to-first-byte measurement, the Async Slow Start feature is a clear win. The histograms vary in benefit - sometimes as low as 0.8% and sometimes as high as 6.32%. But overall, it averages a 2-3% win. This is a savings of 3-20ms per request on a fresh connection. It is probably not detectable to most users, although a single page load may hit this problem between 1-10 times on various connections. ***Next Steps:* I'm going to finally turn off the experiment and make this final. Mike ------------- Net.Transaction_Connection_New_AsyncSlowStart --------------------------------------------------------------------------------------- 08/30-9/05 WIN - 4.90% to 3.73% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 260.5 109.0 115.7 122.5 249.0 103.9 110.3 116.7 11.42 4.59% 5.40 4.90% 70.00% 514.0 177.1 188.3 199.6 494.3 169.7 180.5 191.3 19.72 3.99% 7.82 4.33% 90.00% 1640 317.1 337.7 358.2 1589 305.6 325.3 345.0 50.80 3.20% 12.36 3.80% 95.00% 3667 424.3 451.9 479.5 3595 410.4 437.1 463.8 72.28 2.01% 14.82 3.39% 98.00% 26015 633.9 675.3 716.8 24523 611.1 651.0 691.0 1492 6.08% 24.28 3.73% 99.00% 53322 1086 1157 1229 53271 1058 1128 1198 50.34 0.09% 29.31 2.60% 99.50% 55490 1333 1421 1509 55449 1306 1392 1478 41.26 0.07% 29.22 2.10% 09/06-09/12 WIN - 1.35% to 5.07% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 299.8 125.2 133.0 140.8 289.3 123.5 131.2 138.9 10.41 3.60% 1.77 1.35% 70.00% 596.8 204.3 217.4 230.5 577.8 198.6 211.3 224.0 18.97 3.28% 6.12 2.90% 90.00% 2393 385.6 410.6 435.6 2240 371.6 395.7 419.8 152.7 6.82% 14.88 3.76% 95.00% 5692 542.2 577.5 612.9 4928 516.0 549.7 583.3 763.8 15.50% 27.88 5.07% 98.00% 50783 1056 1125 1194 50883 950.4 1013 1075 -99.43 -0.20% 112.1 11.07% 99.00% 54328 1548 1650 1752 54353 1444 1539 1634 -25.04 -0.05% 110.9 7.20% 99.50% 56101 1795 1913 2031 56088 1691 1802 1914 12.16 0.02% 110.2 6.12% 09/13-09/19 WIN - 0.84% to 6.32% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 336.8 142.1 151.1 160.0 321.8 140.9 149.8 158.7 15.02 4.67% 1.26 0.84% 70.00% 668.6 230.6 245.4 260.2 628.5 221.9 236.2 250.4 40.06 6.37% 9.25 3.91% 90.00% 2679 433.3 461.5 489.7 2461 408.9 435.5 462.1 217.3 8.83% 26.00 5.97% 95.00% 5633 594.9 633.8 672.7 5069 559.6 596.1 632.7 563.9 11.12% 37.69 6.32% 98.00% 50600 1008 1074 1140 37796 870.4 927.5 984.6 12804 33.88% 146.8 15.83% 99.00% 54434 1501 1600 1699 53796 1353 1442 1531 638.1 1.19% 157.9 10.95% 99.50% 56351 1748 1863 1978 55912 1600 1705 1810 439.6 0.79% 158.1 9.27% 09/20-09/26 WIN - 5.90% to 6.42% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 342.8 145.0 154.2 163.3 330.0 137.0 145.6 154.2 12.71 3.85% 8.58 5.90% 70.00% 677.5 234.7 249.8 264.9 650.0 223.7 238.1 252.4 27.45 4.22% 11.73 4.93% 90.00% 2707 441.1 469.8 498.5 2460 415.2 442.2 469.2 246.4 10.01% 27.63 6.25% 95.00% 5549 602.1 641.4 680.8 5085 565.8 602.7 639.7 463.5 9.12% 38.70 6.42% 98.00% 50364 990.1 1055 1120 40209 877.3 934.9 992.4 10155 25.26% 120.2 12.86% 99.00% 54064 1483 1580 1678 53661 1364 1454 1543 402.1 0.75% 126.3 8.69% 99.50% 55914 1729 1843 1956 55620 1610 1716 1822 293.4 0.53% 126.3 7.36% 09/27-10/03 WIN - 2.86% to 2.1% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 333.4 140.4 149.2 158.0 320.1 136.5 145.1 153.6 13.27 4.15% 4.14 2.86% 70.00% 643.7 226.3 240.8 255.3 615.1 218.0 231.9 245.9 28.62 4.65% 8.88 3.83% 90.00% 2327 410.0 436.7 463.3 2314 396.4 422.1 447.8 13.27 0.57% 14.60 3.46% 95.00% 5278 558.6 595.1 631.6 5430 547.1 582.8 618.6 -152.59 -2.81% 12.25 2.10% 98.00% 51331 1065 1134 1204 51532 1090 1162 1234 -200.19 -0.39% -27.69 -2.38% 99.00% 54504 1558 1660 1763 54635 1584 1688 1793 -131.08 -0.24% -27.94 -1.66% 99.50% 56091 1805 1923 2042 56187 1831 1952 2072 -96.52 -0.17% -28.07 -1.44% 10/04-10/10 WIN - 0.61% to 1.43% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 291.9 121.2 128.7 136.3 286.5 120.4 127.9 135.4 5.47 1.91% 0.78 0.61% 70.00% 566.0 197.1 209.7 222.2 550.1 194.0 206.4 218.8 15.90 2.89% 3.25 1.58% 90.00% 1952 355.0 378.0 401.0 1934 347.9 370.4 393.0 18.12 0.94% 7.57 2.04% 95.00% 4625 486.0 517.7 549.4 4669 479.2 510.4 541.7 -43.72 -0.94% 7.28 1.43% 98.00% 51497 1001 1066 1132 51598 1017 1083 1150 -101.02 -0.20% -16.90 -1.56% 99.00% 54477 1495 1593 1692 54496 1511 1610 1710 -19.16 -0.04% -16.91 -1.05% 99.50% 55968 1742 1857 1971 55946 1758 1874 1989 21.77 0.04% -16.92 -0.90% 10/11-10/17 WIN 4.1% to 2.48% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 298.9 124.4 132.2 139.9 286.4 119.5 127.0 134.4 12.51 4.37% 5.20 4.10% 60.00% 415.4 159.1 169.2 179.3 396.8 152.5 162.2 171.8 18.59 4.68% 7.02 4.33% 70.00% 584.0 202.5 215.4 228.3 557.2 193.9 206.3 218.7 26.84 4.82% 9.11 4.42% 80.00% 896.7 261.5 278.3 295.1 859.4 250.2 266.3 282.4 37.35 4.35% 11.99 4.50% 90.00% 2115 369.3 393.3 417.3 2085 355.5 378.5 401.6 29.94 1.44% 14.78 3.90% 95.00% 5143 511.0 544.3 577.6 5322 498.6 531.1 563.6 -179.25 -3.37% 13.19 2.48% 98.00% 51955 1117 1190 1264 52362 1187 1265 1343 -407.33 -0.78% -74.24 -5.87% 99.00% 54842 1611 1717 1824 55080 1682 1792 1903 -237.67 -0.43% -74.76 -4.17% 99.50% 56286 1859 1981 2103 56439 1929 2056 2183 -152.85 -0.27% -75.03 -3.65% 10/18-10/24 Data is corrupt. 10/25-10/31 Data is corrupt. 11/01-11/07 Data is corrupt. 11/08-11/14 WIN - 1.21% to 1.32% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 293.2 127.0 134.9 142.9 288.0 125.5 133.3 141.2 5.24 1.82% 1.61 1.21% 60.00% 406.4 160.0 170.1 180.3 397.3 157.6 167.6 177.6 9.10 2.29% 2.56 1.53% 70.00% 576.0 202.1 215.0 227.9 562.2 198.6 211.2 223.9 13.81 2.46% 3.73 1.76% 80.00% 891.2 260.4 277.1 293.9 869.9 255.2 271.7 288.1 21.35 2.45% 5.47 2.02% 90.00% 2169 369.4 393.4 417.4 2155 362.7 386.3 409.8 14.34 0.67% 7.16 1.85% 95.00% 5835 520.2 554.1 588.1 5852 513.4 546.9 580.4 -16.91 -0.29% 7.24 1.32% 98.00% 52421 1267 1350 1433 52417 1263 1346 1429 4.63 0.01% 3.46 0.26% 99.00% 54863 1760 1876 1992 54845 1757 1873 1989 18.32 0.03% 3.47 0.19% 99.50% 56084 2007 2140 2272 56059 2004 2136 2268 25.17 0.04% 3.47 0.16% 11/15-11/22 WIN 1.86% to 2.02% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 296.4 129.0 137.1 145.2 288.9 126.7 134.6 142.5 7.52 2.60% 2.50 1.86% 60.00% 410.5 162.3 172.6 182.9 398.3 158.8 168.8 178.9 12.16 3.05% 3.80 2.25% 70.00% 579.9 204.6 217.7 230.7 561.5 199.6 212.4 225.1 18.37 3.27% 5.26 2.48% 80.00% 894.4 263.0 279.9 296.8 867.1 256.0 272.5 288.9 27.30 3.15% 7.42 2.73% 90.00% 2163 371.8 396.0 420.1 2129 362.4 385.9 409.4 33.19 1.56% 10.06 2.61% 95.00% 5747 521.4 555.5 589.5 5738 511.1 544.5 577.8 9.32 0.16% 11.01 2.02% 98.00% 52364 1252 1335 1417 52405 1254 1336 1418 -41.34 -0.08% -1.21 -0.09% 99.00% 54831 1746 1861 1976 54834 1747 1863 1978 -2.81 -0.01% -1.31 -0.07% 99.50% 56065 1993 2124 2256 56048 1994 2126 2257 16.45 0.03% -1.36 -0.06% 11/22-11/28 Data is corrupt. 11/29-12/05 WIN 2.51% to 2.81% Net.Transaction_Connected_New_AsyncSlowStart_off (All) Net.Transaction_Connected_New_AsyncSlowStart (All) Delta Savings Cutoff Value Min Avg ~Avg Max Avg Value Min Avg ~Avg Max Avg Value % ~Avg % 50.00% 297.4 129.3 137.4 145.5 288.9 126.2 134.0 141.9 8.54 2.96% 3.37 2.51% 60.00% 411.4 162.7 173.0 183.3 398.7 158.4 168.4 178.4 12.62 3.16% 4.62 2.75% 70.00% 581.2 205.1 218.2 231.3 561.7 199.3 212.0 224.8 19.48 3.47% 6.14 2.90% 80.00% 896.4 263.5 280.5 297.4 865.5 255.6 272.0 288.5 30.90 3.57% 8.44 3.10% 90.00% 2170 372.8 397.0 421.2 2112 361.5 385.0 408.4 57.93 2.74% 12.01 3.12% 95.00% 5814 523.2 557.3 591.4 5664 508.9 542.1 575.3 149.8 2.64% 15.22 2.81% 98.00% 52405 1264 1347 1430 52324 1232 1312 1393 80.35 0.15% 34.77 2.65% 99.00% 54848 1758 1874 1990 54796 1725 1839 1953 51.29 0.09% 34.71 1.89% 99.50% 56069 2005 2137 2269 56032 1972 2102 2232 36.76 0.07% 34.69 1.65% -- Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev