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

Reply via email to