Я просто не могу понять, почему я получаю эту ошибку. Это не всегда отображается, но как только оно появляется, мое приложение отказывается принимать соединения (не может создавать новые Socket-Threads, а также другие потоки, которые я создаю в своем JAVA-приложении, для некоторых из них я использую ThreadPool).
top и htop показывает мне, что используется ~ 900 МБ 2048 МБ.
а также достаточно памяти кучи, около 200 МБ свободного.
cat / proc / sys / kernel / threads-max выводит:
1196032
а также, несколько дней назад все работало нормально, это многопользовательская онлайн-игра, и у нас в сети было более 200 пользователей (всего ~ 500 потоков). Но теперь даже при 80 пользователях в сети (~ 200 потоков) через 10 минут или несколько часов мое приложение каким-то образом сломалось из-за этой ошибки OutOfMemoryError. В этом случае я перезапускаю свое приложение, и оно снова работает только в течение этого короткого периода времени.
Мне очень любопытно, что если JVM будет странно работать на VPS, поскольку другие VPS на той же физической машине также используют JVM. Это вообще возможно?
Есть ли какой-то лимит по провайдеру, что мне не видно?
Или есть какая-то атака сервера?
Я должен также упомянуть, что ко времени возникновения этой ошибки иногда munin не может регистрировать данные в течение примерно 10 минут. Глядя на графические изображения, там просто пробел, как будто Мунин вообще не работает. И опять-таки, около 1 ГБ памяти свободно, как мне подсказывает htop.
Может быть, мы тоже, я каким-то образом выдал ошибку в своем приложении. И начать получать эту ошибку после того, как я сделал обновление. Но даже в этом случае, где я могу начать отладку?