零拷贝

Nginx配置中又一个sendfile配置,sendfile是零拷贝的一个方法。

1、零拷贝的原理是什么

1)DMA传送方式

         CPU与外设之间的数据传送方式中断传送方式、DMA传送
a、中断传送方式
        中断传送方式是指当外设需要与CPU进行信息交换时,由外设向CPU发出请求信号,使CPU暂停正在执行的程序,转而去执行数据输入/输出操作,待数据传送结束后,CPU再继续执行被暂停的程序
b、DMA的传送
       DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术

2、零拷贝的方法

    sendfile

3、零拷贝的使用

user  www www;
worker_processes auto;
worker_rlimit_nofile 65535;

error_log  /data0/www/logs/error.log;
pid        var/run/tengine.pid;

events {
    worker_connections  65535;
    use epoll;
}
http {
    charset      utf-8;
    client_header_buffer_size 8k; 
    client_max_body_size 50m;
    client_body_timeout 10s;
    client_header_timeout 5s; 
    large_client_header_buffers 8 4k; 

    server_tokens off;
    server_name_in_redirect off;
    server_names_hash_bucket_size 128;

    include       tengine.mime.types;
    default_type  application/octet-stream;

    log_format  main  '$http_x_real_ip - $http_host [$time_local] "$request" $request_length '
                      '$status $body_bytes_sent $request_time "$http_referer" '
                      '"$http_user_agent" $remote_addr "-" "-" ';

    sendfile        on; 

    keepalive_timeout  65; 

    open_file_cache max=65535 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 3;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 4k; 
    fastcgi_buffers 256 4k; 
    fastcgi_busy_buffers_size 8k; 
    fastcgi_max_temp_file_size 0;

    gzip on; 
    gzip_min_length  1k; 
    gzip_buffers     8 64k;
    gzip_http_version 1.0;
    gzip_comp_level 5;
    gzip_types   text/plain application/x-javascript text/css application/json application/xml application/x-shockwave-flash application/javascript image/svg+xml image/x-icon;
    gzip_vary on; 
    add_header via $hostname always;

    include     virtualhost/*.conf;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值