|
发表于 2011-8-28 12:27:04
|
显示全部楼层
楼主既然编辑删掉了之前发的内容,我还是简单说说吧。难得有人认真考虑这些问题。
就拿楼主1楼说的问题,举例
- accounting_update_query = " \
- UPDATE ${acct_table1} \
- SET \
- framedipaddress = '%{Framed-IP-Address}', \
- acctsessiontime = '%{Acct-Session-Time}', \
- acctinputoctets = '%{%{Acct-Input-Gigawords}:-0}' << 32 | \
- '%{%{Acct-Input-Octets}:-0}', \
- acctoutputoctets = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
- '%{%{Acct-Output-Octets}:-0}', \
- acctupdatetime = NOW() , \
- acctstoptime = NULL\
- WHERE acctsessionid = '%{Acct-Session-Id}' \
- AND acctuniqueid = '%{Acct-Unique-Session-Id}' \
- AND username = '%{SQL-User-Name}' \
- AND realm = '%{Realm}' \
- AND nasipaddress = '%{NAS-IP-Address}' \
- AND nasportid = '%{NAS-Port}' \
- AND nasporttype = '%{NAS-Port-Type}' \
- AND acctauthentic = '%{Acct-Authentic}' \
- AND calledstationid = '%{Called-Station-Id}' \
- AND callingstationid = '%{Calling-Station-Id}' \
- AND servicetype = '%{Service-Type}' \
- AND framedprotocol = '%{Framed-Protocol}' \
- AND framedipaddress = '%{Framed-IP-Address}'"
复制代码 RFC 中对 session id 定义是一个 网络字节序 ,在同台NAS中不可能重复。楼主加入的那些查询字段过于冗余。
其他的查询代码就不做解释。查询条件越复杂效率越低,冗余的数据库读写只会使效率低下,楼主应该明白。
再说下,楼主说的修改mysql连接至1000,freeradius的数据库连接至100的问题。首先radius服务器这一单纯的应用,mysql的优化应该根据应该根据硬件情况进行,优化缓存值为主,单单改大连接数没任何意义,不是做对大众的WEB应用会是有很多连接。Freeradius数据库的连接数值默认是过小,但一般网络环境也足够。非要改了才放心,改为10-20较为合适。此连接数是freeradius启动时就建立,不会释放。过大会浪费资源,处于等待状态的查询会使freeradius工作效率降低。。。。。先说这么多,还有疑问我再继续解释。打字太累。 |
|