网络对Ignite集群性能的负面影响
内存访问比磁盘I/O快得多,以至于许多人希望仅通过从部署的分布式内存集群中读取数据就可以获得惊人的性能提升。但是不要忽略应用是通过网络与集群节点互联的事实,并且如果大量数据通过网络连续传输,会迅速抵消内存访问性能高的优势。 换句话说,使用Ignite提供的合适数据访问模式,可以消除网络延迟的影响。本文中将通过Ignite的API,查看减轻网络的压力后应用性能的变化趋势。最终目标是能够部署可水平扩展的Ignite集群,其可以充分利用分布在所有主机上的RAM和CPU资源,并且尽可能小地受到网络的影响。 做一个简单的测试 为了简单起见,假设Ignite集群中存储了大量的记录,而应用需要计算整个数据集的最高温度和最长距离。下面将比较3个API,以显示最大限度地降低了网络利用率后的性能变化趋势,包括单独的键-值操作、批量键-值读取和并置计算。 这个测试笔记本电脑就可以做。因此下面的测试环境为2.7GHz的双核Intel Core i5 CPU和8GB 1867MHz的DDR3内存,该主机上部署了2个节点的Ignite集群,内存中数据量为20万条。这两个节点和应用之间通过本地网络端口进行通信,并争夺RAM和CPU资源。如果在真正的分布式环境中运行相同的测试,则比较的API之间的差异将更加值得注意。 通过大量的键-值调用来消耗网络资源 第一个测试从键-值API调用开始