Nginx使用Linux内存加速静态文件访问

标签: 系统运维 | 发表时间:2012-05-17 23:51 | 作者:Elton
出处:http://www.blogread.cn/it/

标签:   Nginx

Nginx是一个非常出色的静态资源web服务器。如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO。

先做几个假设。nginx.conf中所配置站点的路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res

shell脚本非常简单,思路就是拷贝资源文件到内存中,然后在把网站的静态文件链接指向到内存中即可。具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
#! /bin/bash   
 
res_path="/opt/web/res"  
mem_path="/dev/shm/res"  
lk_path="/home/wwwroot/res"  
 
if [ ! -d "$mem_path" ]; then  
        cp -r "$res_path" "$mem_path"  
fi  
 
if [ ! -L "$lk_path" ]; then  
        ln -s "$mem_path" "$lk_path"  
fi

===================
更新测试数据

利用上述方法,在公司的测试服务器上做了个测试,速度提升明显,速度几乎翻倍。

测试前提:将测试网站的首页全部内容包括html,图片,js,css等所有元素都拷贝到内存中,并且每次用户请求静态资源文件都不会缓存。使用LoadRunner按照200和100并发分别进行压力测试。

测试结果:

  1. 在高并发下全部使用磁盘文件200人并发 2分钟 平均每次事务响应时间为19.96秒 每秒处理事务数为9.26个
    使用内存200人并发 2分钟 平均每次事务响应时间为11.3秒 每秒处理事务数为15.8个
  2. 在低并发下全部使用磁盘文件100人并发 2分钟 平均每次事务响应时间为10.27秒 每秒处理事务数为9.32个
    使用内存100人并发 2分钟 平均每次事务响应时间为5.84秒 每秒处理事务数为16.17个

您可能还对下面的文章感兴趣:

  1. 在 MogileFS 中使用 Nginx [2012-03-11 22:19:49]
  2. 重负荷nginx的几个关键配置参数 [2012-03-04 17:52:57]
  3. 使用nginx记日志 [2012-01-27 18:49:29]
  4. nginx防hashdos模块使用帮助 [2012-01-16 00:03:36]
  5. Nginx 还是 Varnish? [2011-11-23 23:56:28]
  6. 检查nginx配置,重载配置以及重启的方法 [2011-11-06 22:33:52]
  7. Varnish VS Nginx测试报告 [2011-10-17 22:40:15]
  8. nginx 使用 ssl [2011-10-14 13:48:26]
  9. nginx的配置文件 [2011-10-12 00:14:03]
  10. 使用memc-nginx和srcache-nginx构建高效透明的缓存机制 [2011-10-11 23:47:31]
  11. 使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制 [2011-10-04 18:01:01]
  12. 解决 nginx 反向代理网页首尾出现神秘字符的问题 [2011-07-18 23:28:37]
  13. Nginx模块开发入门 [2011-07-18 13:36:53]
  14. Nginx+FastCgi+Php 的工作机制 [2011-06-01 13:41:04]
  15. nginx的upstream目前支持5种方式的分配 [2011-01-23 23:03:43]
  16. 使用fastcgi_cache加速你的Nginx网站 [2011-01-05 22:44:49]
  17. Nginx源码分析-内存池 [2011-01-05 03:31:14]
  18. 深入理解Nginx之调试优化技巧 [2010-12-21 01:57:16]
  19. Nginx源码分析-事件循环 [2010-12-21 01:55:06]
  20. nginx模块开发 [2010-12-21 01:52:06]
  21. Nginx的connections数组 [2010-12-14 21:58:24]
  22. Nginx的master和worker进程间的通信 [2010-12-05 21:29:03]
  23. Nginx启动初始化过程(二) [2010-12-02 22:32:44]
  24. Nginx启动初始化过程(一) [2010-12-02 22:32:15]
  25. Nginx进程管理之worker进程 [2010-12-02 22:31:28]
  26. Nginx进程管理之master进程 [2010-11-28 18:58:18]
  27. nginx.conf控制指定的代理ip和ip访问的设置手记 [2010-10-17 22:21:49]
  28. 配置Nginx+uwsgi更方便地部署python应用 [2010-10-11 00:56:53]
  29. 使用 Perl 来开发 Nginx 的模块 [2010-09-26 08:57:47]
  30. nginx在fastcgi模块中转发真实的后端IP [2010-09-01 10:28:26]
  31. 当使用 Nginx 做 Hash 时对动态文件和静态文件的处理 [2010-08-02 22:59:10]
  32. 解决IE6从Nginx服务器下载图片不Cache的Bug [2010-06-27 22:19:15]
  33. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 [2010-06-12 09:43:51]
  34. nginx的upstream目前支持5种方式的分配 [2010-06-03 13:15:43]
  35. Cacti 添加 Nginx 监控 [2010-05-26 13:22:17]
  36. nginx文件类型错误解析漏洞 [2010-05-22 15:14:27]
  37. Nginx的启动、停止、重启、升级操作总结 [2010-05-22 12:58:47]
  38. 再提供一种解决Nginx文件类型错误解析漏洞的方法 [2010-05-22 12:55:02]
  39. Nginx 反盗链设置 [2010-05-12 13:21:13]
  40. 通过Nginx使全站页面变灰,哀悼玉树地震遇难者 [2010-04-27 13:45:34]
  41. 配置nginx [2010-03-29 08:56:55]
  42. nginx mail模块的学习 [2010-03-07 23:29:14]
  43. 使用nginx做为hiphop-php的前端服务器 [2010-03-01 13:39:10]
  44. PHP上传文件类型彻底判断方案及PHP+nginx上传大小彻底控制方案 [2010-01-13 14:09:53]
  45. nginx mail模块的学习 [2010-01-04 16:04:29]
  46. ubuntu 9.10快速安装nginx+php环境手记 [2009-12-24 23:55:20]
  47. nginx upstream 的几种分配方式 [2009-12-11 22:55:59]
  48. Bo-Blog 2.1.1 的 Nginx Rewrite 规则[原创] [2009-11-30 16:21:57]
  49. Nginx(PHP/fastcgi)的PATH_INFO问题 [2009-11-19 09:36:14]
  50. 多nginx单php-fpm的配置方法 [2009-11-16 23:15:26]
  51. nginx中对http请求处理的各个阶段分析 [2009-11-15 19:21:08]
  52. nginx源码分析-共享内存 [2009-11-15 19:18:23]
  53. 利用nginx secure link module防盗链 [2009-10-29 12:00:02]


