BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 90 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: java.io.IOException: Too many open files
СообщениеДобавлено: 27 дек 2014, 13:32 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Доброго дня,

На почту от биллинга сыпятся валом письма:
Код:
ID события: error.create.datalog.file

java.io.IOException: Too many open files
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.createNewFile(File.java:1006)
        at ru.bitel.bgbilling.kernel.base.server.datalog.hourly.HourlyLogFileUtils.getNextFileToWrite(HourlyLogFileUtils.java:236)
        at ru.bitel.bgbilling.kernel.base.server.datalog.hourly.HourlyDataLogEntry.<init>(HourlyDataLogEntry.java:39)
        at ru.bitel.bgbilling.kernel.network.dhcp.datalog.hourly.DhcpHourlyDataLogEntry.<init>(DhcpHourlyDataLogEntry.java:20)
        at ru.bitel.bgbilling.modules.inet.dhcp.DhcpHourlyDataLogger.newEntry(DhcpHourlyDataLogger.java:30)
        at ru.bitel.bgbilling.kernel.network.dhcp.datalog.hourly.DhcpHourlyDataLogger.newEntry(DhcpHourlyDataLogger.java:1)
        at ru.bitel.bgbilling.kernel.base.server.datalog.hourly.HourlyDataLogger.getWriter(HourlyDataLogger.java:128)
        at ru.bitel.bgbilling.kernel.network.dhcp.DhcpListenerWorkerContext.writeRecord(DhcpListenerWorkerContext.java:51)
        at ru.bitel.bgbilling.kernel.network.dhcp.DhcpListenerWorker.runImpl(DhcpListenerWorker.java:130)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)


Причем у меня в /etc/security/limits.conf:
Код:
root            soft     nofile           32768
root            hard     nofile           32768

и:
# ulimit -a
Код:
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 32768
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


Что делать? В онлайне всего 250 человек.

Вот что показывает BGInetAccess:

Код:
./access_status.sh
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_65] /opt/java/jdk1.7.0_65/jre
  Runtime name: 562@deneb.xxx.net
  Java endorsed dirs: /lib/endorsed:/opt/java/jdk/lib/endorsed
  OS: Linux 2.6.32-5-amd64 [amd64], file.encoding: ISO-8859-1, user.name: root
  Heap sizes: current=92160k  free=90654k  max=1363456k
Kernel version 6.1.1007 / 04.12.2014 22:20:07
Inet version 6.1.635 / 04.12.2014 22:20:25
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0
Antispam ban count: 0; used per minute: 0

Started: 26.12.2014 09:49:14    Uptime: 1 d 01:36:51
Memory total: 141 033 472; max: 477 102 080; free: 9 471 288
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 8 272 320; peek: 8 281 856
  Heap memory[PS Eden Space]: max: 177 733 632; used: 5 076 104; peek: 160 432 128
  Heap memory[PS Survivor Space]: max: 524 288; used: 491 616; peek: 50 146 976
  Heap memory[PS Old Gen]: max: 357 564 416; used: 125 997 392; peek: 265 408 128
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 31 988 736; peek: 31 988 736
Thread count: 481
Trees in cache: 0
Connections pool to Master status Idle: 7; Active: 0; maxActive: 300; maxIdle: 20


Вот BGInetAccess:

Код:
./accounting_status.sh
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_65] /opt/java/jdk1.7.0_65/jre
  Runtime name: 721@deneb.xxx.net
  Java endorsed dirs: /lib/endorsed:/opt/java/jdk/lib/endorsed
  OS: Linux 2.6.32-5-amd64 [amd64], file.encoding: ISO-8859-1, user.name: root
  Heap sizes: current=92160k  free=90654k  max=1363456k
Kernel version 6.1.1007 / 04.12.2014 22:20:07
Inet version 6.1.635 / 04.12.2014 22:20:25
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 608
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0

