←  Поддержка бота

Forum JimBot

»

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

 фотография Stasyan_KLAS 25 Сен 2012

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

 фотография Zloff 25 Сен 2012

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

 фотография Black_Kot 26 Сен 2012

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

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

 фотография nek 26 Сен 2012

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

 фотография Clo 26 Сен 2012

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

Цитата

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

 фотография alex_xpert 26 Сен 2012

Просмотр сообщения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
Ответить

 фотография Stasyan_KLAS 26 Сен 2012

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

 фотография Zloff 27 Сен 2012

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

 фотография Пушкожук 27 Сен 2012

Наблюдая за работающим ботом и состоянием его памяти, могу сказать, что больше всего памяти занимает сам программный код (классы 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
Ответить