欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大型网站架构

程序员文章站 2024-01-10 14:24:22
...

高性能

      网站性能测试:

             指标:

                    1、响应时间

                    2、并发数

                    3、吞吐量

                    4、性能计数器

             测试方法:

                    性能测试(可接收范围内)

                    负载测试(临界值,继续则性能下降)

                    压力测试(最大压力承受能力,继续则系统崩溃)

                    稳定性测试(运行长时间,检测稳定性)

              性能报告:

                     并发数

                     响应时间

                     TPS

                     错误率

                     Load

                     内存

                     备注

               优化策略:

                      性能分析(日志-响应时间-->监控数据-影响性能主要因素-内存、磁盘、网络、CPU、代码、架构、系统资源)

                      性能优化(如下)

      web前端优化

            浏览器优化

                   1、减少http请求(合并CSS、JS、图片)

                   2、使用浏览器缓存(设置http头中的Cache-Control、Expires)

                   3、启用压缩(html、css、js启动Gzip压缩)

                   4、css最上面,js最下面

                   5、减少cookie传输(静态资源独立域名访问)

             CDN加速(缓存静态资源)

             反向代理(缓存静态资源、负载均衡)

      应用服务器优化

             分布式缓存(memcached、redis)

             异步(消息队列)

             集群(负载均衡)

             代码优化(多线程、资源复用<单例、对象池>、数据结构、垃圾回收<新生代、老年代的大小设置>)

      存储优化

             固态硬盘、LSM树(NoSql)、HDFS

高可用

        度量=(1-网站不可用时间/年度总时间)*100%

        考核=故障时间(分钟)*故障权重

        高可用的应用:

               1、通过负载均衡进行无状态服务的失效转移。

               2、应用服务器集群的Session管理

         高可用的服务:

                1、分级管理(核心使用好的硬件设备、隔离避免故障连锁)

                2、超时设置(一旦超时,抛异常,释放资源)

                3、异步调用(避免一个服务失败导致整个应用请求失败)

                4、服务降级(关闭部分不重要功能)

                5、冥等性设计(服务重复调用)

          高可用的数据:

                 1、CPA原理(数据可用性、数据一致性、分区耐受性,无法同时满足)

                 2、数据备份

                 3、失效转移

          软件质量保证:

                 1、网站发布(运行中发布)

                 2、自动化测试

                 3、预发布验证(预发布服务器,与正式不同的是没有配在负载均衡服务器上,外部用户无法访问)

                 4、代码控制(分支开发,主干发布)

                 5、自动化发布(周四发布日)

                 6、灰度发布(部分新版,部分老版)

          网站运行监控

                 监控数据采集

                        1、用户行为日志收集

                        2、服务器性能监控

                        3、运行数据报告

                 监控管理

                        系统报警

                        失效转移

                        自动降级