Как найти нагрузку C.P.U (процент использования C.P.U) в подчиненном узле - PullRequest
0 голосов
/ 10 февраля 2012

Привет, я разрабатываю алгоритм балансировки нагрузки в Java. В моей системе будет один основной узел и список подчиненных узлов, где главный узел будет распространять входящий запрос на один из его подчиненных узлов. Я хочу найти нагрузку C.P.U (процент использования C.P.U) в каждом из подчиненных узлов. Так что главный узел может эффективно распределить запрос одному из его наименее загруженных подчиненных узлов. Может кто-нибудь, пожалуйста, предложите мне, как мы можем его найти.

The getSystemLoadAverage() method in JMX 

может использоваться для поиска загрузки процессора в текущей системе. Можно ли использовать тот же метод, чтобы найти нагрузку в подчиненном устройстве? Если возможно, подскажите, пожалуйста, как мы можем его найти. Если это невозможно, предложите мне другой способ сделать то же самое. Я буду более благодарен, если кто-нибудь даст правильный ответ на это.

Ответы [ 2 ]

0 голосов
/ 18 октября 2012

Выездной Сигар: http://www.hyperic.com/products/sigar

Имеет привязки к языку и платформе практически для всего. Я использовал Sigar много раз. Это просто, надежно и просто работает. И вы получаете намного больше статистики платформы, чем просто загрузка процессора, что может быть удобно в зависимости от того, какая дополнительная информация вам может понадобиться.

0 голосов
/ 10 февраля 2012

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

Не следует предполагать, что, если ЦП используется на 10%, он может принимать больше заданий.Что, если память на 90%, могут быть и другие вещи.

РЕДАКТИРОВАТЬ 1:
Ссылки на mbeans:
http://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html
Прокрутите вниз: http://java.sun.com/developer/technicalArticles/J2SE/jmx.html

...