BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 05 июл 2025, 04:32

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 20 май 2011, 06:40 
Не в сети
Клиент

Зарегистрирован: 11 апр 2011, 11:07
Сообщения: 142
Карма: 5
Всем привет. Уже не знаю что и думать, ситация следующая.
В качестве NAS используем mpd(PPPoE).
Код:
%sed '/ *#/d; /^$/d'  /usr/local/etc/mpd5/mpd.conf
startup:
   set user tex
   set user admin
   set console self 10.10.1.3 5005
   set console enable logging
   set console open
   set web self 10.10.1.3 5006
   set web open
default:
   load pppoe_server
pppoe_server:
 
   create bundle template A
   set ipcp ranges 10.10.1.3/32
   set ipcp dns
   create link template common pppoe
   set link disable multilink
   set link action bundle A
   set link disable chap pap eap
   set link enable pap
   set link keep-alive 5 10
   load radius
   set pppoe service *
   create link template vlan1 common
   set pppoe iface vlan1
   set link enable incoming
   create link template vlan4 common
   set pppoe iface vlan4
   set link enable incoming
radius:
   set radius server 10.10.20.10 ololo 1812 1813
   set radius retries 10
   set radius timeout 60
        set auth timeout 60
   set radius identifier PPPOE_OSNK
   set radius me 10.10.1.3
        set auth acct-update 110
   set auth enable radius-auth
   set auth enable radius-acct
   set radius enable message-authentic


Конфиги радиуса

$ sudo cat /usr/local/BGRadiusDialup/radius.sh
Код:
#!/bin/sh

