Я тестирую с помощью Apache Jmeter, я просто получаю доступ к одной странице веб-сайта моей компании и увеличиваю количество пользователей, пока оно не достигнет порогового значения, проблема в том, что когда я получаю около 3000 потоков, JMeter не запускает все их. Если посмотреть на агрегированный график, то на нем работает всего около 2536 (это число варьируется, но всегда есть здесь).
Частичный прогон сопровождается следующим исключением в журналах:
01:16 ERROR - jmeter.JMeter: Uncaught exception:
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Unknown Source)
at org.apache.jmeter.threads.ThreadGroup.start(ThreadGroup.java:293)
at org.apache.jmeter.engine.StandardJMeterEngine.startThreadGroup(StandardJMeterEngine.java:476)
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:395)
at java.lang.Thread.run(Unknown Source)
Такое поведение последовательное. Вдобавок один из случаев, когда JMeter разбился посередине, выводя файл, в котором говорилось:
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 32756 bytes for ChunkPool::allocate
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (allocation.cpp:211), pid=10748, tid=11652
#
# JRE version: 6.0_31-b05
# Java VM: Java HotSpot(TM) Client VM (20.6-b01 mixed mode, sharing windows-x86 )
Есть идеи?
Я попытался изменить размер кучи в jmeter.bat, но это, похоже, не помогло.