以前我写过一篇关于nginx sendfile的文章,讲的是sendfile零拷贝理论方面,这次主要是讲实现的细节。http://xiaorui.cc/?p=1673
sendfile的流程示意图 :
nginx有个sendfile参数,我想大家一般都是开启的。 简单说sendfile可以高效传输静态文件,尤其针对静态文件下载的逻辑。 sendfile的好处主要是两点, 普通的sendall流程是,kernel buffer — > user buffer — > kernel socket buffer –> 协议栈,对于sendfile来说,他的流程是kernel buffer –> kernel socket buffer –> 协议栈. 很明显减少copy的次数,另外这也减少了上线文切换的次数。