[
https://issues.apache.org/jira/browse/TS-3178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14201307#comment-14201307
]
Cynthia Gu commented on TS-3178:
--------------------------------
I've got one data point with the command:
ab -n 10000 -c 100 http://xxx.xxx.xxx.xxx:8080/
remap.config: regex_map http://.*:8080/ http://www.google.com
The QPS increases to 104.62 [#/sec] (mean) vs. 78.74 [#/sec] (mean) before the
change. Observed in top, memory usage is 1/3 less than before the change.
Bare in mind that more data points can eliminate error noises and make the
result more close to the truth
I copy the full report from ab as below:
//----------------------------------
// after the change
//----------------------------------
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking xxx.xxx.xxx.xxx (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: ATS/5.2.0
Server Hostname: xxx.xxx.xxx.xxx
Server Port: 8080
Document Path: /
Document Length: 333 bytes
Concurrency Level: 100
Time taken for tests: 95.582 seconds
Complete requests: 10000
Failed requests: 4342
(Connect: 0, Receive: 0, Length: 4342, Exceptions: 0)
Write errors: 0
Non-2xx responses: 10000
Total transferred: 10800078 bytes
HTML transferred: 7007674 bytes
Requests per second: 104.62 [#/sec] (mean)
Time per request: 955.823 [ms] (mean)
Time per request: 9.558 [ms] (mean, across all concurrent requests)
Transfer rate: 110.34 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 24 154.9 3 1589
Processing: 271 926 353.0 852 2426
Waiting: 271 913 347.2 841 2269
Total: 274 950 384.2 862 3225
Percentage of the requests served within a certain time (ms)
50% 862
66% 1034
75% 1193
80% 1296
90% 1496
95% 1650
98% 1846
99% 2048
100% 3225 (longest request)
//--------------------------------------
// before the change
//--------------------------------------
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking xxx.xxx.xxx.xxx (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: ATS/5.2.0
Server Hostname: 172.21.70.29
Server Port: 8080
Document Path: /
Document Length: 1180 bytes
Concurrency Level: 100
Time taken for tests: 126.997 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10000
Total transferred: 13680000 bytes
HTML transferred: 11800000 bytes
Requests per second: 78.74 [#/sec] (mean)
Time per request: 1269.966 [ms] (mean)
Time per request: 12.700 [ms] (mean, across all concurrent requests)
Transfer rate: 105.19 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 36 186.9 3 1600
Processing: 498 1220 310.6 1229 2242
Waiting: 498 1212 307.3 1223 2107
Total: 501 1256 356.8 1254 3238
Percentage of the requests served within a certain time (ms)
50% 1254
66% 1408
75% 1492
80% 1540
90% 1675
95% 1799
98% 2132
99% 2312
100% 3238 (longest request)
> ProxyAllocator improvements
> ---------------------------
>
> Key: TS-3178
> URL: https://issues.apache.org/jira/browse/TS-3178
> Project: Traffic Server
> Issue Type: Improvement
> Components: Core
> Reporter: Brian Geffon
> Assignee: Cynthia Gu
> Attachments: patch.diff
>
>
> Currently when a ProxyAllocator (Thread Local) has more than a
> configurable number of elements it will return them one-by-one to a
> ClassAllocator (Global Freelist). Returning every item in this fashion is
> inefficient as we'll likely need more items in the future. Therefore we
> should maintain a low watermark (a minimum number) of items that should be in
> a ProxyAllocator at any one time. When the number of elements reaches high
> watermark, the free up is triggers to keep it below the low
> watermark. Additionally, the free should be a block free instead of
> one-by-one as we can reduce several hundred compare-and-swap operations to a
> single CAS
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)