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

Reply via email to