您的位置:首页 > 理论基础 > 计算机网络

HTTP核心模块配置静态web服务器 7-文件操作的优化

2016-10-27 20:37 609 查看
7,文件操作的优化

7-1,sendfile系统调用

语法:sendfile on|off;

默认:sendfile off;

配置块:http,server,location

可以启动linux上的sendfile系统调用来发送文件,它减少了内核态与用户态之间的两次内存复制,这样就会从磁盘中读取文件后直接在内核态发送到网卡设备,提高了发送文件的效率

7-2,AIO系统调用

语法:aio on|off;

默认:aio off;

配置块:http,server,location

此配置项表示是否在FreeBSD或linux系统上启用内核级别的异步文件I/O功能。注意,它与sendfile功能是互斥的

7-3,directio

语法:directio size|off;

默认:directio off;

配置块:http,server,location

此配置项在FreeBSD和linux系统上使用O_DIRECT选项去读取文件,缓冲区大小为size,通常对大文件的读取速度有优化作用,注意,它与sendfile功能是互斥的

7-4,directio_alignment

语法:directio_alignment size;

默认:directio_alignment 512;

配置块:http,server,location

它与directio配合使用,指定以directio方式读取文件时的对齐方式。一般512B足够,但对一些高性能文件系统,如linux下的XFS文件系统,需要设置到4k

7-5,打开文件缓存

语法:open_file_cache max=N[inactice=time]|off;

默认:open_file_cache off;

配置块:http,server,location

文件缓存会在内存中存储以下3种信息:

1.文件句柄,文件大小和上次修改时间

2.已经打开过的目录结构

3.没有找到的或者没有权限操作的文件信息

这样,通过读取缓存就减少了对磁盘的操作。

参数含义:

max:表示在内存中存储元素的最大个数。当达到最大限制数量后,将采用LRU算法从缓存中淘汰最近最少使用的元素

inactive:表示在inactive指定的时间段内没有被访问过的元素将会被淘汰,默认时间60秒

off:关闭此功能

例如:

   open_file_cache max=1000

   inactive=20s;

7-6 是否缓存打开文件错误的信息

语法:open_file_cache_errors on|off;

默认:open_file_cache_errors off;

配置块:http,server,location

此配置项表示是否在文件缓存中缓存打开文件时出现的找不到路径,没有权限等信息。

7-7 不被淘汰的最小访问次数

语法:open_file_cache_min_uses number;

默认:open_file_cache_min_uses 1;

配置块:http,server,location

它与open_file_cache 中的inactive参数配合使用,如果在inactive指定的时间段内,访问次数超过了指定的最小次数,将不会被淘汰出缓存

7-8 检验缓存中元素有效性的频率

语法:open_file_cache_valid time;

默认:open_file_cache_valid 60s;

配置块:http,server,location

默认为每60秒检查一次缓存中的元素是否仍有效。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