开发者学堂课程【NiFi 知识精讲与项目实战(第一阶段):Nifi 的性能】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/705/detail/12509
Nifi 的性能
内容介绍
一、性能
二、总结
一、性能
NIFI 的设计目的是为了充分利用运行的底层主机系统的能力,资源的最大化,在 CPU 和磁盘的利用方面尤其明显。主要分三部分:
1.IO
第一部分是磁盘 IO,不同系统、不同的配置,可以预期的吞吐量和延迟有很大的差异,具体取决于系统的配置方式,鉴于大多数系统都有可插拔的实现,所以具体的性能还取决于具体的实现方式,但是对于广泛适用的场景来说,都会优先考虑使用现场的默认的实现,尽量避免重复,实现都是持久化的,有保证的让数据流进行传递,并且使用本地磁盘来进行存储,所以如果在典型的服务器当中,一些普通磁盘和卷上读取收益大,如果是50兆的话,对于大型的数据流 nifi,能够达到每秒100兆或是更高的通透量,因为首先预期添加到 nifi 当中的分区和内容流式都是线性增长的,而nifi 支持集群的模式,所以可以很好的解决磁盘IO的问题。
2.CPU
关于 CPU 这部分,流控制器进行现场的分配,流式控制器充当的是引擎调度的角色,来指示处理器什么时候可以被分配现场运行,并且在任务执行以后,会立即释放所占用的现场,可以为 flowcontroller 提供配置的属性值,属性值可以指导 flowcontroller 维护各个线程,指导可用线程,数量值可以修改,理想的线程数取决于不同服务器 CPU 内核的数量,不是一概而论的,如果说 CPU 性能很强劲,内核数量很多,就可以多分配线程,如果系统中还有正在运行的大量的服务,也要考虑到或者说流程中要处理的流,性质不一样,分配的限量数量也是不同的,取决于不同的具体场景而言,通过人工来判断,进行人为的配置,对于典型的 IO 大流量,合理的配置多线程,启用多线程,进行并行处理,可以明显的提升流式计算的效率。
3.RAM
内存,nifi 是在 GVM 训机当中运行的,所以 nifi 受限于 GVM 所提供的内存,GVM 垃圾回收机制是限制实际堆的总大小的重要的因素,也是优化应用运行的很重要因素,nifi 在定期读取相同内容的时候,可能会占用大量的内存,可以配置足够大的内存以及磁盘来优化 NIFI 的性能。
二、总结
Nifi 的性能,主要优化三个方面,磁盘 IO, CPU(多线程处理机制),内存可配置优化。内存主要是基于 GVM 内存控制来进行的。