如何提升网站 遇大并发请求大量小图片时,图片响应缓慢的问题

问题描述

网站允许用户上传自定义头像,上传照片,这些图片普遍不大,处理后在10K~50K之间。粗略统计了下网站90%图片的图片体积在10K到50K之间,目前网站有5w多张图片,总的体积有1.5G左右。 当然网站弄了台专门的图片服务器,可是当图片并发请求大的时候,通过性能监控工具发现 请求磁盘 太过频繁,磁盘非常繁忙,而CPU,网络倒是能应付,图片的响应就有点慢了,我想图片响应缓慢,系统的瓶颈应该在磁盘方面了。服务器内存可供使用的资源还有8个G左右,能否在不升级系统硬件,优化程序来提高大并发请求情况下,提升图片的响应速度。

解决方案

使用NIO,将文件先映射到内存在处理吧
解决方案二:
频繁的访问磁盘,你不加硬件的话,还要提高性能,那么只能降低磁盘的访问,如何降低呢。估计也只能用缓存,把访问量大的图片都读取出来放到缓存中。建议是往缓存方向考虑。你有8个G呢。
解决方案三:
不知道你的图片server使用的是什么,建议使用nginx,性能上比apache好了不是一两倍,开启gzip,配置图片缓存。另外代码上也可以做一下控制,比如非第一屏的图片全部做懒加载,用户鼠标滚动到时再加载图片,这样可以减少图片的http并发量。还有楼上说的使用nio,虽然我没使用过,但是感觉思路是对的,即使用缓存。
解决方案四:
一方面降低因请求占用的内存空间大小,另一方面增加图片CACHE的内存容量。
解决方案五:
用个图片服务器看看,也可以试试淘宝的tfs。
解决方案六:
把1.5G图片全部写入内存。。。。
解决方案七:
你好,根据你的问题可以使用浏览器缓存或客户端缓存,具体可以参考:http://www.cnblogs.com/chenzhao/archive/2012/11/25/2787958.html
解决方案八:
squid
解决方案九:
这是:[url]http://blog.sina.com.cn/s/blog_633219970100ykt9.html [/url]
解决方案十:
楼主看看这篇文章,淘宝的图片处理http://blog.sina.com.cn/s/blog_633219970100ykt9.html这个tfs是开源的,在code.taobao.org上能找到
解决方案十一:
nginx缓存squid或者varnish直接云服务
解决方案十二:
1、页面可以使用懒加载,当浏览到图片的时候在加载,类似于淘宝的BigRender的模式,这样可以降低同一时间的并发量,降低服务器的压力。2、如果是图片在网络传输过程中耗时较高,压缩图片传输,通过减小传输数据的大小来提升性能。3、服务器将图片写进缓存中,可以使用MemCache,有效提高后台读写速度
解决方案十三:
换固态硬盘,用Nosql缓存图片。
解决方案十四:
用VARNISH, 缓存到内存, 另外可以用CDN, 根据用户距离来选择最近的服务器
解决方案十五:
1、把图片服务器弄成分布式的,提高并发吞吐量。2、图片服务器是单个服务吗?如果是,可以考虑用apache做一个集群,可以再一台机器上部署多个服务,来提高并发吞吐量。3、换固态硬盘,听说固态硬盘挺快的,具体没用过。

时间: 2024-10-07 18:47:53

如何提升网站 遇大并发请求大量小图片时,图片响应缓慢的问题的相关文章

大并发服务器之阵痛1:传输响应模式

如果你在淘宝上买过衣服,你会发现,模特的图片一张张的加载起来实在是有点慢.有时候体验简 直很糟糕. 我们来分析下传输生命线: 这是ald.taobao.com 域名下的三次请求,我们发现是按顺序的请求响应,不禁要问,为什么三个请 求不同时进行呢,能不能重叠呢. 现在市面上各类服务器如nginx, apache对HTTP的传输响应目 前都只有一种,即:请求----响应----请求-----响应,我们暂定为传统模式,在传统模式下,每一次 请求都要在上次响应之后才能进行,实际上是拉长了整体的响应时间,

提升网站抗并发压力的必备招数

背景: 自从本人花了4天4夜写出了:分布式网站负载压力测试工具 之后,每天都会有一些使用者通过我的在线QQ状态Q我:问我一点提升网站性能的事. 他们通常有不错的独立服务器,然而仅几十个或几百个并发链接,他们服务器就挂了. 对于这么简单就挂的,通常就是编码者入行不久,而使用DBHelper多数没关注链接关闭问题,或者多数使用查询出DataReader绑定了列表控件引发的. 简单点说就是数据库操作这块不当,造成的,当然建议就是让对方一行一行去查没关闭的链接等情况了,附带的建议就是让对方考虑使用CYQ

