Приложение Re-Architect для запуска на нескольких серверах (JVM) для повышения производительности - PullRequest
2 голосов
/ 11 ноября 2011

У меня есть устаревшее домашнее бизнес-приложение, которое работает в одной JVM, и с ним связано много проблем с производительностью, более конкретно, относительно Heap Usage и Running Concurrent Threads, в основе которого лежит приложение планирования, в котором пользователь можетЗапланируйте некоторую задачу из внешнего интерфейса, и когда придет время, задача запустится, весь код станет домашним, и мы не используем какой-либо сторонний планировщик для планирования, теперь моя цель - повысить производительность приложения, и есть некоторые варианты, которыея могу попробовать, как с помощью механизма планирования, такого как Quartz, или распространять приложение на разные jvms, проблема, с которой я здесь сталкиваюсь, заключается в том, что я никогда не сталкивался с такой ситуацией перестройки приложения и поэтому не уверен, с чего начать.Я знаю, что SO - это не то место, где можно задать вопрос такого типа, но я не уверен, как к нему обратиться, и любая помощь / предложения будут высоко оценены.

Ответы [ 2 ]

3 голосов
/ 11 ноября 2011

После прочтения вашего поста у меня не сложилось впечатление, что вы действительно поняли, что является основной причиной ваших проблем с производительностью. Первым шагом в решении любой такой проблемы должно быть выявление причины, прежде чем предлагать решение. Я бы начал с того, что задавал вопросы довольно высокого уровня.

  • Сколько одновременно выполняемых задач / потоков вы выполняете?
  • Связан ли процессор ЦП или ввод-вывод?
  • На каком программном стеке работает приложение?
  • На каком оборудовании работает приложение?

Распределяя приложение по нескольким JVM, вы неизменно добавляете сложность, что хорошо, если это правильное и необходимое решение.

2 голосов
/ 11 ноября 2011

Я предлагаю вам испытать приложение с реалистичной рабочей нагрузкой, чтобы сервер был занят, и профилируйте его, чтобы найти узкое место ЦП, памяти и ресурсов.

ИМХО: разделение JVM может быть вариантом, если вы используете более 1 - 8 ГБ кучи И полное время GC является проблемой. Если вы используете гораздо меньше, это вряд ли поможет.

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

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