IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

Elton's Blog 2012-05-17 23:51:28 累计浏览 4,841 次
本机暂存

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. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)
  2. WARNING: detected duplicate paths to the same disk导致crs无法正常启动故障解决 (2026-05-24 22:24:49)
  3. Terraform 极简入门:从 AWS-CLI 到基础设施即代码(IaC) (2026-05-20 08:00:00)

查看更多 DevOps 文章 →

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 106,998)
  2. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (累计阅读 33,828)
  3. 记录一个软中断问题 (累计阅读 16,893)
  4. 解析nginx负载均衡 (累计阅读 16,518)
  5. Linux如何统计进程的CPU利用率 (累计阅读 16,211)
  6. 我的 RHCA 之路 (累计阅读 13,930)
  7. Linux内存点滴 用户进程内存空间 (累计阅读 13,061)
  8. 给程序员新手的一些建议 (累计阅读 13,027)
  9. Linux 性能监控、测试、优化工具 (累计阅读 12,955)
  10. 关于linux内存free的一些事情 (累计阅读 12,759)