[ 
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)

Reply via email to