`
ekaige
  • 浏览: 10889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

系统性能调优总结-----转写

 
阅读更多
概述
Ø 性能优化的思路

首先是较为精准的定位问题,借助于相应的工具包,分析系统性能瓶颈在哪,在根据其性能指标,以及所处于层级决定选择优化的方式方法。在选择优化的方式方法时,大家可以参照以下章节调优方法,架构优化递进,进行正确的,有针对性,有步骤的优化。可能会发现部分指导思想或许有相悖嫌疑,大可不必较真,系统优化的过程本身就是一个不断分离+共享的组合拳,至于具体选择哪种优化方式,根据具体需求来定,但大型应用发展的总体思路是不断分离,在通过索引(非数据库)进行关联起来,

切记:优化一定要对系统进行细致的望闻问切,找到性能问题根源切入点,而不被表象迷糊,对症下药,发现病症所在的医生并不比操作手术刀的医生水平差。本文有工具包一章节,对于需要做优化的人员,需要熟悉,他就是我们诊断所用的CT,例如我们发现内存高了,首先想到不是内存不够用,而是为什么如此消耗内存,用工具看看内存消耗在什么地方,试想之,如在医院,病人告诉医生,他心脏不好,医生就换心脏,那样的话,每个人只要熟练掌握菜刀,都可以做医生

Ø 迭代优化

性能优化未必一次性就能满足的,可能此处瓶颈消失了,系统一旦运转快速后,在其他地方又发现新的性能瓶颈,所以性能优化是一个迭代的工作。直至满足系统需要的性能指标。

Ø 优化的成本

系统性能设计或优化是否可以一步升天,按照最好的分布式架构进行设计和优化呢,单个节点一直也运转及其健康,理论上是可以达到共产国际的,但实际实施层面不可取,必须结合实际的非功能需求进行设计和优化,一则一步到极致的话,系统的成本太过虑庞大,光是性能设计和优化的成本就高于系统本身给客户所提供的价值,也造成研发成本开销过大。二则好像能够架构这样完美系统的人还没诞生。所以一句话也同样适合架构师:有理想而不理想化,废话少扯:具体见法则

调优方法
数据库优化
很多应用,优化DB往往是最直接,最方便,见效最显著的,但并非所有的系统性能都处在瓶颈,或者DB瓶颈解决之后,可能应用层瓶颈,WEB层瓶颈,甚至架构瓶颈都会冒出来了,所以数据库优化十分重要,但往往很多人理解系统优化就是数据库优化,是不全面的。优化角色一般推荐具备较深数据知识的程序员,或者专业的DBA,而不只是会CRUD开发人员

Ø 建立正确的主键,外键,以及索引

Ø 分离原则:读写分离,业务数据分离

a) 分库

b) 分区

c) 分表

d) 分列(将大字段,不常用的隔离到他表,按需查询)

Ø 选择隔离级别:某些对数据一致性要求不高的,可以牺牲部分一致性,降低加锁阻塞

Ø 保证事务简短以及减少不必要的锁机制。

Ø 查询优化规则:

e) 避免表内的相关子查询;

f) 避免排序或为尽可能少的行排序,

g) 做大量数据排序时相关数据放在临时表中

h) .尽量在where后多传查询条件,以减少不必要返回的行

i) .尽量select只需要的字段,以减少不必要返回的列

Ø 分页存储过程:大列表的查询也可以利用分页存储过程达到优化效果。

Ø 利用数据库缓存,视图,临时表等最大程度优化系统,并对存储过程和函数进行必要的优化

Ø 如有需要,可以冗余表中字段,避免联合查询

Ø 如有需要,也可以将表内的大字段分离到单独表中,使其单独查询

Ø 必做多表关联时,尽量过滤不符条件表中数据,减少笛卡尔积计算量

Ø 复杂表表:如实时性要求不高,尽量后台任务计算,避免动态查询

应用层优化
应用层优化侧重于应用层本身的逻辑优化,算法优化,代码优化等,优化的角色可以是熟悉应用的程序员

Ø 优化算法,选择合适高效的算法,降低不必要的递归,循环、多层循环嵌套等计算

Ø 避免申请过多的不必要的内存开销

Ø 降低内存泄露(using,Dispose,弱引用,Finalize)

Ø 使用频率较低的大文件,大对象,大数组等使用完毕后,及时释放

Ø 使用频率较高的大文件,大对象,大数组尽量缓存

Ø 考虑多线程技术

Ø 选择适当的通信方式:长连接,短连接,有以下方式Socket、Remoting、Web Services(Rest,Soap)、WCF、 Named Pipes

Ø 降低应用之间通信次数,例用户认证服务,工作流服务,数据库服务

Ø 降低应用之间传输数据量,不必要传输的不传,少传

Ø 缓存机制:缓存常用的,不易变化的,偶有变化,可以考虑缓存依赖机制

Ø 支持异步计算,降低等待时间

Ø 考虑延迟加载,或者提前加载两种方式

Ø 分离原则:分离业务模块,如分离大I/O模块、分离高耗内存模块,分离高耗宽带模块

Ø 考虑分布式应用,分布式存储,如以上所有仍然搞不定的

Web优化
Web优化偏向于熟悉前端开发的技术人员

Ø 减少http请求

Ø 避免404错误

Ø 在html页面header加入缓存标签

Ø Gzip压缩网页

Ø 减少cookie体积

Ø 使用外部的js和css

Ø 消减js和css

Ø 压缩js

Ø 使用css sprites技术,众多图片合成在一起,通过CSS切分,降低图片传输的频率和数据量

Ø 可以使用静态网页的,避免使用动态网页

架构优化递进
为以示与应用层优化的区别,本文对架构的描述更侧重偏向于物理层面,再次赘述下,涉及变更架构的,需要我们的应用具有良好的拓展性,考验我们的架构师平时的功底,如何刚刚好满足需求以及两三年内业务增量,但并非架构做的越强大,越灵活,越可配置,越易水平拓展就是越好的,其一考虑此应用的投入产出比,换言之,是否值得投入这么多架构设计成本,其二架构设计也是具有一定的时效性的,IT速度太快了,今天的好东西未必是明天的好东西,年轻貌美的姑娘,总有变成老太婆那一天嘛,再者、越灵活的架构,就意味着存在更多的配置项,从某一方面,反而增加了系统的复杂度,最后、很多大型,成熟的应用,也并非一蹴而就,而是通过不断的调整优化,不断变更架构的。圣人也并非天生的,而是不断的总结,提炼,优化,重构

Ø 硬件方面使用高性能的小型机、存储设备。使用极好的网络带宽

Ø 物理分离Web Server和DB Server或者其他服务如:用户认证服务

Ø 缓存

ü 数据缓存机制

ü 页面缓存机制

Ø 物理分离业务模块,单业务单独部署一台服务器

Ø 部署多台Web Server

Ø Web负载均衡-F5

Ø 数据读写分离

Ø 使用消息队列 进行各种应用间进行同步/异步计算

Ø 应用间选择合适的通信方式,通信协议

Ø Web分布式,应用分布式,数据分布式

Ø 分布式的节点使用高性能服务器,小型机群,辅以高速网络带宽等

工具包
Ø 进程管理器,CPU,内存,I/O

Ø 日志:IIS日志,Windows日志,系统本身日志

Ø 使用dotTrace,跟踪方法执行时间,找出速度慢的方法,针对性优化

Ø Sql Profile跟踪SQL耗时情况,针对性优化

Ø HttpWatch跟踪请求耗时,以及发送和收到数据量

Ø Performance Count,使用计数器,统计相关性能指标

Ø CLRProfiler内存泄露检测工具

Ø LoadRunner,压力测试,发现性能瓶颈


  • 大小: 234 KB
分享到:
评论

相关推荐

    藏文拉丁字母转写系统.docx

    ### 藏文拉丁字母转写系统 #### 一、引言 藏文拉丁字母转写系统,即藏文罗马化,是一种将藏文字符转换为拉丁字母的技术手段,旨在促进藏语文献的国际交流和数字化处理。其中最著名的转写方案之一是由Turrell Wylie...

    C#-讯飞实时语音转写

    在本文中,我们将深入探讨如何使用C#与科大讯飞的实时语音转写服务进行集成,通过WebSocket实现高效、实时的语音转文字功能。首先,让我们了解C#语言和WebSocket的基本概念,然后逐步解析科大讯飞的API接口及其实现...

    行业分类-设备装置-薄膜转写装置.zip

    总结来说,薄膜转写装置在推动IT行业进步方面扮演了不可或缺的角色。它不仅让电子产品实现了微型化、多样化和高性能化,还通过提升制造效率和产品质量,不断推动整个行业向前发展。对于相关技术的深入研究和应用,将...

    行业文档-设计装置-一种办公自动化设备转写系统驱动辊.zip

    【标题】:“行业文档-设计装置-一种办公自动化设备转写系统驱动辊.zip”这个标题表明,这是一个关于办公自动化设备的行业文档,具体关注的是转写系统中的驱动辊设计。驱动辊在许多机械设备中起到关键作用,特别是在...

    智能会议转写系统解决方案.pdf

    智能会议转写系统解决方案.pdf

    行业资料-建筑装置-干式转写贴纸设计.zip

    干式转写贴纸在建筑装置领域中是一种重要的设计元素,尤其在现代建筑的室内装饰和功能规划上占据着显著的地位。干式转写贴纸以其独特的可擦写、重复利用的特点,为建筑师和设计师提供了丰富的创意空间。下面将详细...

    智能会议转写系统解决方案.docx

    智能会议转写系统是一种利用人工智能技术,特别是语音识别和自然语言处理技术,将会议中的语音内容实时转换为文字的解决方案。这种系统旨在提高会议效率,减少会议记录人员的工作负担,并确保会议信息的全面准确记录...

    智能庭审转写系统解决方案.pdf

    【智能庭审转写系统解决方案】 智能庭审转写系统是一种利用人工智能技术,特别是语音识别和自然语言处理技术,来实现法庭庭审过程中的语音实时转写为文字的解决方案。该系统旨在提高庭审效率,减轻书记员的工作负担...

    行业分类-设备装置-热敏转写图像接受片材.zip

    总之,热敏转写图像接受片材作为热敏打印技术的重要组成部分,其性能和质量直接影响到打印效果和应用范围。了解并掌握这些知识,有助于我们在实际工作中更好地选择和使用相关产品,提高工作效率和质量。

    智能会议转写系统解决方案(1).docx

    - 软硬件配置:详细列出了系统的软硬件配置清单和性能需求,以确保系统的稳定运行和高效转写。 综上所述,智能会议转写系统是现代企业提升会议效率、优化工作流程的重要工具。它结合了先进的语音识别和合成技术,...

    行业分类-设备装置-压敏转写交货标记单.zip

    标题中的“行业分类-设备装置-压敏转写交货标记单.zip”表明这是一个与工业设备或装置相关的文档,特别是涉及到压敏转写技术的交货标记单。这个标题暗示了文档可能包含有关如何处理、标记和交付使用压敏技术的设备或...

    行业分类-设备装置-具有高转写率的微结构光学板的制造方法.zip

    同时,通过光学测试系统验证光学板的实际转写率,确保性能达标。 6. 整合应用:最后,将微结构光学板整合到实际光学系统中,如激光器、光通信模块、传感器等,进行实际工作环境下的测试和调整。 总结来说,制造...

    行业文档-设计装置-可剥膜转写标.zip

    2. 设备保养:定期对设备进行清洁和维护,确保其性能稳定,延长使用寿命。 综上所述,可剥膜转写标在设计装置领域的应用涉及到材料科学、印刷技术、机械工程等多个方面,理解并掌握相关知识对于提升产品品质和效率...

    会议录音转写方法、系统、计算机设备和可读存储介质与流程.docx

    本文介绍了一种针对会议录音转写的创新方法、系统、计算机设备和可读存储介质,旨在解决通用语音识别技术在处理专业和实时热词时的不足。在当前背景下,随着会议录音数量的增多,对录音内容的文本转化需求日益增长,...

    科大讯飞实时语音转写 rtasr

    【科大讯飞实时语音转写RTASR详解】 科大讯飞,作为全球领先的智能语音与人工智能技术公司,其研发的实时语音转写技术(Real-Time Automatic Speech Recognition,简称RTASR)在诸多领域中得到了广泛应用。这项技术...

    Word转写TXT工具-python-源码-批量转换Word到TXT

    这个名为"Word转写TXT工具-python-源码-批量转换Word到TXT"的项目提供了使用Python编程语言实现的解决方案,专门用于批量将Microsoft Word文档(.doc或.docx格式)转换成纯文本文件(.txt格式)。这样的工具对于数据...

    带声纹识别功能的语音转写评价系统-前端部分源码+项目说明.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,...带声纹识别功能的语音转写评价系统-前端部分源码+项目说明.zip

    行业分类-设备装置-曝光用转写掩模及曝光用转写掩模的图形更换方法.zip

    曝光用转写掩模的设计是一项复杂而精确的任务,需要考虑到工艺的分辨率限制、对准精度以及器件性能。掩模图形通常由电子束、X射线或者激光直写技术生成,这些技术可以创建出纳米级别的精细图案。在设计过程中,...

    工业级语音识别系统:PyTorch-Jasper模型在医疗问诊录音转写中的实践.pdf

    该文档【工业级语音识别系统:PyTorch-Jasper模型在医疗问诊录音转写中的实践】共计 35 页,文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、目录...

    利用讯飞语音听写接口实现实时语音转写.doc

    总的来说,通过理解和运用讯飞语音听写接口,开发者可以构建出高效的实时语音转写系统。然而,在实现过程中,需要考虑到音频数据处理、接口调用频率限制以及识别精度等问题,以确保服务的稳定性和用户体验。在优化...

Global site tag (gtag.js) - Google Analytics