[ https://issues.apache.org/jira/browse/TS-3547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14508309#comment-14508309 ]
Brian Geffon edited comment on TS-3547 at 4/23/15 2:09 AM: ----------------------------------------------------------- After investigation with [~jacksontj] it appears that {{SSLNetVConnection::load_buffer_and_write}} is called with all of the data in multiple IOBufferBlock so it results in multiple calls to {{SSLWriteBuffer}}. To experiment we created a small patch that just copies all of the IOBufferBlocks to a single block of memory followed by a single {{SSLWriteBuffer}} call and it resolves the problem. So since this is obviously not a viable solution we need to figure out why the {{SSL_write}} calls are being split up in such a strange way. We had a second theory that was related to the BIO flush calls, so we made a patch that would only call BIO flush once all the {{SSL_writes}} are complete and that did not seem to resolve the problem. We should be able to call SSL_write multiple times without having it delay the write to socket for such a large amount of time. was (Author: briang): After investigation with [~jacksontj] it appears that {{SSLNetVConnection::load_buffer_and_write}} is called with all of the data in multiple IOBufferBlock so it results in multiple calls to {{SSLWriteBuffer}}. To experiment we created a small patch that just copies all of the IOBufferBlocks to a single block of memory followed by a single {{SSLWriteBuffer}} call and it resolves the problem. So since this is obviously not a viable solution we need to figure out why the {{SSL_write}} calls are being split up in such a strange way. We had a second theory that was related to the BIO flush calls, so we made a patch that would only call BIO flush once all the {{SSL_writes}} are complete and that did not seem to resolve the problem, we had the same issue. > SSLNetVConnection: switch to a vectored write > --------------------------------------------- > > Key: TS-3547 > URL: https://issues.apache.org/jira/browse/TS-3547 > Project: Traffic Server > Issue Type: Bug > Reporter: Thomas Jackson > > UnixNetVConnection does a vectored write which bunches blocks together until > the outgoing buffer will fill up. This means we can better fill the packets, > and should give us a bit of a performance boost to SSL writes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)