[ https://issues.apache.org/jira/browse/KAFKA-2517?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14735711#comment-14735711 ]
Ismael Juma commented on KAFKA-2517: ------------------------------------ Implementing `SelChImpl` is undesirable as it's an internal implementation class in the JDK. A better alternative, in my opinion, is to pass the underlying `SocketChannel` to `transferTo`; Ben verified that this fixes the problem before filing this ticket. I suggest we add a transfer-like method to `TransportLayer`. In the `PlaintextTransportLayer` implementation, it should use the underlying `socketChannel` instead of itself. > 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: Ben Stopford > Priority: Blocker > Fix For: 0.8.3 > > > 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)