Good day. I use FreeRadius 1.1.0 with Oracle DB on Red Hat Enterprise Linux ES release 3 (Taroon Update 3) Kernel 2.4.21-20.ELsmp on an i686 I made a test load on server and everything is good when I start Freeradius in debug mode # /usr/local/sbin/radiusd -X top shows me 13:04:10 up 70 days, 1:06, 5 users, load average: 1,77, 1,57, 1,88 114 processes: 111 sleeping, 3 running, 0 zombie, 0 stopped CPU states: cpu user nice system irq softirq iowait idle total 66,7% 0,0% 3,5% 0,0% 0,0% 0,3% 29,2% Mem: 2307652k av, 2283924k used, 23728k free, 0k shrd, 116652k buff 1578192k actv, 300500k in_d, 36092k in_c Swap: 2048152k av, 219780k used, 1828372k free 1694328k cached But when I start Freeradius in work mode # /usr/local/sbin/radiusd under the same test load top shows me in 10-15 minutes: 11:50:27 up 69 days, 23:52, 3 users, load average: 37,25, 30,91, 31,58 114 processes: 92 sleeping, 22 running, 0 zombie, 0 stopped CPU states: cpu user nice system irq softirq iowait idle total 91,1% 0,0% 8,7% 0,0% 0,0% 0,0% 0,0% Mem: 2307652k av, 2250580k used, 57072k free, 0k shrd, 151768k buff 1541388k actv, 299248k in_d, 35108k in_c Swap: 2048152k av, 178648k used, 1869504k free 1671720k cached I see radiusd threads when do the command #ps -efm | grep radiusd in radius.log there are very many such string: Fri Feb 17 12:08:40 2006 : Error: WARNING: Unresponsive child (id 1347701680) fo r request 2937 and such string: Fri Feb 17 12:06:16 2006 : Info: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 My questions are: 1. What is the reason of such FreeRadius behavior? What must I do? 2. Why load of server during #radiusd -X is lover then during #radiusd ? Seems to be vice-versa? 3.How must I start FreeRadius to make many processes (not threads), maybe it help me to decrease the load of server and to increase the speed of packets handling Thanks.
Velikanov wrote:
1. What is the reason of such FreeRadius behavior? What must I do?
It looks like a slow database problem.
2. Why load of server during #radiusd -X is lover then during #radiusd ?
radius -X starts the server in single-threaded mode, and the database server receives one request at a time. In normal mode, FreeRADIUS sends multiple requests simultaneously to the database server, and the database becomes too slow to answer to all the requests. At some point you get the message "There are no DB handles to use!"
3.How must I start FreeRadius to make many processes (not threads), maybe it help me to decrease the load of server and to increase the speed of packets handling
I'd suggest to find out why the database is slow (perhaps there is no index). On the FreeRADIUS side, try to adjust the value of the num_sql_socks option in sql.conf. -- Nicolas Baradakis
participants (2)
-
Nicolas Baradakis -
Velikanov