Closed zuker closed 3 years ago
I've just run this component with Sailor 3.3.2 for higher load:
ab -k -c 99 -n 1000 https://in.elastic.io/hook/602695db133512001172b02f
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking in.elastic.io (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software:
Server Hostname: in.elastic.io
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key: ECDH X25519 253 bits
TLS Server Name: in.elastic.io
Document Path: /hook/602695db133512001172b02f
Document Length: 11 bytes
Concurrency Level: 99
Time taken for tests: 20.794 seconds
Complete requests: 1000
Failed requests: 0
Keep-Alive requests: 1000
Total transferred: 389000 bytes
HTML transferred: 11000 bytes
Requests per second: 48.09 [#/sec] (mean)
Time per request: 2058.601 [ms] (mean)
Time per request: 20.794 [ms] (mean, across all concurrent requests)
Transfer rate: 18.27 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 70 217.2 0 924
Processing: 134 1875 616.4 1619 3827
Waiting: 134 1875 616.4 1619 3827
Total: 137 1945 686.3 1642 4660
Percentage of the requests served within a certain time (ms)
50% 1642
66% 1912
75% 2056
80% 2218
90% 3030
95% 3538
98% 4014
99% 4412
100% 4660 (longest request)
Ok. The next run of the same command produced errors you mentioned above, while the first one worked fine
@A3a3e1 just reproduced the same
1023 is the hard limit currently. The flow is able to process exactly 1023 messages after flow restart. Then it stucks
@A3a3e1 looks like amqp connection channel limit
Confirm, 3.0.0 Sailor has no this bug:
ab -k -c 99 -n 3000 https://in.elastic.io/hook/602695db133512001172b02f
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking in.elastic.io (be patient)
Completed 300 requests
Completed 600 requests
Completed 900 requests
Completed 1200 requests
Completed 1500 requests
Completed 1800 requests
Completed 2100 requests
Completed 2400 requests
Completed 2700 requests
Completed 3000 requests
Finished 3000 requests
Server Software:
Server Hostname: in.elastic.io
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key: ECDH X25519 253 bits
TLS Server Name: in.elastic.io
Document Path: /hook/602695db133512001172b02f
Document Length: 11 bytes
Concurrency Level: 99
Time taken for tests: 13.324 seconds
Complete requests: 3000
Failed requests: 0
Keep-Alive requests: 3000
Total transferred: 1167000 bytes
HTML transferred: 33000 bytes
Requests per second: 225.16 [#/sec] (mean)
Time per request: 439.683 [ms] (mean)
Time per request: 4.441 [ms] (mean, across all concurrent requests)
Transfer rate: 85.54 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 21 116.6 0 957
Processing: 45 405 132.4 385 723
Waiting: 45 405 132.4 385 723
Total: 45 425 183.6 389 1611
Percentage of the requests served within a certain time (ms)
50% 389
66% 479
75% 520
80% 573
90% 604
95% 645
98% 1028
99% 1252
100% 1611 (longest request)
The task is ready for testing: Sailor version: 3.3.3-SNAPSHOT
Prerequisites: Webhook request-reply trigger: component.json:
io.elastic.reply.triggers.Reply:
STR:
ab -k -c 50 -n 100 "FLOW_WEBHOOK_URI"
Expected result: all
ab
runs is successfulActual result: flow becomes unresponsive, all requests timed out until flow restart Some logs:
Actually under the "Component execution failed" there's following exception:
Suggestion: Logs of successful processings are full of
Opened publish channel
, so actually channel open (https://github.com/elasticio/sailor-jvm/blob/06a842c8ebc671fd7cd9f2441c9f68cac274b5dc/src/main/java/io/elastic/sailor/impl/MessagePublisherImpl.java#L142) happens everytime here https://github.com/elasticio/sailor-jvm/blob/06a842c8ebc671fd7cd9f2441c9f68cac274b5dc/src/main/java/io/elastic/sailor/impl/MessagePublisherImpl.java#L131 for every message publish and connection fails with "Error: No channels left to allocate" (experienced this in platform services)