黑帽联盟

 找回密码
 会员注册
查看: 1240|回复: 0
打印 上一主题 下一主题

[脚本语言] linux下nginx使用内存加速静态文件访问

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    nginx是一个非常出色的静态资源web服务器.如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO.先做几个假设.nginx.conf中所配置站点的路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res

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

    2. res_path="/opt/web/res"  
    3. mem_path="/dev/shm/res"  
    4. lk_path="/home/wwwroot/res"  

    5. if [ ! -d "$mem_path" ]; then  
    6.         cp -r "$res_path" "$mem_path"  
    7. fi  

    8. if [ ! -L "$lk_path" ]; then  
    9.         ln -s "$mem_path" "$lk_path"  
    10. fi
    复制代码
    更新测试数据

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

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

    测试结果:

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

    ps:上面这个脚本我个人觉得很合适小型企业网站来使用


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部