Started: 26.12.2014 09:49:12    Uptime: 1 d 01:39:17
Memory total: 75 497 472; max: 477 102 080; free: 21 695 360
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 7 279 616; peek: 7 294 336
  Heap memory[PS Eden Space]: max: 178 257 920; used: 14 608 648; peek: 175 112 192
  Heap memory[PS Survivor Space]: max: 524 288; used: 213 008; peek: 6 083 256
  Heap memory[PS Old Gen]: max: 357 564 416; used: 38 980 456; peek: 71 215 528
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 30 985 136; peek: 30 985 136
Thread count: 106
Trees in cache: 0
Connections pool to Master status Idle: 20; Active: 0; maxActive: 300; maxIdle: 20


Сервер:
Код:
 ./server_status.sh
BGBillingServer v 6.1.1007 / 04.12.2014 22:20:07
Started: 26.12.2014 09:50:04    Uptime: 1 d 01:40:29
Memory total: 104 857 600; max: 477 102 080; free: 31 748 360
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 7 249 472; peek: 7 260 288
  Heap memory[PS Eden Space]: max: 175 112 192; used: 10 341 688; peek: 141 557 760
  Heap memory[PS Survivor Space]: max: 2 097 152; used: 1 162 784; peek: 18 870 960
  Heap memory[PS Old Gen]: max: 357 564 416; used: 61 604 768; peek: 62 621 656
  Non-heap memory[PS Perm Gen]: max: 268 435 456; used: 54 484 720; peek: 54 484 720
Thread count: 45
Connections pool to Master status Idle: 0; Active: 0; maxActive: 300; maxIdle: 20


Версии:
Код:
  Сервер: вер. 6.1.1007 / 04.12.2014 22:20:07
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_65

  card: вер. 6.1.202 / 19.11.2014 14:51:32
  inet: вер. 6.1.635 / 04.12.2014 22:20:25
  npay: вер. 6.1.181 / 19.11.2014 14:51:58
  reports: вер. 6.1.195 / 21.11.2014 19:30:55
  subscription: вер. 6.1.29 / 27.08.2014 16:19:48


Линукс Debian на ядре 2.6.32-5-amd64


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 27 дек 2014, 14:43 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2677
Карма: 72
а место на диске есть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 27 дек 2014, 15:01 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
полно

Код:
# df -H
Filesystem             Size   Used  Avail Use% Mounted on
/dev/sda1               41G    17G    23G  43% /
tmpfs                  3.2G      0   3.2G   0% /lib/init/rw
udev                   3.2G   103k   3.2G   1% /dev
tmpfs                  3.2G      0   3.2G   0% /dev/shm
tmpfs                  210M    49M   162M  24% /usr/local/BGInetAccounting/log

# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1            2514944  862500 1652444   35% /
tmpfs                 766452       5  766447    1% /lib/init/rw
udev                  765241     496  764745    1% /dev
tmpfs                 766452       1  766451    1% /dev/shm
tmpfs                 766452      11  766441    1% /usr/local/BGInetAccounting/log


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 27 дек 2014, 15:54 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
а что показывает
Код:
lsof


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 27 дек 2014, 17:02 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Отправил вам в личку аттачем вывод lsof


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 28 дек 2014, 15:53 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
За ночь на почту свалилось 140 писем. Есть идеи?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 29 дек 2014, 13:09 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
нужен вывод
Код:
lsof -p 16950


где 16950 - это код процесса access.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 29 дек 2014, 13:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
stark, отправил вам в личку вывод команды


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 29 дек 2014, 14:22 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
проблема примерно ясна. Сохраните логи log4j access-сервера куда-нибудь на всякий случай(вдруг понадобятся для разбора ) и перезапустите его. Это временно решит проблему, а мы пока разберемся почему он файлы не закрывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 29 дек 2014, 18:45 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
По списку открытых файлов вроде бы есть проблема.
Но также судя по этому списку, у приложения открыто чуть больше 1000 файловых дескрипторов, что на самом деле не много.
Например, судя по открытым файлам у вас около 250 коммутаторов, от них идет DHCP, для каждого открыты по два файла, это уже до 500 открытых файловых дескрипторов.
А каждые 15 минут создаются новые файлы логов, при этом в этот момент времени предыдущие еще открыты, что может увеличить кол-во открытых дескрипторов.
Плюс различные сокеты.

