2013-10-02 4 views
5

Мы добились значительного прогресса в тестировании нагрузки и масштабировании приложения akka, но мы видим, что scala.concurrent.forkjoin.ForkJoinPool.scan() coming как вторая самая высокая точка доступа около 20% времени в visualvm. Столбец Self time (CPU) говорит только о части этого (менее 1% от значения столбца self time).Akka - во время нагрузочного тестирования forkjoinpool.scan при 20% времени процессора

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

Любое понимание очень ценится.

+1

Я бы прочитал эту тему, поскольку она дает некоторое представление о том, почему вы можете видеть много времени на ожидание с помощью FJP. Возможно, у вас действительно есть блокирующий код, который замедляет работу, в результате чего простаивающие потоки FJP сканируются для работы больше, чем ожидалось. https://groups.google.com/forum/m/#!topic/akka-user/6HKTvw4yBnU – cmbaxter

+0

Спасибо - эта тема вызвала у меня мысль о том, что должны быть какие-то припаркованные потоки - это и время настенных часов против фактический процессор. Это полезное утверждение +1 – JasonG

ответ

8

Метод сканирования - это также где неактивные потоки в «парках» ForkJoinPool, когда они не могут найти работу.

Имея 20% самостоятельного времени и 1% от этого, как время автономного процессора, заставляет меня думать, что у вас есть неактивные потоки в ForkJoinPool, которые припарковались там.

Я предполагаю, что вы используете VisualVM в режиме сэмплирования. По умолчанию VisualVM фильтрует информацию в стандартной библиотеке. См. Этот ответ, как изменить настройки и получить лучшее представление о том, что происходит. https://stackoverflow.com/a/16113781/1688542

+0

Хорошо, это потрясающе - большое спасибо. Я попробую и отчитаюсь. – JasonG

+0

Да действительно - вскрытие солнца. * Показал sun.misc.Unsafe.park ест процессор. – JasonG

Смежные вопросы