Нитки всегда увеличиваются

Я только что установил SmartFoxServer.

Количество потоков в пуле потоков в Dashboard постоянно увеличивается после перезапуска Sfs и никогда не уменьшается снова до следующего перезапуска. Если я увеличиваю лимит пула потоков, количество потоков увеличивается до этого предела.

Любое расширение или службы еще не запущены, а количество потоков увеличивается до 1232 за 10 минут. Таким образом, это не похоже на утечку памяти, потому что не используется код расширения, просто SmartFox.

Я пробовал версию 2.9, но результаты не менялись.

Что может вызвать потоки Sfs для такого поведения, даже не запустив расширение?

Ответ 1

У вас есть утечки памяти.

"Утечки памяти

В Java происходит утечка памяти, когда объекты в памяти не освобождаются даже если само приложение больше не нуждается в них. Общий Например, неиспользуемые прослушиватели событий, которые не удаляются из их события источник.

Если программа продолжает добавлять новые объекты слушателя, но никогда не избавляется от те, которые больше не используются, мы получим потенциально много память отходы. GC не сможет восстановить такую ​​память, поскольку неиспользуемые слушатели по-прежнему ссылаются. Если эти объекты продолжают накапливаться мы увидим прогрессивную деградацию производительности, которая может закончиться авария JVM.

Утечки памяти не всегда очень очевидны, чтобы найти, скрываясь в коде в течение довольно долгого времени, прежде чем их заметили. В других случаях утечки могут стать очень неприятными очень быстро, вызывая серьезные всплески в использования памяти и, в конечном счете, смерти процесса.
Источник: http://docs2x.smartfoxserver.com/AdvancedTopics/troubleshooting-live-server#mem

Ответ 2

Хорошим началом было бы попытаться определить, что все потоки. Вы можете использовать jstack (включенный в JDK), чтобы получить дампы стека всех потоков, которые помогут вам открыть их цель и, надеюсь, уменьшить количество.

jstack -l JAVA_PID > jstack.out