Ограничение потока сервера JVM / Aplication - PullRequest
0 голосов
/ 25 августа 2009

Есть ли способ определить, сколько потоков может обрабатывать конкретная комбинация JVM + Сервер приложений? Речь идет не только о потоках, обслуживающих запросы веб-приложений, но и о фоновых потоках.

Ответы [ 3 ]

2 голосов
/ 25 августа 2009

Для всех практических целей это ситуативный, он действительно "зависит".

  • что нити делают?
  • сколько памяти им нужно?
  • сколько идет сборка мусора?
  • сколько у тебя памяти?
  • сколько у вас процессоров?
  • как быстро они?

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

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

Почему вы задаете вопрос?

1 голос
/ 25 августа 2009

Это действительно зависит от конкретного оборудования, с которым вы работаете (количество процессоров, объем памяти и т. Д.), А также зависит от ОС (Solaris против Windows), поскольку базовая многопоточность зависит от предоставленной ОС управление потоками. Это также зависит от приложения и самого сервера приложений, поскольку объем ресурсов, потребляемых каждым потоком, зависит от приложения.

0 голосов
/ 25 августа 2009

Это действительно не то, что вы можете узнать просто из Java VM. Это скорее ограничение оборудования / ОС, чем что-либо специфическое для ВМ. Лучший способ узнать этот ответ - протестировать большое количество потоков и увидеть, где вы начинаете видеть снижение производительности. Смотрите также это обсуждение devx .

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