Темы всегда увеличиваются
Я только что установил SmartFoxServer.
Количество потоков в пуле потоков на панели инструментов постоянно увеличивается после перезапуска Sfs и никогда не уменьшается до следующего перезапуска. Если я увеличу лимит пула потоков, число потоков увеличится до этого предела.
Любое расширение или службы еще не запущены, и число потоков увеличивается до 1232 за 10 минут. Так что это не похоже на утечку памяти, потому что не требуется никакого кода расширения, просто обычный SmartFox.
Я пробовал версию 2.9, но результаты не изменились.
Что может вызвать потоки Sfs к такому поведению даже без запуска расширения?
2 ответа
У вас утечки памяти.
"Утечки памяти
В Java происходит утечка памяти, когда объекты в памяти не освобождаются, даже если само приложение больше не нуждается в них. Типичным примером являются неиспользуемые прослушиватели событий, которые не удаляются из их источника событий.
Если программа продолжает добавлять новые объекты слушателя, но никогда не избавляется от тех, которые больше не используются, у нас может возникнуть много потерь памяти. GC не сможет восстановить такую память, потому что на неиспользуемые слушатели все еще ссылаются. Если эти объекты будут накапливаться, мы увидим прогрессивное снижение производительности, которое может закончиться сбоем JVM.
Утечки памяти не всегда очевидны, они скрываются в коде довольно долгое время, прежде чем их обнаруживают. В других случаях утечки могут стать очень неприятными очень быстро, что приведет к значительным скачкам в использовании памяти и в конечном итоге к смерти процесса.
Источник: http://docs2x.smartfoxserver.com/AdvancedTopics/troubleshooting-live-server
Хорошим началом было бы попытаться определить, каковы все темы. Ты можешь использовать jstack
(входит в JDK), чтобы получить дампы стека всех потоков, которые должны помочь вам определить их назначение и, как мы надеемся, уменьшить их количество.
jstack -l JAVA_PID > jstack.out