http://wiki.bitel.ru/index.php/%D0%9E%D ... n_files%22
Может быть еще в каком-нибудь месте есть лимит? Или же какое-то другое приложения (BGBilling) или другое держит открытыми остальные 31000?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 29 дек 2014, 19:08 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
можно вывести таким запросом
Код:
lsof -u user | awk '{print $2}' | sort | uniq -c | sort -n


вместо user - пользователя поставить (root или что у вас там).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 29 дек 2014, 19:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Я перегрузил, сейчас пока все норм.

Код:
# lsof -u root | awk '{print $2}' | sort | uniq -c | sort -n
      1 PID
     ...
    133 1756
    148 1737
    236 1776
    249 1690
    283 1256
   1009 1713

ps ax | grep 1713
 1713 ?        Sl     2:18 /opt/java/jdk/bin/java -Dnetworkaddress.cache.ttl=3600 -Djava.net.preferIPv4Stack=true -Dboot.info=1 -Dapp.name=BGInetAccess -Djava.endorsed.dirs=/lib/endorsed:/opt/java/jdk/lib/endorsed -Dlog.dir.path=log/ -Dlog4j.configuration=log4j-access.xml -Xmx512m -Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=./jmx.password -Dcom.sun.management.jmxremote.access.file=./jmx.access -Dcom.sun.management.jmxremote.ssl=false -Dadmin.port=1951 -cp .:./lib/ext/bgcommon-boot.jar ru.bitel.common.bootstrap.Boot ru.bitel.bgbilling.kernel.application.server.Application inet-access


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 29 дек 2014, 19:48 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
/etc/security/limits.conf у меня такой:

Код:
root            soft     nofile           65536
root            hard     nofile           65536

BGInetAccess запущен из под рута.

А sysctl (как http://wiki.bitel.ru/index.php/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D0%B2_%D0%BB%D0%BE%D0%B3%D0%B5_%22Too_many_open_files%22):
Код:
sysctl -w fs.epoll.max_user_instances=10000
error: "fs.epoll.max_user_instances" is an unknown key


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 29 дек 2014, 20:13 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Коммутаторов сейчас 215, кстати а как чистить (старые) файлы в /usr/local/BGInetAccess/data/dhcp? Каталог растет очень шустро...
Я сделал простенький скриптик, который удаляет папки в названии которых нет текущего месяца, но может есть какой-то правильный метод? Из конфигурации?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 29 дек 2014, 21:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Нет, на данный момент нет автоматического удаления старых DHCP-логов. Сжатие для них включено?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 30 дек 2014, 15:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
апдейтну пожалуй... пока писем too many open files больше не приходит, но продолжают идти письма:
Код:
ID события: dhcpLstnr.wait.thread
В рамках отведенного переменными количества потоков 50  и размером очереди обработки 300 dhcpLstnr не успеевает производить обработку запросов.


Увеличил эти значения до 100 и 500 соответственно, теперь:
Код:
В рамках отведенного переменными количества потоков 100  и размером очереди обработки 500 dhcpLstnr не успеевает производить обработку запросов.
Время регистрации события: 30.12.2014 06:04:04
Время регистрации события: 30.12.2014 06:05:04
Время регистрации события: 30.12.2014 12:03:59
Время регистрации события: 30.12.2014 12:04:59
Время регистрации события: 30.12.2014 00:04:21


Какие значения порекомендуете на 250 коммутаторов и 350 онлайн абонентов? С учетом активного роста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 30 дек 2014, 16:05 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В это время что-нибудь происходит? Бэкап, смена скоростей или что-нибудь еще?
Сохраните в это время вывод jstack несколько раз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 30 дек 2014, 16:30 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
да, бакап базы, через xtrabackup, он вроде как не должен блокировать ввод/вывод.
Сделаю jstack в момент бакапа


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files
СообщениеДобавлено: 10 янв 2015, 18:51 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
survivor писал(а):
За ночь на почту свалилось 140 писем.

поверьте, это не так много ))))

