关于软件性能的一些point
2021-10-04 本文已影响0人
Rainbow想喝奶茶
这是日更的第50天,不想随便写点口水话,但是也确实是没有什么精力去学习,所以又是用自己的存货充数的一天,当然这样充数的机会也不会有太多了,发现自己的库存已经开始不足了。
今天是来记录一些关于性能的理论知识。
什么是软件性能
软件性能是一种非常重要的非功能特性,表明了软件系统对时间及时性及资源经济性的要求。
对于一个软件系统,运行时间执行速度越快、占用系统存储资源及其他资源越少,则软件性能越好。
性能指标
- 响应时间:客户端响应时间+网络响应时间+服务器端响应时间
- 客户端响应时间:客户端在构建请求和展现交易结果时所耗费的时间。
- 网络响应时间:用户发送一个请求需要时间,系统处理完后返回给用户也需要时间。这是网络硬件传输交易请求和交易结果所耗费的时间。
- 服务器端响应时间:当系统得到请求后会对请求进行处理并将结果返回。这个部分是我们唯一可控的,就是将系统的处理请求的时间缩到最短。(毕竟用户使用的网络带宽不一)
- 并发用户数:某一时刻同时向服务器发送请求的用户数量
- 吞吐量:软件系统在每单位时间内能处理多少个事务/请求/单位数据
- 资源使用率:CPU占用率、内存使用率、磁盘I/O、网络I/O
性能缺陷表现
- 响应时间长
- 系统不稳定
- 占用较多资源
- 页面报错
缺陷分类
硬件
- 磁盘空间:磁盘空间不足或磁盘故障会导致服务不可用 。
- CPU:CPU的核心功能是解释计算机指令以及处理数据,性能主要体现在其运行程序的速度上。
- IO读写速度:内存作用是用于暂时存放CPU中的运算数据,以及与外部存储器交换的数据,内存不足会导致程序崩溃或限制程序的数据处理速度。
- 内存:主要考虑数据输入/输出处理时的读写速度。
- 其它...
数据库
- 索引:索引的存在就像一个标签目录一样,在执行数据库操作时提供更为快速的执行效率,减少磁盘IO操作和执行的数据库系统时间。
- 锁:为了保证事务的原子性和隔离性,有了锁的存在,但有时候由于某些原因造成的表锁,也是性能瓶颈的一种表现。
- 慢查询:慢查询会导致数据库操作时间变长,增加IO读写以及引起资源竞争等问题。
- 数据量:数据量不同,对其进行操作时的性能表现也是不同的。
- 其它...
网络
- 带宽:高并发情况下,如果带宽不足,可能会导致网络资源竞争,超时等情况。
- 延时:延时的值越大,对系统性能表现影响越大(比如游戏)。
- 丢包:数据包如果丢失,则可能造成报错或异常的情况。(TCP协议丢包会重传。)
- 其它...
中间件
- 负载均衡:如果负载均衡不够“均衡”,在大数量的冲击下,容易导致某些服务的异常或者挂起。
- 缓存:缓存可减少请求响应过程中的传输时间,但有时在高并发情况下,如果缓存失效而导致缓存穿透,会对服务端带来很大的压力。
- 线程池:线程池配置太小,很容易被使用完,太大的话浪费资源。
- 最大连接数:连接数太少容易导致队列等待、超时,连接数太多则浪费了系统资源。
- 其它...
人们常说21天养成一个习惯,这已经是50天了,日更确实是成为了习惯,只不过有的时候没有那么多动力或者知识储备可以去更新,真是让人有些忧伤。
今天也是很累的一天,假期余额还有3天,大家继续愉快~
自我记录,有错误欢迎指正~