BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 23 июн 2025, 00:42

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 02 авг 2010, 16:14 
Не в сети

Зарегистрирован: 03 июн 2009, 15:27
Сообщения: 20
Карма: 0
Симптомы:
Биллинг перестал отвечать на запросы клиентов и перестал пускать пользователей в личный кабинет.

Отмечается высокий рост загрузки CPU на сервере:

Cpu(s): 99.8%us, 0.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8177256k total, 8130032k used, 47224k free, 84440k buffers
Swap: 10223608k total, 108k used, 10223500k free, 6017860k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10134 root 21 0 1081m 347m 10m S 397.3 4.4 904:05.15 java

ps -aux

root 10134 6.7 4.3 1107812 356092 ? Sl Jul23 978:45 /usr/bin/java -Dapp.name=BGBillingServer -Dnetworkaddress.cache.ttl=3600 -Xmx640m -cp .:./lib/* ru.bitel.common.bootstrap.Boot bitel.billing.server.Server start

В mysql:
>show full procеsslist все процессы в статусе sleep


# ./data_loader_status.sh
Sending 'status' on 127.0.0.1:9033
Result: DataLoader working
Started: 11.07.2010 20:24:15 Uptime: 21 d 16:12:22
Memory total: 7 995 392; max: 238 616 576; free: 2 423 960
Trees in cache: 0
Connections pool to Master status Idle: 2; Active: 1; maxActive: 300; maxIdle: 20
Connections pool to Trash "trash_1" status Idle: 0; Active: 0; maxActive: 4; maxIdle: 10

# ./scheduler_status.sh
Sending 'status' on 127.0.0.1:9066
Result: TaskExecuter working
Started: 11.07.2010 20:24:16 Uptime: 21 d 16:12:25
Memory total: 201 719 808; max: 238 616 576; free: 150 161 968
Trees in cache: 51
Connections pool to Master status Idle: 5; Active: 0; maxActive: 300; maxIdle: 20
Connections pool to Trash "trash_1" status Idle: 0; Active: 0; maxActive: 4; maxIdle: 10

# ./server_status.sh
BGBillingServer v 4.6 build 661 from 28.01.2010 14:44:35
Started: 23.07.2010 10:33:16 Uptime: 10 d 02:03:30
Memory total: 153 747 456; max: 596 574 208; free: 12 579 592
Connections pool to Master status Idle: 18; Active: 2; maxActive: 300; maxIdle: 20
Connections pool to Trash "trash_1" status Idle: 1; Active: 0; maxActive: 4; maxIdle: 10

Версия сервера 4.6

Подскажите, в чем может быть дело, как проблему локализовать и решить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 02 авг 2010, 19:53 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
После перезагрузки проблема появляется сразу?

Попробуйте подправить скрипт запуска, добавить
-agentlib:hprof=cpu=samples,file=hprof.txt
Т.е.
Код:
nohup  ${JAVA_HOME}/bin/java -Djava.net.preferIPv4Stack=true
в
Код:
nohup  ${JAVA_HOME}/bin/java -agentlib:hprof=cpu=samples,file=hprof.txt -Djava.net.preferIPv4Stack=true

Потом перезапустить, подождать минуту-две, пока будет высокая загрузка, остановить и показать то что появится в файлике hprof.txt
Также еще можно выполнить при запущенном процессе с высокой загрузкой
Код:
jstack <код процесса> >> stack.txt
и выложить сюда. Для последнего нужно установленное JDK.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 03 авг 2010, 11:18 
Не в сети

Зарегистрирован: 03 июн 2009, 15:27
Сообщения: 20
Карма: 0
В настоящее время проблема решена остановкой и запуском (server_stop.sh, server_start.sh) сервера.
На текущий момент загрузка CPU в норме.
При повторении ситуации воспользуюсь советом.

Попутно вопрос - какую версию java лучше поставить?
Сейчас:
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)

Нужно ли обовляться?
Какой JDK лучше поставить - от SUN или OpenJDK?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 03 авг 2010, 12:54 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
от Sun. Лучше последнюю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 10 авг 2010, 17:07 
Не в сети

Зарегистрирован: 03 июн 2009, 15:27
Сообщения: 20
Карма: 0
Опять случилась описанная в первом сообщении ситуация - загрузка CPU сервера на 100%.

Исправил скрипт server.sh:

добавил -agentlib:hprof=cpu=samples,file=hprof.txt -Djava.net.preferIPv4Stack=true.
Стало:
Код:
 nohup  ${JAVA_HOME}/bin/java -agentlib:hprof=cpu=samples,file=hprof.txt -Djava.net.preferIPv4Stack=true -Dapp.name=BGBillingServer -Dnetworkaddress.cache.ttl=3600 -Xmx640m -cp ${CLASSPATH} ru.bitel.common.bootstrap.Boot bitel.billing.server.Server $1 $2 $3 > ./log/server.out 2>&1 & echo $! > .run/bgbilling.pid


Затем выполнил
server_stop.sh и server_start.sh

в текущей директории появился файл hprof.txt

Содержимое - в приложении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 10 авг 2010, 18:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Цитата:
Код:
jstack <код процесса> >> stack.txt

Кстати, я когда делал jstack, то нашел его вывод в server.out.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 11 авг 2010, 12:31 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
подождать минуту-две, пока будет высокая загрузка, остановить и показать то что появится в файлике hprof.txt

Так как сервер не был остановлен в файле нет никакой информации по нему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 11 авг 2010, 19:42 
Не в сети

Зарегистрирован: 03 июн 2009, 15:27
Сообщения: 20
Карма: 0
Amir, по моему я недопонял, что нужно длать.

Хронология моих действий:
1. процесс сервера стал занимать много ресурсов CPU
2. Я модифицировал скрипт запуска (server.sh), добавив -agentlib:hprof=cpu=samples,file=hprof.txt -Djava.net.preferIPv4Stack=true
3. Остановил сервер (server_stop.sh), появился файл hprof.txt

4. Запустил сервер (server_start.sh)
5. Остановил сервер (server_stop.sh)

Возможно надо было останавливать сервер сигналом "kill -9 pid" а не скриптом?
Или сделать как написано в файле?
They can also be obtained during program execution by typing
Ctrl-\ (on Solaris) or by typing Ctrl-Break (on Win32)

Сейчас у меня сервер запущен с параметром -agentlib:hprof=cpu=samples,file=hprof.txt
Загрузка в пределах нормы.
Когда загузка CPU вновь возрастет и я остановлю сервер скриптом server_stop.sh, это будет корректно?
Сохранится ли необходимая информация в файл?

Сейчас устанавливаю JDK, при следующем инциденте пришлю еще стек.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 12 авг 2010, 10:44 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Хм... С такими параметрами при останове сервера информация сохраняется в файл.
После
Цитата:
HEAP DUMP, SITES, CPU SAMPLES|TIME and MONITOR DUMP|TIME records are generated
at program exit. They can also be obtained during program execution by typing
Ctrl-\ (on Solaris) or by typing Ctrl-Break (on Win32).

--------
Но в присланном почему-то ничего нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 25 авг 2010, 11:45 
Не в сети

Зарегистрирован: 03 июн 2009, 15:27
Сообщения: 20
Карма: 0
Вновь проблема. Сервер не отвечает.
При попытке выключить его скриптом ./server_stop.sh, получилось следущее:
Код:
java.net.SocketTimeoutException: Receive timed out
        at java.net.PlainDatagramSocketImpl.receive0(Native Method)
        at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
        at java.net.DatagramSocket.receive(Unknown Source)
        at bitel.billing.server.Server.executeCommand(Server.java:285)
        at bitel.billing.server.Server.main(Server.java:237)


Удалось снять jstack и в файле hprof.txt появилась полезная информация (см. прикрепленные файлы):


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 25 авг 2010, 16:31 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
а у вас в логах(server.log, server.out) точно нет сообщений типа java heap space , out of memory? . Может он частично упал по нехватке памяти


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 25 авг 2010, 19:01 
Не в сети

Зарегистрирован: 03 июн 2009, 15:27
Сообщения: 20
Карма: 0
В логах фраза "out of memory" не встречатся.

Когда процессу billing-а не хватало памяти он писал на почту:
Код:
ID события: system.no.memory
Время регистрации события: 22.07.2010 17:42:04

Приложению недостаточно выделенной для него памяти!
Зарезервировано 461176832 из 477233152 (максимум) байтов памяти.
Сейчас свободно: 52297536 байтов.

Необходимо выделить большее количество памяти приложению.


Эта ситуация была исправлена так, как написано в документации, модифицирован стартовый скрипт, параметр -Xmx640m (640 Мбайт)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 03 сен 2010, 20:04 
Не в сети

Зарегистрирован: 03 июн 2009, 15:27
Сообщения: 20
Карма: 0
Вопрос все еще актуален.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 26 окт 2010, 10:07 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
В момент такой загрузки что top показывает, CPU занимает java процесс?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 26 окт 2010, 15:02 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Вчера столкнулся с похожей проблемой.
ява отжирала озу вплоть до того, что в логах DialUp писало out of memory.
Как оказалось - какой то умный абонент поставил себе автозвонилку. Как следствие каждые 3 секунды запрос авторизации.
Включил антиспам - сразу 80% озу освободилось :)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 100% загрузка CPU BgbillingServer
СообщениеДобавлено: 27 окт 2010, 04:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
если у вас linux то для поиска процесса и сколько он памяти отжирает можно заюзать программу htop
ну это так, мож понадобиться :)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.055s | 47 Queries | GZIP : On ]