mirror of
https://github.com/3proxy/3proxy.git
synced 2026-10-16 00:25:48 +08:00
bench.py: - the proxy gets one CPU, the client four, the origin three (8 CPUs), so the proxy is what runs out first - CPU time is the busy time of a role's CPUs from /proc/stat, softirqs included: with IRQ time accounting the cgroup's own figure leaves out much of the network work - every run records which side set its pace (proxy, client, origin), by the busy share of the role's CPUs and of its busiest thread - a 50 KB keep-alive scenario with 2000 clients - haproxy with splice: haproxy::splice-auto and haproxy::splice - wrk timeouts counted apart from errors; tools found by absolute path; leftovers of an interrupted run are cleaned up report.py turns runs into Markdown tables: throughput, the proxy's CPU per gigabyte or per request, its peak memory, splice and copying proxies in groups of their own, the best of each group marked. RESULTS.md has the comparison of 0.9.4, 1.0.1, devel, nginx and haproxy, with and without splice, on an Apple M4 and an Intel Skylake virtual machine, and how it was measured; data/ has the measurements. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
65 lines
14 KiB
Plaintext
65 lines
14 KiB
Plaintext
proxy,scenario,rep,gbit,rate,p50_ms,p99_ms,errors,timeouts,retrans,prx_cpu_s,prx_task_s,cpu_s_per_gb,cpu_us_per_req,peak_mb,cli_util,prx_util,srv_util,cli_thread,srv_thread,bound
|
|
haproxy,stream1,0,12.470885279042667,nan,nan,nan,0,0,0,10.01,10.000143,0.6420094931512967,nan,30.35546875,0.2060312568787145,0.999001996007984,0.20981165133596144,0.12689777512488556,0.5330982979381341,proxy
|
|
haproxy-splice-auto,stream1,0,29.89117860621185,nan,nan,nan,0,0,0,9.98,9.507242,0.2670286748118488,nan,44.9296875,0.07797029702970297,0.9257884972170687,0.267870036101083,0.22455002102003757,0.7289534887541377,proxy
|
|
haproxy-splice,stream1,0,47.276622227678985,nan,nan,nan,0,0,0,9.92,9.068391,0.16783182521748577,nan,44.9765625,0.1667447306791569,0.9042844120328167,0.3173747622067216,0.38251154639763685,0.9515244508907347,origin
|
|
haproxy,stream16,0,9.126816993294865,nan,nan,nan,0,0,6,10.02,10.008672,0.87779780687716,nan,60.5625,0.12864186463469296,0.9515669515669516,0.7121966397013068,0.10178154529645375,1.3412808028682561,origin
|
|
haproxy-splice-auto,stream16,0,15.665416161722957,nan,nan,nan,0,0,10,10.01,10.009196,0.5108377207880435,nan,50.41015625,0.20893278934936654,0.9515209125475285,0.7146831530139104,0.17028929067443577,1.279742158250854,origin
|
|
haproxy-splice,stream16,0,21.84620025436062,nan,nan,nan,0,0,5,10.02,10.004629,0.3667854948979959,nan,60.96875,0.27884022208513265,0.9506641366223909,0.7257869249394673,0.24534597309840397,1.2156886451110003,origin
|
|
haproxy,stream1-down,0,13.960123370583007,nan,nan,nan,0,0,0,10.0,9.999398,0.5730096684278911,nan,35.16015625,0.142692750287687,0.9505703422053232,0.24893955461293743,0.5220067520499043,0.1168309458750056,proxy
|
|
haproxy-splice-auto,stream1-down,0,30.440812819799515,nan,nan,nan,0,0,0,10.0,9.77417,0.262794402388071,nan,40.4453125,0.19289074751698904,0.9398496240601504,0.2629094947251527,0.7307960970461047,0.270908729124504,proxy
|
|
haproxy-splice,stream1-down,0,47.62696450489736,nan,nan,nan,0,0,0,9.96,9.308399999999999,0.16728181803047182,nan,42.109375,0.2393629664844307,0.9162833486660533,0.21685991852083986,0.9514145276910632,0.38968830503606744,client
|
|
haproxy,http-ka-1k,0,0.44224741376,43767.86,1.4,2.12,0,0,0,10.1,10.09507,18.270316000954335,22.847732306014834,29.75390625,0.4527994201848161,0.9600760456273765,0.4640539839086426,0.6925179771661301,0.3136237673521794,proxy
|
|
haproxy-splice-auto,http-ka-1k,0,0.4412407808,43668.11,1.4,2.13,0,0,0,10.09,10.089706000000001,18.2938666398081,22.879247909916078,35.796875,0.45099108928896164,0.9600380589914367,0.46659761781460385,0.6936018485235806,0.32032686619155504,proxy
|
|
haproxy-splice,http-ka-1k,0,0.44400902144,43945.28,1.39,2.11,0,0,0,10.09,10.094142999999999,18.179810792630008,22.73300769632847,35.80078125,0.45607375271149675,0.9600380589914367,0.4628956927867151,0.698295986925665,0.3363989405582086,proxy
|
|
haproxy,http-ka-1m,0,5.8981141708800005,702.88,22.52,26.65,0,0,0,10.09,10.100358,1.3685730330302601,1421.3269474573883,37.34765625,0.6215240925493526,0.9600380589914367,0.16199095022624435,1.2678542450703074,0.026603372180188496,client
|
|
haproxy-splice-auto,http-ka-1m,0,6.25806934016,745.21,21.17,25.1,0,0,0,10.11,10.097527999999999,1.2924113748783124,1343.343077331916,44.88671875,0.5915651781686965,0.9601139601139601,0.15641103364655956,1.2825439345426253,0.026609834615750023,client
|
|
haproxy-splice,http-ka-1m,0,28.346784153599998,3382.78,4.66,5.72,0,0,0,9.99,9.951156,0.2819367430426858,295.2738450625129,52.44140625,0.5561823104693141,0.950523311132255,0.23213789268835142,1.6438977194646323,0.10547278904621821,client
|
|
haproxy,http-ka-50k-2000,0,4.07166255104,9744.89,193.14,512.74,0,0,0,10.09,10.039950999999999,1.9824825605791467,102.71183680117268,176.00390625,0.5347850156855508,0.9591254752851711,0.2985718135273511,0.8752281070644606,0.09218093276895038,proxy
|
|
haproxy-splice-auto,http-ka-50k-2000,0,3.9366898483200004,9421.6,200.61,570.88,0,0,0,10.09,10.047718999999999,2.050453632623551,106.2228258008822,182.140625,0.5346644481419855,0.9591254752851711,0.2891137855579869,0.884949502988458,0.09027899200636934,proxy
|
|
haproxy-splice,http-ka-50k-2000,0,4.9580867583999995,11984.65,161.23,393.17,0,0,0,10.12,10.072325999999999,1.6328879252231197,83.82826801852174,136.0390625,0.5424570111682325,0.9619771863117871,0.48020113136392206,0.844047476500976,0.11502621442719918,proxy
|
|
haproxy,http-close-1k,0,0.17045651456,16623.35,3.69,4.55,0,0,0,10.11,10.062655000000001,47.44905186450387,60.217282538774924,29.53515625,0.5420985633751592,0.9601139601139601,0.4613646633529146,0.8191778310296798,0.1492330706128941,proxy
|
|
haproxy-splice-auto,http-close-1k,0,0.169869312,16560.35,3.71,4.5,0,0,0,10.1,10.066307,47.565978250385804,60.38755657596575,35.7578125,0.5444001449800653,0.9600760456273765,0.46188850967007966,0.8210625053404907,0.1549161742184061,proxy
|
|
haproxy-splice,http-close-1k,0,0.16978542591999998,16555.02,3.72,4.42,0,0,0,10.1,10.062906,47.58947922778224,60.405253462835816,35.625,0.5433996383363472,0.9600760456273765,0.46545536114849706,0.8136549127740669,0.19295717801130827,proxy
|
|
haproxy-splice-auto,stream1,1,27.657705036907,nan,nan,nan,0,0,0,10.0,9.833874,0.28919158401814893,nan,40.65234375,0.15907990314769976,0.9900990099009901,0.26803708182184605,0.23978301610049976,0.698794525197252,proxy
|
|
haproxy-splice,stream1,1,44.66709383479124,nan,nan,nan,0,0,0,9.96,9.483912,0.17835478491282797,nan,44.984375,0.09460154241645244,0.9239332096474954,0.303347280334728,0.32433711631255135,0.838195850298805,proxy
|
|
haproxy,stream1,1,13.9130793718519,nan,nan,nan,0,0,0,10.0,10.001526,0.5748229081905579,nan,31.44921875,0.13121361397223466,0.9514747859181731,0.1997513468711148,0.11609297064619445,0.5218641241285665,proxy
|
|
haproxy-splice-auto,stream16,1,15.871037952656748,nan,nan,nan,0,0,11,10.04,10.011549,0.5056481486447681,nan,60.015625,0.22426160337552742,0.9516587677725118,0.7153581482639975,0.17497538300354495,1.2916249924400047,origin
|
|
haproxy-splice,stream16,1,22.562433611542634,nan,nan,nan,0,0,3,10.03,10.008068,0.3554258363877096,nan,55.68359375,0.27662203913491246,0.9516129032258065,0.7242658423493045,0.2416265140565151,1.2786892962500593,origin
|
|
haproxy,stream16,1,8.56274783754313,nan,nan,nan,0,0,8,10.02,10.009423,0.9354805272106242,nan,43.66015625,0.11837013430457546,0.9515669515669516,0.6884035681328822,0.09227811846283687,1.3248314087242796,origin
|
|
haproxy-splice-auto,stream1-down,1,29.532618920028337,nan,nan,nan,0,0,0,9.98,9.745233,0.2703355432066713,nan,40.23828125,0.18612747723620782,0.9379699248120301,0.08706208810267083,0.6914418421747642,0.23085334338816266,proxy
|
|
haproxy-splice,stream1-down,1,45.20745569639618,nan,nan,nan,0,0,0,9.96,9.484789000000001,0.1762340398376784,nan,44.6015625,0.2248864209994952,0.924791086350975,0.14191761855313256,0.8562900706132912,0.34591034845458013,proxy
|
|
haproxy,stream1-down,1,13.280333707459034,nan,nan,nan,0,0,0,10.0,10.001983,0.6023285462637666,nan,32.8359375,0.13882488479262672,0.9505703422053232,0.24791834542035993,0.5136100587673486,0.12826097080847915,proxy
|
|
haproxy-splice-auto,http-ka-1k,1,0.44711280639999995,44248.96,1.39,2.07,0,0,0,10.11,10.087575999999999,18.089394632020987,22.62276373644816,35.80859375,0.4535765895953757,0.9601139601139601,0.4662004662004662,0.6886438222525255,0.2945534754186057,proxy
|
|
haproxy-splice,http-ka-1k,1,0.44593840127999995,44132.54,1.39,2.1,0,0,0,10.1,10.087207,18.11909442382078,22.658491662348094,35.796875,0.45339366515837104,0.9600760456273765,0.46313603322949115,0.6945662425374509,0.3221811798409665,proxy
|
|
haproxy,http-ka-1k,1,0.44862275584,44402.84,1.38,2.08,0,0,0,10.1,10.091105,18.01067800243666,22.52262297129146,29.70703125,0.45520100955471426,0.9600760456273765,0.4665288188162316,0.6924554721759041,0.29546388241465266,proxy
|
|
haproxy-splice-auto,http-ka-1m,1,5.906922209279999,703.12,22.55,26.06,0,0,0,10.09,10.096472,1.3665323012581037,1420.9266300521053,43.19921875,0.6057525951557093,0.9591254752851711,0.13498452012383902,1.2206981774202692,0.020907726724359123,client
|
|
haproxy-splice,http-ka-1m,1,28.00318676992,3338.12,4.72,6.53,0,0,0,10.0,9.953499,0.28568177135444134,299.43705833033897,52.203125,0.5647553686074829,0.9505703422053232,0.2257247396566282,1.6406109424173014,0.09314792662013098,client
|
|
haproxy,http-ka-1m,1,5.91371698176,704.32,22.55,25.24,0,0,0,10.09,10.092942,1.3649621760555857,1418.5294531140166,38.8359375,0.624,0.9600380589914367,0.15222623345367028,1.253629079008308,0.030413129775669574,client
|
|
haproxy-splice-auto,http-ka-50k-2000,1,4.0017854464000004,9573.19,198.04,506.2,0,0,0,10.08,10.040982,2.0151005365003662,104.48410970831519,184.0,0.5310818333642605,0.9581749049429658,0.29093886462882096,0.877336596256015,0.0921928976926707,proxy
|
|
haproxy-splice,http-ka-50k-2000,1,4.850209259520001,11724.01,164.56,467.97,0,0,0,10.11,10.057952,1.6675569170804037,85.57643473844591,132.6796875,0.5495367070563079,0.9610266159695817,0.48620045652625027,0.8827828822617122,0.11212372578867655,proxy
|
|
haproxy,http-ka-50k-2000,1,4.05740191744,9702.65,195.76,645.83,0,0,0,10.09,10.040626,1.9894504326288172,103.36843830676555,177.29296875,0.5312326227988878,0.9582146248812915,0.2982786444324906,0.8723025194799039,0.09122591365490804,proxy
|
|
haproxy-splice-auto,http-close-1k,1,0.17246978048,16820.23,3.67,4.28,0,0,0,10.0,9.971963,46.384937568397376,59.415235254623994,35.59375,0.5402319681043857,0.9514747859181731,0.46653279785809904,0.812422387488307,0.20048900026686614,proxy
|
|
haproxy-splice,http-close-1k,1,0.17339252736000002,16905.08,3.65,4.24,0,0,0,10.11,10.064707,46.64560879955097,59.21318503681057,35.70703125,0.5444988218234548,0.959203036053131,0.4523154516276937,0.8220920443166914,0.22048409460256574,proxy
|
|
haproxy,http-close-1k,1,0.17221812224000002,16794.68,3.68,4.25,0,0,0,10.09,10.066023999999999,46.87079324178793,59.48731251768701,29.53515625,0.5452406804198335,0.9600380589914367,0.4732519422863485,0.8219748116165262,0.1681692979728716,proxy
|
|
haproxy-splice,stream1,2,44.025537299292175,nan,nan,nan,0,0,0,9.98,9.64556,0.18131571189526788,nan,44.91796875,0.15224166866458883,0.9327102803738317,0.3000352982703848,0.3729495374137985,0.8229787358803089,proxy
|
|
haproxy,stream1,2,13.420193637999308,nan,nan,nan,0,0,0,10.0,10.00282,0.5958974733855598,nan,31.4140625,0.05717791411042945,0.9514747859181731,0.19552609776304888,0.12086002113679797,0.5182343923337167,proxy
|
|
haproxy-splice-auto,stream1,2,29.507297892950234,nan,nan,nan,0,0,0,9.97,9.623803,0.2702392892979522,nan,44.4609375,0.07093881856540084,0.9774509803921568,0.27580772261623326,0.2157945829744378,0.7366131461399941,proxy
|
|
haproxy-splice,stream16,2,22.12554165032845,nan,nan,nan,0,0,2,10.02,10.003693,0.36212735525203216,nan,54.74609375,0.2913907284768212,0.9506641366223909,0.7249082007343941,0.23862270559995377,1.2426461145422065,origin
|
|
haproxy,stream16,2,8.580147028941548,nan,nan,nan,0,0,6,10.03,10.00947,0.9346185347163698,nan,51.703125,0.17872340425531916,0.9516129032258065,0.6840330983757279,0.09415712324018922,1.340238855783671,origin
|
|
haproxy-splice-auto,stream16,2,15.973129606882429,nan,nan,nan,0,0,13,10.03,10.012126,0.5019140976009596,nan,60.0,0.2711763538980361,0.9516129032258065,0.711083819465766,0.1807299535793587,1.3052893396648573,origin
|
|
haproxy-splice,stream1-down,2,48.59185309676415,nan,nan,nan,0,0,0,9.93,9.026188000000001,0.16346198078264335,nan,44.9375,0.23901164172012354,0.9019073569482289,0.1280977312390925,0.9513393656065166,0.34494886912870415,client
|
|
haproxy,stream1-down,2,13.238887720464081,nan,nan,nan,0,0,0,10.01,10.002078,0.6048169736106161,nan,31.21875,0.1375432525951557,0.9506172839506173,0.05361384458771632,0.49179301438541884,0.11592095587872998,proxy
|
|
haproxy-splice-auto,stream1-down,2,30.76905592533716,nan,nan,nan,0,0,0,9.99,9.65392,0.2597207502459875,nan,41.29296875,0.1940376569037657,0.9336448598130841,0.09265614275909403,0.7237916928519336,0.22990802153107426,proxy
|
|
haproxy-splice,http-ka-1k,2,0.44904218624000003,44444.43,1.38,2.08,0,0,0,10.1,10.094124,17.99385502653302,22.500796439081878,35.796875,0.4565061107117182,0.9591642924976258,0.46492363448097335,0.6905813584959353,0.3030430566697726,proxy
|
|
haproxy,http-ka-1k,2,0.44568674304,44112.76,1.39,2.09,0,0,0,10.01,10.002418,17.967776975769922,22.674504207581574,29.71484375,0.44922797456857405,0.9515209125475285,0.4595788926436184,0.6905693150174204,0.3098286205277593,proxy
|
|
haproxy-splice-auto,http-ka-1k,2,0.44602228736,44139.96,1.39,2.11,0,0,0,10.01,10.00352,17.954259746523533,22.658695755512447,35.79296875,0.4514140681653372,0.9515209125475285,0.4600780234070221,0.6927552847361909,0.30133454145667854,proxy
|
|
haproxy-splice,http-ka-1m,2,27.4877906944,3276.96,4.78,6.88,0,0,0,9.99,9.923215,0.2907472662627697,304.7961923358555,52.234375,0.5973016235993597,0.999,0.22384066587395957,1.6187790952229908,0.10784169195139078,client
|
|
haproxy,http-ka-1m,2,5.767839088640001,687.06,23.09,26.32,0,0,0,10.11,10.097942,1.4022582592377886,1456.9822741028968,37.94140625,0.6142604074402126,0.9601139601139601,0.15242424242424243,1.2832361890399908,0.02660297986960112,client
|
|
haproxy-splice-auto,http-ka-1m,2,5.5785082060799995,663.85,23.81,28.12,0,0,0,10.1,10.099212000000001,1.4484159028741108,1506.3385533184191,43.671875,0.6274887604367373,0.9600760456273765,0.1124129195693477,1.2758842161775354,0.028503600136568153,client
|
|
haproxy-splice,http-ka-50k-2000,2,4.92235128832,11897.29,163.37,414.88,0,0,0,10.13,10.062857,1.6463676656376751,84.49552916054985,151.32421875,0.5455516014234876,0.9620132953466287,0.483153078202995,0.8592217872562844,0.11119336969404632,proxy
|
|
haproxy,http-ka-50k-2000,2,4.06822322176,9736.04,194.05,680.82,0,0,0,10.09,10.042601,1.984158577342735,102.92977516627903,177.98828125,0.5328911000552792,0.9582146248812915,0.29488220958570266,0.8649197963205894,0.09123941413633474,proxy
|
|
haproxy-splice-auto,http-ka-50k-2000,2,4.08936251392,9784.39,191.94,569.22,0,0,0,10.08,10.042211,1.9719454982409896,102.35684765279908,181.41796875,0.5373106760251201,0.9590865842055185,0.2985756517065305,0.8915635476483981,0.09314699784890836,proxy
|
|
haproxy-splice,http-close-1k,2,0.17230200832,16803.03,3.67,4.27,0,0,0,10.1,10.066593,46.894404068661764,59.51819724684141,35.89453125,0.5420374069366262,0.9600760456273765,0.4473441108545035,0.8136090213947146,0.18058427193404752,proxy
|
|
haproxy,http-close-1k,2,0.17431527424,16996.31,3.62,4.34,0,0,0,10.09,10.064283,46.30690015658836,58.78035140047537,29.65625,0.5434585374705135,0.9600380589914367,0.43952734012974976,0.8193729517211945,0.16926621774991768,proxy
|
|
haproxy-splice-auto,http-close-1k,2,0.17079205888,16650.93,3.71,4.33,0,0,0,10.02,9.972787,46.93426645574963,60.12817743213077,35.7421875,0.5415685564209383,0.9515669515669516,0.4681848626925653,0.8173954622833055,0.1615753572679179,proxy
|