[ https://issues.apache.org/jira/browse/KAFKA-2517?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14940993#comment-14940993 ]
ASF GitHub Bot commented on KAFKA-2517: --------------------------------------- GitHub user ijuma opened a pull request: https://github.com/apache/kafka/pull/273 KAFKA-2517; Performance Regression post SSL implementation (zero copy) You can merge this pull request into a Git repository by running: $ git pull https://github.com/ijuma/kafka kafka-2517-ssl-zero-copy-regression Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/273.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #273 ---- commit fb88692a9e4f62677b91069db017c12ba5b42edd Author: Ismael Juma <ism...@juma.me.uk> Date: 2015-10-02T10:10:12Z Introduce `TransportLayer.transferFrom` and use it from `FileMessageSet` ---- > Performance Regression post SSL implementation > ---------------------------------------------- > > Key: KAFKA-2517 > URL: https://issues.apache.org/jira/browse/KAFKA-2517 > Project: Kafka > Issue Type: Bug > Reporter: Ben Stopford > Assignee: Ismael Juma > Fix For: 0.9.0.0 > > > It would appear that we incurred a performance regression on submission of > the SSL work affecting the performance of the new Kafka Consumer. > Running with 1KB messages. Macbook 2.3 GHz Intel Core i7, 8GB, APPLE SSD > SM256E. Single server instance. All local. > kafka-consumer-perf-test.sh ... --messages 3000000 --new-consumer > Pre-SSL changes (commit 503bd36647695e8cc91893ffb80346dd03eb0bc5) > Steady state throughputs = 234.8 MB/s > (2861.5913, 234.8261, 3000596, 246233.0543) > Post-SSL changes (commit 13c432f7952de27e9bf8cb4adb33a91ae3a4b738) > Steady state throughput = 178.1 MB/s > (2861.5913, 178.1480, 3000596, 186801.7182) > Implication is a 25% reduction in consumer throughput for these test > conditions. > This appears to be caused by the use of PlaintextTransportLayer rather than > SocketChannel in FileMessageSet.writeTo() meaning a zero copy transfer is not > invoked. > Switching to the use of a SocketChannel directly in FileMessageSet.writeTo() > yields the following result: > Steady state throughput = 281.8 MB/s > (2861.5913, 281.8191, 3000596, 295508.7650) -- This message was sent by Atlassian JIRA (v6.3.4#6332)