_________________
Код:
  Клиент: вер. 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
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 21 янв 2015, 18:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Только что пришло 11 писем от биллинга что:
Код:
ID события: dhcpLstnr.wait.thread
В рамках отведенного переменными количества потоков 100  и размером очереди обработки 500 dhcpLstnr не успеевает производить обработку запросов.


На данный момент:
Код:
./access_status.sh
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_65] /opt/java/jdk1.7.0_65/jre
  Java endorsed dirs: /lib/endorsed:/opt/java/jdk/lib/endorsed
  OS: Linux 2.6.32-5-amd64 [amd64], file.encoding: ISO-8859-1, user.name: root
  Heap sizes: current=92160k  free=90654k  max=1363456k
Kernel version 6.1.1007 / 04.12.2014 22:20:07
Inet version 6.1.635 / 04.12.2014 22:20:25
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0
Antispam ban count: 0; used per minute: 0

Started: 19.01.2015 12:57:11    Uptime: 2 d 02:59:14
Memory total: 252 706 816; max: 954 728 448; free: 37 413 120
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 8 226 560; peek: 8 248 384
  Heap memory[PS Eden Space]: max: 346 030 080; used: 5 109 584; peek: 325 582 848
  Heap memory[PS Survivor Space]: max: 5 767 168; used: 229 376; peek: 112 060 720
  Heap memory[PS Old Gen]: max: 715 653 120; used: 209 957 664; peek: 360 126 552
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 31 899 616; peek: 31 909 472
Thread count: 542
Trees in cache: 0
Connections pool to Master status Idle: 20; Active: 0; maxActive: 300; maxIdle: 20


На данный момент бакапы не снимаются.

Опять увеличить количество потоков? Свичей сейчас 272.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 21 янв 2015, 18:03 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Нужен вывод jstack для Access и для Accounting.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 21 янв 2015, 18:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Отправил вам в личку


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 21 янв 2015, 18:17 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Может пора выносить dhcp на отдельный сервер? Как вообще расчитывать значения для количества потоков и размера очереди? Можно указать сразу миллион например? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 21 янв 2015, 18:22 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
Может пора выносить dhcp на отдельный сервер?
Не думаю. Сейчас вроде бы все нормально, нагрузки нет. Может быть просто где-то сегмент сети отваливался и одновременно много абонентов получали адреса?
Цитата:
Как вообще расчитывать значения для количества потоков и размера очереди? Можно указать сразу миллион например?
Больше 100 и 500 не стоит делать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 23 янв 2015, 12:18 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Вчера увеличил lease time для dhcp, сегодня первая ночь когда мне биллинг не написал ни одного письма :) да будет так...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 23 янв 2015, 13:09 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А сколько был leasetime?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 26 янв 2015, 17:08 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
был две минуты... :) знаю что маловато очень, но пришлось поставить такое значение, так как абоненты частенько меняют cpe устройства и начинают ныть что вообще все перестало работать.
Похоже биллинг не успевал обработать такое количество dhcp запросов. С ростом абон базы думаю еще раз с этим столкнусь.
Сейчас - 15 минут, все спокойно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 26 янв 2015, 20:47 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Если на абонента разрешена только одна сессия, то можно попробовать указать dhcp.connection.closeOnNew=1, чтобы при получении DISCOVER от абонента текущая сессия закрывалась на биллинге.
В 6.0/6.1 есть InetDhcpProcessor2, который должен работать быстрее, но он пока не полностью проверен.

