2016-11-02 11 views
1

Jmeter를 사용하여 Apache Ignite에서 여러 클라이언트를 생성하는 중에 다음 오류가 발생합니다. Apache Ignite 클라이언트를 시작하는 동안 힙 크기는 어떻게되어야합니까? 나는 512MB 이상을 유지하려고 노력했지만 여전히 같은 오류가 발생하고 있습니다.Apache Ignite에서 여러 클라이언트를 생성하는 중 오류가 발생했습니다.

Nov 02, 2016 6:54:20 PM org.apache.ignite.logger.java.JavaLogger error 
 
SEVERE: Got exception while starting (will rollback startup routine). 
 
java.lang.OutOfMemoryError: unable to create new native thread 
 
     at java.lang.Thread.start0(Native Method) 
 
     at java.lang.Thread.start(Thread.java:714) 
 
     at org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor.start(GridTimeoutProcessor.java:71) 
 
     at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1589) 
 
     at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:839) 
 
     at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) 
 
     at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) 
 
     at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) 
 
     at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:569) 
 
     at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:516) 
 
     at org.apache.ignite.Ignition.start(Ignition.java:322) 
 
     at ignite_client_jmeter.runTest(ignite_client_jmeter.java:1404) 
 
     at org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:196) 
 
     at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:465) 
 
     at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:410) 
 
     at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:241) 
 
     at java.lang.Thread.run(Thread.java:745)
모든

답변

1

먼저,이 오류는 당신이 OS에 의해 허용있어 하나 개의 프로세스 내에서 더 많은 스레드를 시작을 나타냅니다, 힙 메모리에 대한 아닙니다. Linux에서는 ulimit으로 문제를 해결할 수 있습니다.

둘째, 하나의 JVM에서 여러 클라이언트를 시작한 것처럼 보입니다. 이는 나쁜 습관입니다. Ignite 인스턴스는 스레드로부터 안전하며 여러 스레드에서 동시에 사용할 수 있습니다. 따라서 JVM 당 하나의 클라이언트를 만든 다음 클러스터와의 모든 상호 작용에이 클라이언트를 사용하는 것이 좋습니다.

+0

** ulimit -u **를 사용하는 사용자 프로 세스 수가 증가하면 내 문제가 해결됩니다. 다른 질문이 있습니다. 별도의 JVM으로 여러 클라이언트를 시작할 수있는 도구가 있습니까? (현재 저는 Jmeter를 사용하고 있습니다) – rishi007bansod