Гатлинг из памяти, есть предложения? - PullRequest
0 голосов
/ 12 февраля 2020

Я провожу тест на выносливость, который изначально планировал на пять дней. Однако примерно через 13,5 часов тест завершается с OOM после того, как одно из моих протестированных приложений NGINX вышло из строя, и я начал получать множество тайм-аутов:

22:33:59  > i.g.h.c.i.RequestTimeoutException: Request timeout to api.rnd.  22028 (32.23%)
22:33:59  .com/54.191.252.45:443 after 60000 ms
22:33:59  > i.g.h.c.i.RequestTimeoutException: Request timeout to api.rnd.  21957 (32.12%)
22:33:59  .com/34.210.130.50:443 after 60000 ms
22:33:59  > i.g.h.c.i.RequestTimeoutException: Request timeout to api.rnd.  21912 (32.06%)
22:33:59  .com/100.20.123.44:443 after 60000 ms

Обратите внимание, что во время пиков в моих тестах у меня может быть около 8K одновременные пользователи

Тест выполняется через Jenkins на c5.xlarge со следующими параметрами JVM памяти:

-Xms2g -Xmx3g

И вот исключение, которое я получил:

22:33:59  java.lang.OutOfMemoryError: Java heap space
22:33:59  20:33:55.543 [gatling-http-1-3][WARN ][DefaultPromise.java:580] i.n.u.c.DefaultPromise - An exception was thrown by io.gatling.http.client.impl.DefaultHttpClient$$Lambda$558/0x000000084054a840.operationComplete()
22:33:59  java.lang.OutOfMemoryError: Java heap space
22:33:59    at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:305)
22:33:59    at io.netty.bootstrap.Bootstrap.doResolveAndConnect(Bootstrap.java:157)
22:33:59    at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:150)
22:33:59    at io.gatling.http.client.impl.DefaultHttpClient.openNewChannelRec(DefaultHttpClient.java:629)
22:33:59    at io.gatling.http.client.impl.DefaultHttpClient.openNewChannel(DefaultHttpClient.java:603)
22:33:59    at io.gatling.http.client.impl.DefaultHttpClient.sendTxWithNewChannel(DefaultHttpClient.java:493)
22:33:59    at io.gatling.http.client.impl.DefaultHttpClient.lambda$sendTx$2(DefaultHttpClient.java:378)
22:33:59    at io.gatling.http.client.impl.DefaultHttpClient$$Lambda$558/0x000000084054a840.operationComplete(Unknown Source)
22:33:59    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)
22:33:59    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:551)
22:33:59    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)
22:33:59    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:183)
22:33:59    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
22:33:59    at io.gatling.http.client.impl.DefaultHttpClient.sendTx(DefaultHttpClient.java:360)
22:33:59    at io.gatling.http.client.impl.DefaultHttpClient.sendRequest(DefaultHttpClient.java:263)
22:33:59    at io.gatling.http.engine.HttpEngine.executeRequest(HttpEngine.scala:149)
22:33:59    at io.gatling.http.engine.tx.HttpTxExecutor.$anonfun$execute$1(HttpTxExecutor.scala:142)
22:33:59    at io.gatling.http.engine.tx.HttpTxExecutor.$anonfun$execute$1$adapted(HttpTxExecutor.scala:126)
22:33:59    at io.gatling.http.engine.tx.HttpTxExecutor$$Lambda$686/0x0000000840623840.apply(Unknown Source)
22:33:59    at io.gatling.http.engine.tx.HttpTxExecutor.executeWithCache(HttpTxExecutor.scala:53)
22:33:59    at io.gatling.http.engine.tx.HttpTxExecutor.execute(HttpTxExecutor.scala:126)
22:33:59    at io.gatling.http.engine.tx.HttpTxExecutor.execute(HttpTxExecutor.scala:120)
22:33:59    at io.gatling.http.action.HttpRequestAction.$anonfun$sendRequest$1(HttpRequestAction.scala:67)
22:33:59    at io.gatling.http.action.HttpRequestAction.$anonfun$sendRequest$1$adapted(HttpRequestAction.scala:59)
22:33:59    at io.gatling.http.action.HttpRequestAction$$Lambda$685/0x0000000840623040.apply(Unknown Source)
22:33:59    at io.gatling.commons.validation.Success.map(Validation.scala:45)
22:33:59    at io.gatling.http.action.HttpRequestAction.sendRequest(HttpRequestAction.scala:59)
22:33:59    at io.gatling.core.action.RequestAction.$anonfun$execute$1(Action.scala:100)
22:33:59    at io.gatling.core.action.RequestAction$$Lambda$660/0x0000000840609040.apply(Unknown Source)
22:33:59    at io.gatling.commons.validation.Success.flatMap(Validation.scala:46)
22:33:59    at io.gatling.core.action.RequestAction.execute(Action.scala:97)
22:33:59    at io.gatling.core.action.RequestAction.execute$(Action.scala:96)
22:33:59  20:33:55.546 [gatling-http-1-6][ERROR][HttpAppHandler.java:230] i.g.h.c.i.HttpAppHandler - Fatal error
22:33:59  java.lang.OutOfMemoryError: Java heap space

Может быть, причина в 60 секунд? Это параметр по умолчанию, который я не изменил. Любые предложения будут высоко оценены, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...