文章继续。什么时候Nginx当用户请求一个文件,这将无法读取该文件的内容加载到内存,然后从内存发送,但电话sendfile况下,从内核直接发送出去。这样做显然效率要更高。Nginx也为我们封装好了一系列的接口。以下就来说明怎样发送一个磁盘文件给client。和从内存直接发送数据最大的不同在于ngx_...
分类:
其他好文 时间:
2015-07-13 13:33:04
阅读次数:
178
Sendfile 函数在两个文件描述符之间直接传递数据(完全在内核中操作,传送),从而避免了内核缓冲区数据和用户缓冲区数据之间的拷贝,操作效率很高,被称之为零拷贝。
Sendfile 函数的定义如下:
#include
ssize_t sendfile(int out_fd,int in_fd,off_t*offset,size_t count);...
分类:
系统相关 时间:
2015-07-06 19:55:29
阅读次数:
142
从今年开始,一直在vagrant虚拟机上做开发因前段时间一个项目需要调试静态文件,出现静态文件修改后,浏览器刷新不生效。最后追踪到是nginx开启了sendfile这一项。。具体sendfile原理可以查下,,网上写的都很详细,这里就不复述了。一开始一直认为是nginx某个地方配置有问题。。但后来干...
分类:
其他好文 时间:
2015-07-06 15:40:38
阅读次数:
127
很早就知道sendfile这个专门用来传输大文件的函数,也称为零拷贝,但一直没测试过,今天用了宿舍的网和小组内的网测试了下,发现结果和我预想的不一样。 为什么效率高,网上说的也很多了,看下man手册中的内容
sendfile() copies data between one file descriptor and another. Because this copying is do...
分类:
其他好文 时间:
2015-07-06 10:23:46
阅读次数:
129
这篇文章将完成 Part.4 中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文便是它的后半部分。我们继续进行上一篇没有完成的步骤:客户端接收来自服务端的文件。
4.客户端接收文件
4.1服务端的实现
对于服务端,我们只需要实现上一章遗留的sendFile()方法就可以了,它起初在handleProt...
一、典型IO调用的问题一个典型的web服务器传送静态文件(如CSS,JS,图片等)的过程如下:read(file, tmp_buf, len);write(socket, tmp_buf, len);首先调用read将文件从磁盘读取到tmp_buf,然后调用write将tmp_buf写入到socke...
分类:
其他好文 时间:
2015-06-30 23:33:16
阅读次数:
173
ginx.conf:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepaliv...
分类:
其他好文 时间:
2015-06-18 16:50:44
阅读次数:
141
这个系列又更新了。今天谈一个问题,目前cache软件在业界的使用现状。cache系统其实最大的使用场景,还是主要集中在CDN厂商里。大概在2010年之前,各大CDN厂商基本清一色的使用squid。那时候的squid是绝对的主力。squid的作为cache领域的鼻祖,正是由于历史的久远,很多近10年左右流行起来的很多系统特性,它本身并不支持。比如sendfile,splice和多核等方面的支持,由于这...
分类:
其他好文 时间:
2015-06-14 22:50:46
阅读次数:
209
做Web服务器时通常需要将文件传送出去,其中一种方法是通过定义一个buffer每次读取文件发送给接收端。大多数服务器会选择sendfile的方式,nginx实现时就是采用这种方式。对于并发搞得服务器性能上能得到优势。 对于第一种方式需要进入内核两次,分别是读取磁盘文件和写入socket,对...
分类:
其他好文 时间:
2015-06-12 23:47:33
阅读次数:
148
nginx基础Nginx的基本架构一个master主进程,生成一个或多个worker子进程事件驱动epoll(边缘触发),用于Linuxkqueue:用于BSD/dev/poll:IO复用器:select、poll、rtsignal支持sendfile及sendfile64支持AIO支持mmap名词解释:sendfile机制:正常响应报文路径“内核空间-->..
分类:
其他好文 时间:
2015-05-24 06:40:42
阅读次数:
342