Comments (5)
These are the results of http/2:
**http2load**
finished in 65.00s, 781381.18 req/s, 783.06MB/s
requests: 46882871 total, 46882871 started, 46882871 done, 46882871 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 46882871 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 45.88GB (49265980482) total, 424.87MB (445505292) headers (space savings 96.31%), 48.46GB (52033899520) data
min max mean sd +/- sd
time for request: 110us 52.30ms 1.13ms 654us 89.32%
time for connect: 0us 0us 0us 0us 0.00%
time to 1st byte: 0us 0us 0us 0us 0.00%
req/s : 5869.32 8612.41 7813.76 713.22 78.00%
**dstat**
You did not select any stats, using -cdngy by default.
----total-usage---- -dsk/total- ---net/lo-- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send: recv send| in out | int csw
77 18 5 0 0| 0 17M|5973B 5973B: 32M 760M| 0 0 |9306k 192k
82 18 0 0 0| 0 1305k| 545B 545B: 34M 808M| 0 0 |9652k 194k
82 18 0 0 0| 0 300k| 512B 512B: 33M 804M| 0 0 | 10M 195k
82 18 0 0 0| 0 1638B| 512B 512B: 33M 804M| 0 0 | 10M 196k
82 18 0 0 0| 0 68M| 511B 511B: 33M 802M| 0 0 |9808k 197k
82 18 0 0 0| 0 496M| 512B 512B: 33M 801M| 0 0 |9556k 195k
82 18 0 0 0| 0 3277B| 512B 512B: 34M 808M| 0 0 |9403k 197k
82 18 0 0 0| 0 1638B| 512B 512B: 33M 801M| 0 0 |9699k 195k
82 18 0 0 0| 0 1638B| 512B 512B: 33M 793M| 0 0 |9757k 194k
82 18 0 0 0| 0 3277B|1194B 1194B: 33M 791M| 0 0 |9641k 195k
82 18 0 0 0| 0 267k|1340B 1340B: 33M 788M| 0 0 |9722k 193k
83 17 0 0 0| 0 664M| 512B 512B: 33M 785M| 0 0 |9787k 192k
83 17 0 0 0| 0 824k| 512B 512B: 33M 791M| 0 0 |9589k 191k
**perf stat**
perf: 'stat-p' is not a perf-command. See 'perf --help'.
**perf report**
# Total Lost Samples: 0
#
# Samples: 2M of event 'cycles:P'
# Event count (approx.): 7767083254126
#
# Overhead Shared Object Symbol IPC [IPC Coverage]
# .......... .................... .................................................. ....................
#
3.09% [vdso] [.] __vdso_clock_gettime - -
1.56% traffic_server [.] mime_hdr_field_find(MIMEHdrImpl*, char const*, - -
1.49% traffic_server [.] hdrtoken_tokenize(char const*, int, char const - -
1.39% traffic_server [.] mime_parser_parse(MIMEParser*, HdrHeap*, MIMEH - -
1.34% traffic_server [.] VersionConverter::convert(HTTPHdr&, int, int) - -
1.16% traffic_server [.] freelist_new(_InkFreeList*) - -
0.98% libc.so.6 [.] __memmove_avx_unaligned_erms - -
0.95% traffic_server [.] XpackDynamicTable::lookup(char const*, unsigne - -
0.88% libcrypto.so [.] _aesni_ctr32_ghash_6x - -
0.83% libc.so.6 [.] __memcmp_avx2_movbe - -
0.72% traffic_server [.] HpackIndexingTable::lookup(HpackHeaderField co - -
0.69% libc.so.6 [.] __memchr_avx2 - -
0.65% traffic_server [.] HdrHeap::duplicate_str(char const*, int) - -
0.64% libc.so.6 [.] toupper - -
0.62% traffic_server [.] mime_hdr_field_attach(MIMEHdrImpl*, MIMEField* - -
0.60% traffic_server [.] huffman_decode(char*, unsigned char const*, un - -
0.60% traffic_server [.] MIMEScanner::get(swoc::_1_5_12::TextView&, swo - -
0.60% traffic_server [.] HdrHeap::allocate_str(int) - -
from trafficserver.
Changes for benchmarking and debugging the issue:
diff --git a/src/iocore/net/QUICPacketHandler.cc b/src/iocore/net/QUICPacketHandler.cc
index d336fcd57..017926cb2 100644
--- a/src/iocore/net/QUICPacketHandler.cc
+++ b/src/iocore/net/QUICPacketHandler.cc
@@ -230,7 +230,7 @@ QUICPacketHandlerIn::_recv_packet(int event, UDPPacket *udp_packet)
EThread *eth = nullptr;
if (vc == nullptr) {
- if (!quiche_version_is_supported(version)) {
+ if (0 && !quiche_version_is_supported(version)) {
Ptr<IOBufferBlock> udp_payload(new_IOBufferBlock());
udp_payload->alloc(iobuffer_size_to_index(DEFAULT_MAX_DATAGRAM_SIZE, BUFFER_SIZE_INDEX_2K));
QUICPHDebug(QUICConnectionId(scid, scid_len), QUICConnectionId(dcid, dcid_len), "Unsupported version: 0x%x", version);
diff --git a/src/iocore/net/quic/QUICStreamManager.cc b/src/iocore/net/quic/QUICStreamManager.cc
index eb241c23a..ff97164fb 100644
--- a/src/iocore/net/quic/QUICStreamManager.cc
+++ b/src/iocore/net/quic/QUICStreamManager.cc
@@ -81,11 +81,19 @@ QUICStreamManager::stream_count() const
QUICStream *
QUICStreamManager::find_stream(QUICStreamId stream_id)
{
+ int32_t count = 0;
for (QUICStream *s = this->stream_list.head; s; s = s->link.next) {
+ ++count;
if (s->id() == stream_id) {
+ if (count > 1000) {
+ Debug("bcall", "Found stream %p in stream_list. count: %d", s, count);
+ }
return s;
}
}
+ if (count > 5000) {
+ Debug("bcall", "Stream %ld not found in stream_list. count: %d", stream_id, count);
+ }
return nullptr;
}
from trafficserver.
I was just talking with Masakazu, I'll start looking into this now.
from trafficserver.
it seems aren't deleting any streams at all.
probably because we do not get the right answer from this:
trafficserver/src/iocore/net/quic/QUICStreamVCAdapter.cc
Lines 338 to 341 in 9f135bf
I'll dig dipper.
from trafficserver.
Related Issues (20)
- Add AuTest to exercise http2.incomplete_header_timeout_in
- Missed to pass `length` parameter in the tscpp api - `HeaderField::append` HOT 1
- Status mismatch in header_rewrite HOT 2
- Autest for static hit plugin fails on release build
- Autest tls_tunnel fails because of a slightly different error message from python HOT 3
- What is the current status of http3 support in ATS 10.x? HOT 1
- Intermittent CI failures of ja3_fingerprint
- Build without hwloc broken on master
- Missing git tag for 9.2.4 HOT 1
- Records parses uninitialized data for IP addresses
- ATS will not build with VERIFY_JTEST_DATA defined
- Some debug stats are counted under the wrong metrics
- Outgoing HTTPS connections fail with OpenSSL 3.2+ HOT 4
- traffic_ctl: Timeout connection to jsonrpc socket
- header_rewrite set-body feature only supports the most basic of response bodies HOT 1
- Failed to connect to https over non-standard https/443 port HOT 2
- Upgrade quiche to latest 0.22.0 version
- Dubiously correct code in header_rewrite plugin. HOT 1
- File configs/records.yaml.default.in needs s/ts/records/
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from trafficserver.