Слишком много вызовов futex()

Мы наблюдаем необычные задержки в одном из наших Java-приложений на компьютере с Linux RedHat при попытке публикации во внешней очереди MQ (раньше такого не случалось). Быстро проверил работоспособность коробки, и использование ЦП / памяти кажется вполне нормальным. Коробки MQ тоже неплохие. Перезапустил мой процесс Java, не повезло! После этого мы сделали быстрый strace снимок, и он полон futex() вызовов.

Было интересно, может ли кто-нибудь дать какие-либо подсказки о том, почему может происходить так много блокировок (я знаю, что это очень открытый вопрос. Зависит от того, что на самом деле делает приложение).

Но я надеялся получить более глубокое представление о проблеме.


person joesatch    schedule 04.08.2010    source источник


Ответы (1)


Итак, вы на самом деле профилировали его и определили, что вызовы фьютексов являются узким местом?

Предполагая, что вы это сделали, во-первых, системный вызов futex() подразумевает, что мьютекс оспаривается; FUTEX = быстрый мьютекс пользовательского пространства, несогласованные мьютексы обрабатываются в пользовательском пространстве без системного вызова. То есть у вас может возникнуть проблема с конфликтом блокировок.

person janneb    schedule 12.06.2011