看了《关于系统性能的思考》,结合自己平时的工作和身边的教训,谈谈自己的一些关于性能的想法
1.性能和容量不是一个概念,在相同条件下,当然性能如果越好,容量会越高
2.性能优化真的不是定式的,还需要相当丰富的经验去解决。以自己身边的系统为例,从Apache、Jboss、F5、网络、应用系统、到最后的DB,就如同是一条回家的路,任何一个环节处理慢了,都可能成为性能的瓶颈
3.一般涉及到性能的地方:
3.1.cache:缓存一切可以缓存的数据。比如数据字典、配置、读多写少的数据,但如果是敏感数据,比如资金,不建议缓存。
3.2.异步:异步一切可以异步的操作。意义不仅仅在于性能,更在于系统的可伸缩性
3.3DB:对于大表的查询,必须走上索引,不能全表查询;耗费性能的数据表操作,还需要控制频率
3.4jvm参数:不要忽视了jvm参数的力量,合理设置jvm三代空间的大小,对于gc,应该避免full gc,尽量minor gc,减少每次gc暂停的累计时间消耗,而且对于避免内存溢出也有帮助
3.5网络、负载均衡:F5也是有瓶颈的,至少我们遇到过。
3.6资源的创建:线程、网络连接、数据库连接等贵重资源纳入池中,避免每次使用时自己创建
3.7资源的参数:线程池中线程的多少、网络连接的超时时间、数据连接池的大小、数据库连接的block时间、prepared-cache-size,都是需要根据的具体的业务系统量身定制的。不要轻视,我见过很多系统在这些方面出过问题,性能问题导致可用率降低,都是血的教训啊!
3.8资源的合理利用: 说一个例子:对于一套时间比较久的应用系统,面对着不停更换的维护者,基于踩雷的风险,导致开发人员每次修改程序时都重新从DB、remote app中获取最新数据,导致了贵重资源的严重浪费。我见过一次业务连续查询同一用户的信息达8次的情况。不过有时也需要权衡,如果是访问量交大的业务,甚至可以牺牲代码的维护性保证资源的一次性获取;对于访问量比较小的业务,耗费点性能也未尝不可。
3.9java代码:基本类型、StringBuffer、ArrayList和HashMap的默认大小、常量、合理的synchronized,都是需要考虑的点
3.10其他:更多的需要具体的情况具体分析,有的甚至可以和业务pk获取系统更好的性能
分享到:
相关推荐
- 产品性能(例如 EMC 现象的影响)会损害整体安全和性能的控制受控系统 的操作值、操作时间和与设备安全相关的操作顺序。 本文件规定了用于设备中、设备上或与设备相关的自动电气控制的构造、操作和测试要求。
IEC 60601-1-2005 英文:医疗电气设备--第1部分:基本安全性及性能的一般要求 _Password_Removed,权限已开挂哈哈
最新完整版标准 ISO 6469-1:2019 电动道路车辆--安全规范--第1部分:可充电储能系统(RESS)- 完整英文版(34页).pdf
- 温度室性能的确认)。IEC 60068-3-5:2018 提供了一种统一且可重复的方法,用于确认没有样品的温度试验箱符合 IEC 60068-2(所有部分)和其他标准的气候试验程序中规定的要求。 本文档适用于进行常规腔室性能监控的...
最新完整版标准 ISO 12402-3:2020 PFD-性能为150的救生衣的安全要求 - 最新完整英文版(28页).pdf
新版完整标准 IEC 60086-2 2021 原电池(一次) -- 第二部分:外形尺寸和电性能规格 -完整英文版.pdf
测试的目的是证明试样是否足以抵抗指定的混合模式激励,而不会对其功能和/或结构性能造成不可接受的退化。它对定制混合模式环境特别有用,因为现实生活环境中的测量数据是可用的。该试验还有助于揭示由随机振动引起...
IEC 60601-1-2:2020 医疗电气设备-第1-2部分:基本安全和基本性能的一般要求-附属标准:电磁干扰 - 要求和测试.rar
IEC 60300的这一部分为收集与现场运行项目的可靠性、可维护性、可用性和维护支持性能有关的数据提供了指南。它概括地论述了数据收集和表述的实际问题,并简要地探讨了数据分析和结果表述的相关主题。强调有必要将从...
机器人 服务机器人性能规范及其试验方法 第1部分:轮式机器人运动-GBT 38834.1-2020.pdf
机器学习系列(2):提高深度神经网络性能之--合理初始化及python实现.pdf 机器学习系列(3):提高深度学习性能之 --正则化及python实现.pdf 机器学习系列(4):提高深度网络性能之 - 优化算法及python实现.pdf ...
自动化系统与集成--评估制造系统的能源效率和其他影响环境的因素:环境性能评估过程)。本文件根据ISO 20140-1中描述的一般原则,规定了对制造系统执行的活动进行环境绩效评价的过程。该过程使用基于ISO 20140-5的...
完整英文版ISO 13849-1:2023 Safety of machinery — Safety-related parts of control systems — Part 1:General principles for design ( 机械安全-控制系统的安全相关部分-第1部分:设计的一般原则 )。...
完整英文电子版 IEC 60300-3-5:2001 Dependability management - Part 3-5:... 这些测试的目的是发现设计中的弱点并采取措施消除这些弱点,从而提高性能、质量、安全性、稳健性、可靠性和可用性并降低成本。
完整英文电子版ISO 13849-1:2015 Safety of machinery — Safety-related parts of control systems — Part 1:General principles for design ( 机械安全-控制系统的安全相关部分-第1部分:设计的一般原则 )。...
| ------------- |:-------------:| -----:| |-f |--force |不需要等待服务器响应 | |-r |--reload |发送重新加载请求 | |-t |--time <sec> |运行多长时间,单位:秒" | |-p |--proxy <server:port> |使用代理服
IEC 62788-5-1:2020+A1:2022 提供了标准化测试方法的程序,用于评估设计用作边缘密封的材料的性能。当模块采用不渗透(或渗透性极低)的前板和背板设计来保护对湿气敏感的光伏(PV)材料时,湿气仍然有可能从侧面...
此外,如果在进行抗震鉴定时总是进行某种类型的分析,例如选择待测代表性样品或将抗震鉴定从被测试样扩展到类似试样,则性能验证 通过分析或通过测试和分析的组合对设备进行验证是可以接受的,但这超出了本文档的...
gnatsd 是一个使用 Go 语言开发的高性能 NATS 服务器。 配置: Server options: -a, --addr HOST Bind to HOST address (default: 0.0.0.0) -p, --port PORT Use PORT (default: 4222) -P, --pid FILE File ...