В последнем билде добавили, что при оповещении о том, что не успевает обрабатывать, дополнительно будет вывод аналогичный выводу jstack, который может помочь решить проблему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 27 янв 2015, 13:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Сглазил... сегодня ночью во время бакапа базы пришло:
ID события: dhcpLstnr.wait.thread
и еще новое:
Код:
ID события: radius.wait.thread
В рамках отведенного переменными количества потоков threadCount и размером очереди обработки maxQueueSize RADIUS сервер не успеевает производить обработку аккаунтинг запросов.
Возможная причина - загруженность базы данных.

Radius:
  accounting-requests per minute start: 0; stop: 0; update: 133
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0


Насчет:
Цитата:
Если на абонента разрешена только одна сессия, то можно попробовать указать dhcp.connection.closeOnNew=1, чтобы при получении DISCOVER от абонента текущая сессия закрывалась на биллинге.

Это было бы здорово. Только у меня же еще вторая сессия есть у абонента - radius сессия от ISG браса. Что будет с ней в это случае? Она по идее не должна дропнуться, ведь ip у абонента останется тот же. Даже если и дропнется, не страшно, она же сразу пересоздастся с первым ip пакетом?

Цитата:
В последнем билде добавили, что при оповещении о том, что не успевает обрабатывать, дополнительно будет вывод аналогичный выводу jstack, который может помочь решить проблему.

Для этого достаточно просто обновиться? Или нужно переключаться на InetDhcpProcessor2?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: java.io.IOException: Too many open files (CRM)
СообщениеДобавлено: 27 янв 2015, 17:32 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
Это было бы здорово. Только у меня же еще вторая сессия есть у абонента - radius сессия от ISG браса. Что будет с ней в это случае? Она по идее не должна дропнуться, ведь ip у абонента останется тот же. Даже если и дропнется, не страшно, она же сразу пересоздастся с первым ip пакетом?
Насколько помню, при этой схеме у вас будет принудительный сброс сессии на ISG, т.к. он задан в самом ServiceActivator (например, ru.bitel.bgbilling.modules.inet.dyn.device.cisco.ipdhcp.ISGServiceActivatorIpDhcp), т.к. адрес может выдаваться динамически и для нового устройства - выдаться новый.
Должна пересоздаться.

Но возможны случаи, когда на Accounting пришел стоп, одновременно пришел Access-Request на Access, а Accounting еще не успел завершить предыдущую сессию и Access решает, что превышено кол-во активных сессий (т.е. проблема возникает именно при моментальной переавторизации). В этом случае рекомендуем использовать radius.connection.checkDuplicate=888 http://bgbilling.ru/v6.1/doc/ch17s13s03s01.html .
Но здесь возникала проблема, что при сбросе старой сессии раньше не рассматривалась разница между DHCP- или RADIUS-сессией и могла сброситься DHCP-сессия. Поэтому добавили возможность проверки на кол-во сессий отдельно по разным типам - в конфигурации модуля - authorization.sessionCountCheck=1. С этим флагом подразумевается, что, ограничение на кол-во сессий действует на каждый тип сессии отдельно. Т.е. вместо ограничения на 2 сессии можно/нужно будет указать 1 сессию (одна DHCP и одна RADIUS и в будущем, например, одна DHCPv6).
Т.е. вместе с radius.connection.checkDuplicate=888 лучше сразу указать в конфигурации модуля authorization.sessionCountCheck=1.
Но DHCP так работает, что шаг вправо, шаг влево может привести к неожиданным последствиям, поэтому следует менять осторожно, какое-то время наблюдать (но как минимум на одной инсталляции authorization.sessionCountCheck=1 уже работает).

Цитата:
Для этого достаточно просто обновиться? Или нужно переключаться на InetDhcpProcessor2?
Да, достаточно обновиться.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 90 ]  На страницу 1, 2, 3  След.

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


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

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


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

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