Перейти к содержимому

IP.Board Style© Fisana
 

От чего зависит кол-во ресурсов, занимаемых чатом?

ресурсы

Сообщений в теме: 8

#1 Stasyan_KLAS

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 25 Сентябрь 2012 - 21:20

Дело в том, что у меня есть своя наработка на старенькой 0.3.4 мода от jArt и хочу ее использовать с базой HSQLDB.
Возможно ли запустить ее на платном сервере?
Что влияет на занимаемые ресурсы? Он около 40 Мб занимает. Хотелось бы до 30. Подскажите что там есть лишнее и что придется убрать для освобождения памяти. Спасибо

#2 Zloff

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 430 сообщений

Отправлено 25 Сентябрь 2012 - 22:01

ява всегда ест не мало, основные ресурсы поедают потоки.

#3 Black_Kot

    Профи

  • Модераторы
  • 409 сообщений
  • ГородTokio

Отправлено 26 Сентябрь 2012 - 00:30

1) версия JVM
2) колличество пользователей онлайн
3) колличество отправленных/принятых сообщений.
4) так как в 0.3.* есть гуи то потребление естественно будет больше чем у 0.4.*
5) 0.3.* вы врядли сможете настроить на вдс где нет X сервера., разве что запускать уже настроенное.
6) HSQLDB тоже влияет.

[offtop]
а что 0.3.* все еще может к аське подключаться?
в любом случае оно(0.3.*) deprecated.
[/offtop]

#4 nek

    Профи

  • Модераторы
  • 2 293 сообщений

Отправлено 26 Сентябрь 2012 - 01:07

X-сервер не нужен.
Можно обойтись и x11vnc+xvfb.

#5 Clo

    Профи

  • Модераторы
  • 890 сообщений

Отправлено 26 Сентябрь 2012 - 07:31

Можно явно указать яве сколько памяти она максимально может потреблять через ключ -Xmx.
Например:

Цитата

java -Xincgc -Xms2m -Xmx30m -jar '~/jimbot.jar'
потребляет минимально 2 метра, максимально 30.

#6 alex_xpert

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 488 сообщений

Отправлено 26 Сентябрь 2012 - 12:47

Просмотр сообщенияStasyan_KLAS (25 Сентябрь 2012 - 21:20) писал:

Возможно ли запустить ее на платном сервере?
Я бы сказал, только на платном и возможно, ибо бесплатно только вебхостинг можно найти.

Просмотр сообщенияStasyan_KLAS (25 Сентябрь 2012 - 21:20) писал:

Что влияет на занимаемые ресурсы?
От типа РБД значительной разницы в нагрузке не будет, если даже не сказать, что HSQLDB пошустрее и полегковеснее окажется, чем, например, какой-нибудь MySQL. GUI своё берет. Свистелки-перделки всякие. Ну и активность пользователей (а как следствие - активность общения с БД и т.п.) динамически изменяет нагрузку.

Просмотр сообщенияBlack_Kot (26 Сентябрь 2012 - 00:30) писал:

а что 0.3.* все еще может к аське подключаться?
А почему ветка 0.3 должна быть неработоспособной? Тем более, если руки, растущие из нужного места, приложить.
[offtop]
Количество
[/offtop]

Нафига он написал все то же самое что было написано выше? -Clo
Уверен, что одно и тоже? С уважением, Xpert™

Сообщение отредактировал Xpert™: 27 Сентябрь 2012 - 17:54


#7 Stasyan_KLAS

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 26 Сентябрь 2012 - 23:17

Zloff, я чат еще не запустил в сеть, но бот при старте уже 40Мб кушает. Тут нужно остаточные коды для mysql какие-нибудь убрать. Что-то лишнее там явно есть!
И так между делом как статус уинов сменить без переподключения?

#8 Zloff

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 430 сообщений

Отправлено 27 Сентябрь 2012 - 00:38

у меня все эт осделано давно, авто смена статуса, хстатуса, клиента с интервалом времени от 3 минут до 90 минут случайное время) плюс вип группа самому болтливому, бар с отрезвлением по времени независимо сидишь в чате или нет и много всяким мелочем) с базой Н2 потребляет 30мб, с подключенной базой викторины на 611 000 вопросов прибавляеться еще 40, и того 70мб, сейчас 2 сервиса, разници нет что 1 что 2 ) надо пробовать штук 20 запускать , тогда будет небольшая прибавка потреблении памяти)))

#9 Пушкожук

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 617 сообщений
  • ГородМосква

Отправлено 27 Сентябрь 2012 - 08:17

Наблюдая за работающим ботом и состоянием его памяти, могу сказать, что больше всего памяти занимает сам программный код (классы Java). Не забудьте, что в память загружается не только код самого бота, но и стандартные библиотеки Java. Печально, но с этим ничего не поделать. Кроме того, наличие GUI увеличивает количество загруженных классов.
Да, бывает плохо написанный код (например, видел код, загружающий таблицу log почти целиком в память), но тогда явно будет больше 40 Мб.
Могу для примера взять реальный запущенный бот с несколькими сервисами (но без GUI, на основе версии 0.4.0). ОС показывает, что бот занимает 40 Мб (значение RES в top, пусть это и не точное значение занимаемой памяти, но точнее вряд ли можно узнать). Далее смотрю, что сообщает о памяти Java. На программный код выделено почти 29 Мб (Perm Gen + Code Cache). На кучу (т.е. на объекты самого бота) выделено чуть больше 8 Мб. Остальные 3 Мб, по-видимому, относятся к программному коду самой JVM и системных библиотек.
Правда, вот что может помочь. Когда-то я читал документацию и составил набор параметров, с которым java потребляет меньше памяти. Я сейчас не буду его комментировать, т.к. у меня нет времени.
Итак, вместо такой команды (вместо jimbot.jar может быть другое имя файла):
java -jar jimbot.jar
нужно написать:
java -Xms4M -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=7 -XX:NewRatio=9 -XX:MaxNewSize=1M -XX:SurvivorRatio=6 -XX:TargetSurvivorRatio=90 -XX:PermSize=3M -XX:MaxPermSize=32M -jar jimbot.jar

Сообщение отредактировал Пушкожук: 21 Февраль 2013 - 03:52






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей