`
soleghost
  • 浏览: 40785 次
  • 性别: Icon_minigender_1
  • 来自: 未知
社区版块
存档分类
最新评论

系统的性能优化--记项目总结

 
阅读更多

项目过去都3个多月了,也没系统的总结,今天总结一下

 

系统背景:

1.访问量大:每天承受20亿+服务调用

2.海量数据:核心表都是5亿条数据,而且每天还在以几十万的速度增加

3.之前架构:由于读写比例很高,已经采用分布式cache--db单点的架构

4.db负载高:在小机上,业务高峰期时,db的cpu的占用率曾达到70%-80%,响应明显变慢

5.业务特性:读写比例高,大部分业务可以接受细微的延迟。

 

目标:

1.高可用:去DB单点,app、cache、db任何一个节点宕机,不影响可用率

2.性能优化

 

新的架构:n个app--n个cache--1个写库--n个读库,除了去单点的功效,还在架构层面解决60%性能问题。

 

细节的优化措施:

1.将业务数据分级,核心数据还在db上,不重要&&写频率高的数据存入其他相对不重要的存储(比如登录、密码校验等一下优化了4000w次写)

2.cache,还是cache:对于互联网类型的业务,一般都是单个查询,较为方便构造缓存的key,最多2级key。绝大部分的数据,都放到了cache上。

3.空查比例较高的高并发的查询:采用布隆算法,或者cache中加入空对象表示业务上的空,防止数据穿透到db。

4.将若干关系紧密的表合并:对于我们的应用,虽然几张表表示不同的业务,但关系紧密,可以说95%的情况下,是查了一张表,必须查另外一张表的情况,而且查询频率非常之高。这样做的好处,从db层面,查询2张表减少为查询1张表,减少了io等不必要的操作。

5.构建批量查询:减少对db的多次请求和网络传输。

6.增加标志位,用于控制是否查询附属表:我们的模型比较复杂,存在3张附属表,这3张附属表,只有1%的用户具有这样的特性,每次构造模型时,用此标志位检查是否有此业务,减少查询

7.评估cache的失效时间:适当增加cache的失效时间,提升命中率

8.提供定制化查询服务:对于外围一些访问量比较高的系统,针对具体业务,提供批量查询。比如外围有些业务系统,一次业务要查询会员信息10次, 可以针对具体特性,开发单个接口,满足其业务需求,减少了服务调用。拿数据说话吧,现在每天查询从20亿-25亿次查询,优化到10亿次。

 

 

 

分享到:
评论

相关推荐

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    目录: 5月11日 出发今日点评优化小技巧 性能 优化项目优化小技巧 优化常用知识1:诊断事件5月12日 开始工作和CPU瓶颈今日点评优化小技巧 数据库 优化的步骤优化小技巧 按部就班是成功的关键优化小技巧 优化常用知识2...

    Oracle优化日记:一个金牌DBA的故事.pdf

    1999年起致力于Oracle数据库性能优化等方面的研究,参与了大量性能优化项目,积累了许多实际工作案例。2008年起,在博客上连载《DBA日记》,希望将自己在Oracle数据库应用领域的10多年的经验与广大读者分享。

    基于SSH的学生信息管理系统-实训个人工作总结.doc

    同时,总结还可能分享个人在解决技术难题和优化系统性能方面的经验。 测试和调试部分,总结可能会强调个人对系统的测试策略和测试用例的制定,以及如何进行单元测试、集成测试和验收测试。可能会详细讲述个人如何...

    Java毕业设计-基于springboot开发的数码论坛系统设计与实现--论文-附毕设源代码+说明文档.rar

    此外,项目还充分考虑了性能优化和安全性问题,采用了缓存、数据库连接池等技术来提升系统性能,通过身份验证、权限校验等机制来保障系统安全。 说明文档详细记录了项目的开发背景、需求分析、系统设计、实现过程...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    6-MySQL数据库系统优化生产方案及细节精讲02.avi 7-MySQL数据库参数索引优化生产方案及细节精讲03.avi 8-MySQL数据库SQL优化生产方案及细节精讲04.avi 9-MySQL数据库架构优化生产方案及细节精讲05.avi 第十六部 ...

    计算机毕业设计: 基于ssm mysql-中小型超市管理系统 (数据库+程序+论文),保证可靠运行,附赠计算机答辩PPT 

    此外,我们还对系统进行了性能优化和安全性保障,确保在高并发场景下仍能稳定运行,并有效防止数据泄露和非法访问。 为了支撑项目的完整性和学术性,我们撰写了详细的论文,深入分析了中小型超市管理的现状和挑战,...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    第二部分 故障诊断与性能优化篇 第3章 故障诊断 72 3.1 影响mysql性能的因素 72 3.2 系统性能评估标准 73 3.2.1 影响linux服务器性能的因素 73 3.2.2 系统性能评估指标 74 3.2.3 开源监控和评估工具介绍 76 ...

    计算机毕业设计:基于ssm mysql-在线汽车交易系统 (数据库+程序+论文),保证可靠运行,附赠计算机答辩PPT 

    此外,我们还对系统进行了性能优化和压力测试,确保在高并发场景下仍能稳定运行,为用户提供流畅的使用体验。 为了支撑项目的学术性和完整性,我们撰写了详细的论文,深入分析了在线汽车交易市场的现状和发展趋势,...

    Django查询数据库的性能优化示例代码

    Django数据层提供各种途径优化数据的访问,一个项目大量优化工作一般是放在后期来做,早期的优化是“万恶之源”,这是前人总结的经验,不无道理。如果事先理解Django的优化技巧,开发过程中稍稍留意,后期会省不少的...

    网上书店信息管理系统课程设计.doc

    (4)系统集成调试阶段 对系统的各个应用程序进行集成和调试,进一步优化系统性能,改善系统用户界面、 完善功能。 3)、课程设计选题与学时分配 从以下六题中任选一题作为课程设计的题目: (1)人事信息管理系统...

    基于springboot+vue的游戏交易系统.zip

    总结:基于springboot+vue的游戏交易系统是一个功能完善、性能优越的全栈项目,适合作为学习和商业应用的基础。通过该系统,用户可以方便地进行游戏物品的交易,同时为开发者提供了丰富的学习和实践机会。

    asp.net知识库

    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...

    分布式高性能日志复制服务 DistributedLog.zip

    DL是一个高性能的日志复制服务,提供了持久化、复制以及强一致性的功能,这对于构建可靠的分布式系统都是至关重要的,如复制状态机(replicated-state-machines)、通用的发布/订阅系统、分布式数据库以及分布式队列...

    数字化项目文档管理实施方案.docx

    对存储系统进行测试和优化,确保其性能稳定、安全可靠。 实施文档分类与命名 按照制定的文档分类与命名规范,对项目文档进行分类和命名。确保文档的层次清晰、结构合理,便于管理和检索。 设置文档权限与审批流程 ...

    leetcode下载----:---

    leetcode下载 LeetCode 统计数据的时间是从 2019-09-03 19:40 起至今 简体中文 | 这个是我写的, 记录了项目的"兴起"之路, ...擅长前端工程化,前端性能优化,前端标准化等,做过.net, 搞过Java,现在是一名

    电子产品的设计流程.doc

    2、电路模块,我们在原理设计的过程中,工程师在进行实际的布局布线前对系统的时间 特性、信号完整性、电源完整性、散热情况等问题做一个最优化的分析,当然这些工作 大多需要由专业的PCB设计工程师来完成,原理...

    (完整)电子产品的设计流程.doc

    2、电路模块,我们在原理设计的过程中,工程师在进行实际的布局布线前对系统的时间 特性、信号完整性、电源完整性、散热情况等问题做一个最优化的分析,当然这些工作大 多需要由专业的PCB设计工程师来完成,原理设计...

    java版飞机大战源码-Resources:收集资源

    性能优化 坑 Element-UI Vuex 缓存 React 坑 Angular 移动端 Electron HTML & CSS & JavaScript HTML CSS JavaScript [ ] 如何编写高质量的代码 JS Eslint CSS 浏览器调试技巧 编辑器 Java DB SQL Server MyBatis ...

Global site tag (gtag.js) - Google Analytics