172 похожих чатов

Всем привет, хитрый вопрос: Есть две тачки на AWS: t2.medium Amazon Linux 1

& 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 постоянно долбится.
Есть идеи куда еще можно посмотреть?

5 ответов

5 просмотров

Так это же Java, Кошка Том юзает фьютексы для потоков, как варик попробуй jmx запустить и через jconsole посмотреть что у тебя там с памятью твориться и с тредами. У тебя видимо не синхронизируются потоки по событию в юзерспейсе. Жаба зло )) Дебажить ее сложно!

А что приложение делает? Мб есть какие-то внешние ресурсы, которые исп-т обе вм(бд/очереди/etc)? С фьютексами как правило все просто, это просто примитив синхронизации. А вот как прилага их использует - это уже тогда к вам вопрос.

Petro- Автор вопроса
Alexander Grigoriev
А что приложение делает? Мб есть какие-то внешние ...

Используется SQS и mySQL. Я уже построил абсолютно новый образ на базе amzn1 - всё отлично. Стоит только на amzn2 запустить - приложение жрет ЦП, сейчас колупаюсь в потоках - подозреваю что в приложении какой-то баг.

Petro
Используется SQS и mySQL. Я уже построил абсолютно...

Ну тут что угодно может быть в вашей прилаге. Мб вы тейбл лок делаете одним инстансом, а второй висит в бесконечном цикле ожидая события

Petro- Автор вопроса
Alexander Grigoriev
Ну тут что угодно может быть в вашей прилаге. Мб в...

Если-бы... Приложение это по сути тупой rest + hibernate + очереди для получения сообщения из топика "вычисти кеши". Но это всё равно не объясняет тупо разного поведения на разных ОСях при тех-же версиях AWS SDK, Tomcat и Java-ы.

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
4
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Карта сайта