nginx可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO,以提高网站访问速度。
测试环境:
nginx.conf中站点路径:/home/wwwroot/res
站点文件原始存储路径:/opt/web/res
要用到的shell/ target=_blank class=infotextkey>shell脚本很简单:拷贝资源文件到内存中,然后在把网站的静态文件链接指向到内存中。
更新测试数据
利用上述方法,在公司的测试服务器上做了个测试,速度提升明显,速度几乎翻倍。
测试前提:将测试网站的首页全部内容包括html,图片,js,css等所有元素都拷贝到内存中,并且每次用户请求静态资源文件都不会缓存。
使用LoadRunner按照200和100并发分别进行压力测试。
测试结果:
1.在高并发下全部使用磁盘文件200人并发 2分钟 平均每次事务响应时间为19.96秒 每秒处理事务数为9.26个
2.使用内存200人并发 2分钟 平均每次事务响应时间为11.3秒 每秒处理事务数为15.8个
3.在低并发下全部使用磁盘文件100人并发 2分钟 平均每次事务响应时间为10.27秒 每秒处理事务数为9.32个
4.使用内存100人并发 2分钟 平均每次事务响应时间为5.84秒 每秒处理事务数为16.17个
附:
问题:如果把常用静态文件链接到/dev/shm/res,永久的放在内存里面,如/home/wwwroot/inc,是否可行?
回答:先拷贝到内存里面,然后再做链接,否则内存里面没有你的静态文件。