ENV:com.fasterxml.jackson.core.util.InternCache.intern() взаимоблокировки при высокой нагрузке
- Амазонки
- Centos
- Apache-7.0.53-кот
- Java 8
- Джексона-ядро-2.2.3
Задача
Когда мы тестируем наши серверы с нагрузкой ~ 7000CCU, мы видим несколько из них, когда мы просматриваем наши приложения-приложения, используя Yourkit.
http-apr-8080-exec-952 <--- Frozen for at least 17 sec
com.fasterxml.jackson.core.util.InternCache.intern(String) InternCache.java:43
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.findSymbol(char[], int, int, int) CharsToNameCanonicalizer.java:506
com.fasterxml.jackson.core.json.ReaderBasedJsonParser._parseFieldName(int) ReaderBasedJsonParser.java:1182
com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken() ReaderBasedJsonParser.java:602
com.fasterxml.jackson.core.base.ParserMinimalBase.nextValue() ParserMinimalBase.java:128
Что мы можем сделать для повышения производительности этой библиотеки.
Да, это обычно является признаком такой утечки - только в таких случаях это должно стать узким местом. FWIW, более поздние версии попытаются обработать это немного более изящно, но принципиально не закрывая парсер, добавят другие виды накладных расходов, поэтому вы действительно хотите обеспечить закрытие. – StaxMan
Вы попробовали val jf = new JsonFactory(); jf.configure (JsonFactory.Feature.INTERN_FIELD_NAMES, false); jf.configure (JsonFactory.Feature.CANONICALIZE_FIELD_NAMES, false); – Vitamon