cd ${0%${0##*/}}.

JAVA_HOME=/opt/java/jre

if [ -z "$JAVA_HOME" ]; then
  echo "The JAVA_HOME environment variable is not defined"
  echo "This environment variable is needed to run this program"
  exit 1
fi

BGRAD_HOME_DIALUP=.

CLASSPATH=$BGRAD_HOME_DIALUP:$BGRAD_HOME_DIALUP/lib/*

if [ "$1" = "start" ]; then
nohup  ${JAVA_HOME}/bin/java -Dapp.name=BGRadiusDialup -Xmx512m -Djava.net.preferIPv4Stack=true -Dlog4j.configuration=log4j-radius.xml -Dlog.dir.path=log/ -cp $CLASSPATH bitel.billing.server.radius.Radius $1 $2 $3 $4 $5 $6 > ./log/radius.out 2>&1 &
else
   ${JAVA_HOME}/bin/java -Xmx256m -cp $CLASSPATH bitel.billing.server.radius.Radius $1 $2 $3 $4 $5 $6
fi

Код:
$ sudo cat  /usr/local/BGRadiusDialup/radius.properties
processor.class=bitel.billing.server.processor.dialup.DialUpProcessor
processor.mid=1

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://10.1.20.200/bgbilling?useUnicode=true&characterEncoding=Cp1251&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true
db.user=bill
db.pswd=1111
db.maxIdle=10
db.maxActive=200

auth.port=1812
acct.port=1813
admin.port=1955

auth.thread.count=50
acct.thread.count=100

auth.thread.must.be.free.count=10
acct.thread.must.be.free.count=10

collector.capture.flow.port.1=9999
collector.capture.flow.port.1.type=netflow
collector.capture.flow.port.1.thread.count=10

В конфиге радиуса изначально было
Код:
db.maxIdle=20
db.maxActive=300

При этих значениях ситуация не меняется никак.
статус
Код:
$ sudo /usr/local/BGRadiusDialup/radius.sh status
version 5.0 build 298 from 09.12.2010 18:59:44
20.05.2011 07:14:54   1292   15   1277   0
Request accounts per minute start: 0; stop: 0; update: 90
Request auths per minute accept: 0; reject: 0
Netfow packets per minute: 80
Ignore per minute auth: 12; update: 0
Antispam ban count: 0; used per minute: 0
FlowListener: queue_size: 0; threads_active: 0; largest: 10; core: 10; pool_size: 10; recv_socket_buf_size: 131 071; recv_buf_size: 8 388 608; packets: 198
Started: 19.05.2011 18:19:35   Uptime: 0 d 12:55:19
Memory total: 31 129 600; max: 477 233 152; free: 1 541 888
Trees in cache: 7
Connections pool to Master status Idle: 10; Active: 42; maxActive: 200; maxIdle: 10


После рестарта радиуса несколько клиентов могут подключиться, затем у тех кто "не успел" ошибка 718.
О ОС
Код:
uname -srm
Linux 2.6.18-238.el5 i686
Код:
$ cat /etc/issue
CentOS release 5.6 (Final)
Код:
ls -la /opt/java/|grep jre
lrwxrwxrwx  1 root root       12 Apr 14 18:46 jre -> jre1.6.0_24/

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2021       1957         63          0         88       1481
-/+ buffers/cache:        387       1633
Swap:         4094          0       4094


По логике, нужно увеличивать
Код:
auth.thread.count=

?
Увеличил сейча до 80-ти... Будем посмотреть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2011, 08:32 
Не в сети
Клиент

Зарегистрирован: 11 апр 2011, 11:07
Сообщения: 142
Карма: 5
Пока полет нормальный, ближе к вечеру нужно смотреть...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2011, 15:47 
Не в сети
Клиент

Зарегистрирован: 11 апр 2011, 11:07
Сообщения: 142
Карма: 5
Пришел вечер, снова ошибка, увеличил актив и макс ауес.трид
250 и 120 соответственно...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2011, 17:51 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
auth.thread.count и acct.thread.count можно, ЕМНИМС, максимум в 110 поставить, но в принципе и 100 вроде хватает.
db.maxActive можете увеличить, например до 1000 (так чтоб поставил и забыл), только в мускуле не забудьте кол-во коннектов поменять, текущее значение увидите через:
Код:
SHOW VARIABLES LIKE 'max_connections';


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 май 2011, 08:01 
Не в сети
Клиент

Зарегистрирован: 11 апр 2011, 11:07
Сообщения: 142
Карма: 5
Если в мускуле выставить max.conections=1000(или больше), то ему(мускулу) можно будет захавать гигов так под 40 оперативки :) Что не есть гуд, ибо их всего 4


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 май 2011, 17:34 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
"Суха, мой друг, теория везде, а древо жизни пышно зеленеет."(с)Гете, Фауст.

Код:
# grep -E 'db.maxActive|auth.thread.count|acct.thread.count' radius.properties
db.maxActive=3000
auth.thread.count=100
acct.thread.count=100

Код:
> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 10000 |
+-----------------+-------+
1 row in set (0.00 sec)

Код:
# top | grep -E 'COMMAND|mysqld'
  PID USERNAME  THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
 1356 mysql      51  44    0  1156M   580M ucond   0  35:36  0.39% mysqld

И чо? Где 40 гигов? Может перестанете вдаваться в теорию и перейдете к практике?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 май 2011, 11:49 
Не в сети
Клиент

Зарегистрирован: 11 апр 2011, 11:07
Сообщения: 142
Карма: 5
На данный момент max_connections=130.
Проблемы обозначенной выше не наблюдаю. А что касается теории и практики, http://mysqltuner.pl/mysqltuner.pl
врядли писали неграмотные люди :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 май 2011, 15:47 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
FessAectan писал(а):
что касается теории и практики, http://mysqltuner.pl/mysqltuner.pl
врядли писали неграмотные люди :)

Это:
Код:
# ls /usr/local/share/mysql | grep my-
my-huge.cnf
my-innodb-heavy-4G.cnf
my-large.cnf
my-medium.cnf
my-small.cnf

вообще писано разработчиками ;)
Выбираем подходящий, копируем как my.cnf и немногожко тюним.

Все, нефиг ссорится из за пустяков, IMHO. Главное что робит!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 май 2011, 15:57 
Не в сети
Клиент

Зарегистрирован: 11 апр 2011, 11:07
Сообщения: 142
Карма: 5
окей :D

Код:
 grep  "max_connections ="  /usr/share/mysql/
/usr/share/mysql/my-innodb-heavy-4G.cnf:max_connections = 100

Вывод сами сделаете :wink:

*согласен


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 май 2011, 16:20 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
FessAectan писал(а):
Код:
 grep  "max_connections ="  /usr/share/mysql/
/usr/share/mysql/my-innodb-heavy-4G.cnf:max_connections = 100

snark писал(а):
копируем как my.cnf и немногожко тюним.

;)


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

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


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

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


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

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