写点什么

w7- 分布式系统中性能的影响因素

用户头像
麻辣
关注
发布于: 2020 年 07 月 22 日

对一个系统进行调优,是为了让系统利用最少的基础设施资源来达到最大的服务能力。通常,用来衡量系统服务能力的指标主要是:吞吐率(throughput/ TPS /QPS), 响应时间(Response Time), 并发能力(Concurrent)。这也是压力测试过程中主要的压测指标。同时,需要一些监控指标来评估系统对于基础设施的消耗值,包括了CPU的利用率,CPU 负载(load),内存使用率,网络使用率,磁盘iops等。

吞吐率 = 1/响应时间 * 并发能力

通过这个公式来说,想要获得尽量大的吞吐率,就是了缩短响应时间,提高并发能力。虽然在不同的架构框架中,并能力的影响因素有所差别,但相对于响应时间,它的影响因素是比较简单的。

从根本的方面看,并发能力取决于CPU的核数。因为CPU每个core都是互相独立的,每个core有独立的运算单元,独立的寄存器的,接受独立的指令。所以在相同的时间内,core的数量决定了并发的数。但这是内核级别的考虑,在应用层面上,线程与进程数决定了并发数。因为在应用级别下,考虑的是多线程/进程对于CPU内核的使用。那么是不是说,在不超过CPU的工作能力下的,线程越多,并发能力越好?在用户态上来说,基本是这个原理,但需要考虑以下的影响:

  1. 维护线程也需要占用大量的CPU资源,如果线程过大,会导致用来维护线程的CPU资源过大,造成用来处理业务逻辑的CPU资源变少,从而导致单个业务过程的响应时间增加。

  2. 一些系统中,如JAVA的系统中,因为每个线程都需要大量的独立运行栈空间(数MB),导致内存不足,无法启动大量的线程。

所以并发能力是线程数量与其他资源的均衡的结果。对于JAVA系统,一般工作线程数应该不要与cpu core的数量差的太多。



响应时间

响应时间的影响因素比较多,除了竞争CPU资源之外,常见影响响应时间的因素包括:

  1. 网络延迟:网络在发送与接受过程中的延迟,带宽都会影响系统的响应时间。

  2. 文件系统:程序在读写文件系统时,需要排队,等待硬件响应。

  3. 资源锁竞争与等待:不同线程在访问同一个资源时,需要加锁来竞争资源的访问权限。



系统优化基本思路:

系统性能优化基本思路就是针对不足的影响因素进行分别优化:

  1. 网络延迟:通过压缩技术,减少网络传输内容;加快网络传输对象序列化与反序列化过程;使用异步IO。

  2. 文件系统:批量一次性写入/读取文件系统,使用异步IO。

  3. 资源锁竞争与等待:减少或者完全不要资源锁;缩小锁的范围;在一些场景下用读写锁;



用户头像

麻辣

关注

还未添加个人签名 2018.10.13 加入

还未添加个人简介

评论

发布
暂无评论
w7-分布式系统中性能的影响因素