您好,登录后才能下订单哦!
流量优化:
防盗链
前端优化:
        减少http请求
        添加异步请求
        启用浏览器缓存和文件压缩
        建立独立图片服务器
服务端优化:
        页面静态化
        并发处理(比如多线程、多进程)
        队列处理
数据库优化
数据库缓存(redis、memcache、mongodb等)
        分库分表、分区操作
        读写分离
web服务器优化
        负载均衡
                通过lvs的三种基本模式实现负载均衡
mycat数据库中间件实现负载均衡
qps:每秒请求或查询的数量,每秒响应请求数(如http请求)
吞吐量:单位时间内处理的请求数量(通常由qps与并发数决定)
响应时间:从请求发出到收到并且响应所花时间
pv:综合浏览量,即页面浏览量或点击量(如果一个用户刷新一个页面若干次也只能算一个pv),一个访客在24小时内访问的页面数量。同一个人浏览你的网站同一个页面,只算一次pv
uv:独立访客,一定时间范围内相同访客多次访问网站,只计算为一个独立访客
日网站带宽=pv/统计时间(换算到秒)*平均页面大小(单位kb)*8(峰值一般是平均的倍数,根据实际情况来定)
并发连接数不等于qps,qps是每秒http请求数量,并发连接数是系统同时处理的请求数量




常用性能测试工具:
        ab、wrk、http_load、web bench、siege、apache jmeter
        ab全程apache benchmark,模拟多个访问者同时对某一url地址进行访问,它的测试目标基于url,可以测试apache、nginx、lighthttp、tomcat、iis等web服务器的压力
注意事项:
        测试机器与被测试机器要分开
        不对线上服务做压力测试
观察测试工具ab所在机器,以及被测试的前端机的cpu,内存,网络等都不超过最高限度的75%
防盗链(当流量很大,但访问量没有响应大的时候,考虑这种情况)
        可以减轻服务器压力
        工作原理:通过referer或者签名,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址,一旦检测到来源不是本站即进行阻止或者返回指定页面
referer:
                        nginx模块ngx_http_referer_module用来阻挡来源非法的域名请求。nginx指令valid_referers,全局变量$invalid_referer。
                                
                                为什么加none:因为通过浏览器访问本身就是空,要确保通过浏览器也可以访问
                                (可以通过伪造referer来进行盗链)
加密签名:
                        使用第三方模块HttpAccessKeyModule实现Nginx防盗链
                                
                                
                                
减少http请求
        只有10%-20%响应时间花在接收请求的html文档上,剩下的80%-90%时间花在html文档所引用的组件(图片、js、css、flash等)进行的http请求上
        改善:
合并组件数量:
                        压缩js、css等(去掉空格、回车)
                        合并js、css等
                        图标放到一个图片上(图片地图)
                图片使用base64编码减少页面请求数:
                        
http缓存
        缓存分类:
                200 ok (from memory cache):(浏览器调试工具显示)
                304 not modified:协商缓存,本地缓存失效,会去服务端请求,带头信息过去,让服务器判断该资源在服务端是否过期,如果没过期,告诉浏览器继续使用本地缓存。(快速,发送的数据少,只返回基本的响应头信息,不发送实际响应体)
                200 ok:以上两种缓存都失败,服务器返回完整响应。没用到缓存,相对较慢
                (其中,本地缓存最快,无需请求服务器)
        适合做缓存的内容:
                不变的图像,如logo、图标等
                js、css静态文件
                可下载的内容,媒体文件
        建议使用协商缓存:
                html文件(数据可能变化)
常变动的图片
                经常修改的js、css文件
                (js、css文件的加载可以加入文件的签名来拒绝缓存,如index.css?签名、index.签名.js)
        不建议做缓存的内容:
                用户隐私等敏感数据
                经常改变的的api数据接口
        nginx本地缓存配置:
                
                
                        例子:
                                
                
                        
图片压缩:
压缩工具:tinypng、jpegMini、imageOptim
gzip压缩
cdn(内容分发网络):
        
        cdn服务商:bat、七牛等
动态语言静态化:
        将php等动态语言逻辑代码生成静态html文件
        
(一般框架中自带该功能。步骤:判断是否有xx.html文件,无则生成,有则返回文件内容)
并发处理:
        swoole、golang等
                例子:异步发送邮件、短信等 
数据库缓存:
        mysql自带查询缓存,但一般不用
        redis、memcache等
        redis持久化:aof、快照
        比如社交系统(微博等)的关注关系、session存入redis、
mysql数据层优化
        数据表数据类型优化
                如:ip地址,用整型存比字符串型更节省空间(php用ip2long转换存入数据库)
索引优化
        sql语句优化
        存储引擎优化
        数据表结构设计的优化
数据库服务器架构的优化
        (详情:https://blog.51cto.com/5660061/2386930)
web服务器的负载均衡
七层负载均衡:基于url等应用层信息的负载均衡
如nginx的proxy:
功能强大、性能卓越、运行稳定
配置灵活简单
                        能自动剔除工作不正常的后端服务器
上传文件使用异步模式
支持多种分配策略,可以分配权重,分配方式灵活
                        
                        
                        
                        
                        
                        
        四层负载均衡:如lvs
                
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。