forum.bitel.ru http://forum.bitel.ru/ |
|
100% загрузка CPU BgbillingServer http://forum.bitel.ru/viewtopic.php?f=22&t=4374 |
Страница 1 из 1 |
Автор: | Nikolay [ 02 авг 2010, 16:14 ] |
Заголовок сообщения: | 100% загрузка CPU BgbillingServer |
Симптомы: Биллинг перестал отвечать на запросы клиентов и перестал пускать пользователей в личный кабинет. Отмечается высокий рост загрузки 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 Подскажите, в чем может быть дело, как проблему локализовать и решить. |
Автор: | Amir [ 02 авг 2010, 19:53 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
После перезагрузки проблема появляется сразу? Попробуйте подправить скрипт запуска, добавить -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.
|
Автор: | Nikolay [ 03 авг 2010, 11:18 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
В настоящее время проблема решена остановкой и запуском (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? |
Автор: | Amir [ 03 авг 2010, 12:54 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
от Sun. Лучше последнюю. |
Автор: | Nikolay [ 10 авг 2010, 17:07 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
Опять случилась описанная в первом сообщении ситуация - загрузка 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 Содержимое - в приложении. |
Автор: | Cromeshnic [ 10 авг 2010, 18:47 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
Цитата: Код: jstack <код процесса> >> stack.txt Кстати, я когда делал jstack, то нашел его вывод в server.out. |
Автор: | Amir [ 11 авг 2010, 12:31 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
Цитата: подождать минуту-две, пока будет высокая загрузка, остановить и показать то что появится в файлике hprof.txt Так как сервер не был остановлен в файле нет никакой информации по нему. |
Автор: | Nikolay [ 11 авг 2010, 19:42 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
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, при следующем инциденте пришлю еще стек. |
Автор: | Amir [ 12 авг 2010, 10:44 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
Хм... С такими параметрами при останове сервера информация сохраняется в файл. После Цитата: 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). -------- |
Автор: | Nikolay [ 25 авг 2010, 11:45 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
Вновь проблема. Сервер не отвечает. При попытке выключить его скриптом ./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 появилась полезная информация (см. прикрепленные файлы): |
Автор: | stark [ 25 авг 2010, 16:31 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
а у вас в логах(server.log, server.out) точно нет сообщений типа java heap space , out of memory? . Может он частично упал по нехватке памяти |
Автор: | Nikolay [ 25 авг 2010, 19:01 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
В логах фраза "out of memory" не встречатся. Когда процессу billing-а не хватало памяти он писал на почту: Код: ID события: system.no.memory Время регистрации события: 22.07.2010 17:42:04 Приложению недостаточно выделенной для него памяти! Зарезервировано 461176832 из 477233152 (максимум) байтов памяти. Сейчас свободно: 52297536 байтов. Необходимо выделить большее количество памяти приложению. Эта ситуация была исправлена так, как написано в документации, модифицирован стартовый скрипт, параметр -Xmx640m (640 Мбайт) |
Автор: | Nikolay [ 03 сен 2010, 20:04 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
Вопрос все еще актуален. |
Автор: | Администратор [ 26 окт 2010, 10:07 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
В момент такой загрузки что top показывает, CPU занимает java процесс? |
Автор: | Phricker [ 26 окт 2010, 15:02 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
Вчера столкнулся с похожей проблемой. ява отжирала озу вплоть до того, что в логах DialUp писало out of memory. Как оказалось - какой то умный абонент поставил себе автозвонилку. Как следствие каждые 3 секунды запрос авторизации. Включил антиспам - сразу 80% озу освободилось ![]() |
Автор: | skyb [ 27 окт 2010, 04:31 ] |
Заголовок сообщения: | Re: 100% загрузка CPU BgbillingServer |
если у вас linux то для поиска процесса и сколько он памяти отжирает можно заюзать программу htop ну это так, мож понадобиться ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |