& 2
Java 1.8.0_272
Apache Tomcat 8.5.60
Одна и та-же приложуха там и там раздеплоена.
На Linux 1 - все шикарно, на Linux 2 приложение (ибо андеплой помогает) жрет процессор как не в себя, и 35% это sys.
Версии ядер:
4.14.214-160.339.amzn2.x86_64
4.14.214-118.339.amzn1.x86_64
strace показывает что на amazon linux 2 futex_wait_private постоянно долбится.
Есть идеи куда еще можно посмотреть?
Так это же Java, Кошка Том юзает фьютексы для потоков, как варик попробуй jmx запустить и через jconsole посмотреть что у тебя там с памятью твориться и с тредами. У тебя видимо не синхронизируются потоки по событию в юзерспейсе. Жаба зло )) Дебажить ее сложно!
А что приложение делает? Мб есть какие-то внешние ресурсы, которые исп-т обе вм(бд/очереди/etc)? С фьютексами как правило все просто, это просто примитив синхронизации. А вот как прилага их использует - это уже тогда к вам вопрос.
Используется SQS и mySQL. Я уже построил абсолютно новый образ на базе amzn1 - всё отлично. Стоит только на amzn2 запустить - приложение жрет ЦП, сейчас колупаюсь в потоках - подозреваю что в приложении какой-то баг.
Ну тут что угодно может быть в вашей прилаге. Мб вы тейбл лок делаете одним инстансом, а второй висит в бесконечном цикле ожидая события
Если-бы... Приложение это по сути тупой rest + hibernate + очереди для получения сообщения из топика "вычисти кеши". Но это всё равно не объясняет тупо разного поведения на разных ОСях при тех-же версиях AWS SDK, Tomcat и Java-ы.
Обсуждают сегодня