相关 [nginx linux 内存] 推荐:

Nginx使用Linux内存加速静态文件访问

- - IT技术博客大学习
标签:   Nginx. Nginx是一个非常出色的静态资源web服务器. 如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO. nginx.conf中所配置站点的路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res. shell脚本非常简单,思路就是拷贝资源文件到内存中,然后在把网站的静态文件链接指向到内存中即可.

linux下安装nginx、pcre、zlib、openssl

- - CSDN博客推荐文章
1、安装nginx之前需要安装 PCRE库的安装. 最新下载地址   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/. tar –zxvf pcre-8.21.tar.gz,解压目录为:pcre-8.21. 然后进入到 cd pcre-8.21,进行配置、编译、安装.

Linux & Nginx 性能参数调优

- - Linux - 操作系统 - ITeye博客
主要针对linux 文件句柄以及网卡参数调优. 修改linux最大文件句柄数. 查看open files  参数. vi /etc/security/limits.conf 添加. 修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了. use epoll; 使用epoll的I/O模型 如:.

Nginx优化指南+LINUX内核优化+linux连接数优化+nginx连接数优化

- - CSDN博客系统运维推荐文章
Most setup guides for Nginx tell you the basics - apt-get a package, modify a few lines here and there, and you’ve got a web server. In this guide, I’ll explain which settings in nginx can be fine tuned in order to optimize performance for handling a large number of clients.

linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数

- - SegmentFault 最新的文章
一、linux 系统内核参数. /etc/sysctl.conf文件常用参数. net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目 net.core.rmem_max = 8388608. #SOCKET读缓存区大小 net.core.wmem_max = 8388608.

开启nginx cache后导致内存几乎100%问题

- - 开涛的博客
1、前些日子某服务被刷,每分钟达到上几百万请求;当时采用了nginx cache来解决的;但是因为某服务不能缓存太久,当时设置了5s,那么带来的问题就是产生大量小文件,而且很快就删除了. 会发现used是27G;但是通过top查看进程占的内存并没有那么多. SReclaimable: 16474128 kB (这些是内核保持的但是可以释放的inode和dentry的缓存).

Linux虚拟内存实现原理

- Sepher - NoSQLFan
下面是一篇翻译文章,原文出自MongoDB的核心开发工程师 Kristina Chodorow 的个人博客,由NoSQLFan翻译整理. 我们都知道,MongoDB 使用内存映射的方式来进行数据文件的存取操作. 本文的目的就在于描述操作系统虚拟内存的使用及内存映射的内部实现. 当你运行一个程序,程序中有许多东西需要存储,堆、栈以及各种功能库.

Linux Used内存到底哪里去了?

- - 非业余研究
原创文章,转载请注明: 转载自 非业余研究. Linux Used内存到底哪里去了. 前几天 纯上 同学问了一个问题:. 我ps aux看到的RSS内存只有不到30M,但是free看到内存却已经使用了7,8G了,已经开始swap了,请问ps aux的实际物理内存统计是不是漏了哪些内存没算. 我有什么办法确定free中used的内存都去哪儿了呢.

Linux系统查看内存使用率

- - BlogJava-qileilove
Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如:.   top –M看更直观,以M为单位.   接近98.7%,而实际上的应用程序占用的内存往往并没这么多,.   看%MEM这列的数字,按内存排序后,把前几名加起来,撑死了才不过55%,那剩下的内存都干嘛用了.

Linux与JVM的内存关系分析

- - 美团技术团队
在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m. 从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示. 同时,由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了.