Мы добились значительного прогресса в тестировании нагрузки и масштабировании приложения akka, но мы видим, что scala.concurrent.forkjoin.ForkJoinPool.scan() coming как вторая самая высокая точка доступа около 20% времени в visualvm. Столбец Self time (CPU) говорит только о части этого (менее 1% от значения столбца self time).Akka - во время нагрузочного тестирования forkjoinpool.scan при 20% времени процессора
Я подозреваю, что это означает, что блокировка или переключение контекста потенциально проблематичны, но я не уверен - может ли кто-нибудь дать представление? Если это переключение контекста, я предполагаю, что настройка диспетчера пропускной способности на большее число может привести к увеличению прибыли, иначе, если это вызвано блокировкой, нам нужно будет еще немного прочитать код.
Любое понимание очень ценится.
Я бы прочитал эту тему, поскольку она дает некоторое представление о том, почему вы можете видеть много времени на ожидание с помощью FJP. Возможно, у вас действительно есть блокирующий код, который замедляет работу, в результате чего простаивающие потоки FJP сканируются для работы больше, чем ожидалось. https://groups.google.com/forum/m/#!topic/akka-user/6HKTvw4yBnU – cmbaxter
Спасибо - эта тема вызвала у меня мысль о том, что должны быть какие-то припаркованные потоки - это и время настенных часов против фактический процессор. Это полезное утверждение +1 – JasonG