[英]Apache Ignite 2.6.0 - High latency in Partition mode with 6 nodes cluster
如果我有任何遺漏,請告訴我。
讓我知道是否需要更多數據。
服務器配置具有3個數據區域。(與下面的配置共享)
服務器端配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="igniteInstanceName" value="igniteStart"/>
<property name="discoverySpi" ref="discoverySpi"/>
<property name="communicationSpi" ref="communicationSpi"/>
<property name="dataStorageConfiguration" ref="dataStorageConfiguration" />
<property name="gridLogger" ref="gridLogger" />
</bean>
<bean id="gridLogger" class="org.apache.ignite.logger.log4j2.Log4J2Logger">
<constructor-arg type="java.lang.String" value="/opt/ignite/apache-ignite-fabric-2.6.0-bin/config/log4j2.xml"/>
</bean>
<bean id="discoverySpi" class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="joinTimeout" value="0"/>
<property name="reconnectCount" value="100"/>
<property name="reconnectDelay" value="10000"/>
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<value>127.0.0.1</value>
<value>127.0.0.1:47500..47509</value>
</list>
</property>
</bean>
</property>
</bean>
<bean id="communicationSpi" class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
<property name="messageQueueLimit" value="1024"/>
<property name="slowClientQueueLimit" value="1000"/>
</bean>
<bean id="dataStorageConfiguration" class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Default_Region"/>
<property name="initialSize" value="#{15L * 1024 * 1024}"/>
<property name="maxSize" value="#{20L * 1024 * 1024}"/>
<property name="pageEvictionMode" value="RANDOM_2_LRU"/>
</bean>
</property>
<property name="dataRegionConfigurations">
<list>
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Big_Region"/>
<property name="initialSize" value="#{20.0D * 1024 * 1024 *1024}"/>
<property name="maxSize" value="#{25.0D * 1024 * 1024 *1024}"/>
<property name="pageEvictionMode" value="RANDOM_2_LRU"/>
</bean>
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Medium_Data_Region"/>
<property name="initialSize" value="#{8.0D * 1024 * 1024 * 1024}"/>
<property name="maxSize" value="#{10.0D * 1024 * 1024 * 1024}"/>
<property name="pageEvictionMode" value="RANDOM_2_LRU"/>
</bean>
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Small_Data_Region"/>
<property name="initialSize" value="#{4.0D * 1024 * 1024 * 1024}"/>
<property name="maxSize" value="#{5.0D * 1024 * 1024 * 1024}"/>
<property name="pageEvictionMode" value="RANDOM_2_LRU"/>
</bean>
</list>
</property>
</bean>
</beans>
只要每次調用都一直到一個節點,鍵值操作的性能就不會降低。 因此,在單節點或多節點測試中遺漏了一些東西。 確保在單節點方案中,該節點相對於客戶端而言是遠程的(兩者之間存在網絡)。 否則,如果您看到由於添加更多節點而導致的性能下降,則客戶端會出現瓶頸。
對於SQL操作,如果使用聯接,請確保正確放置數據。 另外,請記住,在大多數情況下,將廣播SQL。 因此,如果數據量很小並且您添加了更多節點,那么您將添加額外的網絡往返。 在此處查看更多詳細信息: https : //apacheignite-sql.readme.io/docs/performance-and-debugging
最后,考慮用JFR指出瓶頸。 Spring Data或應用程序可能存在熱點: https : //apacheignite.readme.io/docs/jvm-and-system-tuning#section-flightrecorder-settings
我的猜測是,您每次需要讀取內容時,都在創建一個新的連接(ODBC / JDBC連接,或更糟糕的是,胖客戶端連接)以進行集群。
這不是要走的路。 如果希望看到良好的延遲,則應嘗試重用相同的連接。
如果在緩存中找不到數據,也請重新訪問“ 緩存存儲/第三方持久性”以自動進行數據庫查找。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.