全方位提升网站打开速度:前端、后端、新的技术

本文讲的是全方位提升网站打开速度:前端.后端.新的技术, 这里是 我们 充分利用对于网络缓存和 NoSQL 系统的研究,做出一个可以容纳几十万通过电视宣传慕名而来的访问者的网上商城 的故事,以及我们从中学到的一切. "Shark Tank"(美国),"Dragons' Den"(英国)或" Die Höhle der Löwen(DHDL)"(德国)等电视节目为年轻初创公司供了一次在众多观众前向商业大亨推销自己产品的机会.然而,主要的好处往往不在

IIS处理并发请求时出现的问题及解决

原文http://www.cnblogs.com/hgamezoom/p/3082538.html 一个ASP.NET项目在部署到生产环境时,当用户并发量达到200左右时,IIS出现了明显的请求排队现象,发送的请求都进入等待,无法及时响 应,系统基本处于不可用状态.因经验不足,花了很多时间精力解决这个问题,本文记录了我查找问题的过程和最后解决方案,供大家参考.   软硬件环境: IBM刀片服务器,Intel至强处理器,4物理核,16个逻辑核心,内存32G Windows Server2008 E

如何实现高容量大并发数据库服务 | 数据库分布式架构设计

袋鼠学院和优云.阿里云联合举办的沙龙结束之后,总是有小伙伴们来问PPT内容,想要进一步了解Topic内容.(哦,对了对了,竟然还有小伙伴专门冲着袋鼠云去听沙龙,感动cry~~) 千呼万唤,忙成狗的袋鼠小妹终于把沙龙总结整理了出来(⊙o⊙) 本次沙龙的主题是"云时代下的运维管理实践",受邀请的演讲嘉宾,花名宏翊(经常关注袋鼠云的同学,肯定已经对这个名字很熟悉了),是袋鼠云首席数据库架构师,袋鼠学院数据库讲师. 呼应沙龙运维实践的主题,结合自己的专长领域,宏翊主要是从数据库领域来谈云时代下

#运维侠客行·杭州站# 如何实现高容量大并发数据库服务

运维侠客行杭州站·讲师 宏翊,袋鼠云首席架构师,袋鼠学院数据库讲师. 在2017运维侠客行·杭州站上,主办方优云软件特意邀请了来自袋鼠云的首席数据库架构师宏翊给大家带来了如何实现高容量大并发数据库服务.为什么数据库需要做分布式架构设计?在对数据库进行拆分设计和实施时,会遇到哪些坑?又该如何避免踩坑?一起来了解下吧. ▍摘要 数据库拆分要根据业务现状.模式,选择合适的拆分方式,紧密结合业务及应用架构设计,谨慎拆分,防止过度设计. ▍正文 一 为什么要做分布式数据库架构改造? 云计算大数据时代,传统

PHP学习之挖掘细节提升网站性能

相信互联网已经越来越成为人们生活中不可或缺的一部分.ajax,flex等等富客户端的应用使得人们越加"幸福"地体验着许多原先只能在C/S实 现的功能.比如Google机会已经把最基本的office应用都搬到了互联网上.当然便利的同时毫无疑问的也使页面的速度越来越慢.自己是做前端开发的,在性能方面,根据yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化的. 以上是一张web2.0页面的生命周期图.工程师很形象地讲它分成了"怀孕,出生,毕业,结婚&

PHP教程:挖掘细节提升网站性能

相信互联网已经越来越成为人们生活中不可或缺的一部分.ajax,flex等等富客户端的应用使得人们越加"幸福"地体验着许多原先只能在C/S实 现的功能.比如Google机会已经把最基本的office应用都搬到了互联网上.当然便利的同时毫无疑问的也使页面的速度越来越慢.自己是做前端开发的,在性能方面,根据yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化的. 以上是一张web2.0页面的生命周期图.工程师很形象地讲它分成了"怀孕,出生,毕业,结婚&

快速提升网站权重方法六:思路无敌

大家好,我是虚子雨.今天我要写的这篇文章蓄谋已久,早就想写写关于SEO思路的东西,一直没敢动笔,一是认为自己的SEO技术还不够好,另外一个是思路是可遇而不可求的东西,一个好的思路能够为我们的SEO工作带了不可预估的好处.其实从去年开始我就在想几个问题:我在思考我的SEO出路是什么,我未来的SEO要做到什么样子才能得到更好的提高,我能靠SEO得到什么.今年来,我越来越感到做SEO真的很累,如果不再找到出路,那我可能抗不了多久了.很庆幸,也很合乎情理的,我找到了我的出路,也就是今天我要跟大家分享的关