-----Original Message-----
From:   Kostas Kalevras [mailto:[EMAIL PROTECTED]
Sent:   Tue 10/5/2004 11:50 PM
To:     [EMAIL PROTECTED]
Cc:     
Subject:        Re: 0.9.3 Solaris performance problem
On Tue, 5 Oct 2004, Stungo, Jamie wrote:

> Hi all,
>
> We are experiencing some unexpected behaviour of freeradius on our Solaris 9
> platform. We use two V240 dual processor SPARC machines, LDAP back-end, flat
> file accounting. I have heavily indexed the directory and it seems lightning
> fast, slapd is running at 0.2% most of the time, yet radiusd chews 95+% of
> CPU0 and I have to re-nice the process to get a workable shell! This is on
> both machines. As I understand it we can't spread the load across both CPUs?

>Freeradius is multithreaded, so the load sould be spread across both CPUs. >What
>type is the CPU usage, kernel/user/io?


CPU states:  0.0% idle, 14.6% user, 85.4% kernel,  0.0% iowait,  0.0% swap


>
> I don't believe that the problem is caused by the number of lookups as it was
> running at fairly low loads (with 10k subs) until we recently added another
> couple of thousand (who match in the users file instead of dropping through to
> the LDAP).

>I really don't understand this paragraph. What do you mean by subs? Couple
>thousand of what? Match in the users file?

Subs = subscribers/users. Approximately half the users would do two matches in the 
users file, the rest just one.

> Our users file has about 130 DEFAULT matches (total) as follows:

>That's plenty of DEFAULT entries. Remember that for each request the server
>might try matching 130 entries. Make sure you have the best
>matching entries first. Though i would not bet my money on that being the >root cause.

It's a good point, I have moved around some entries and I believe this has slightly 
improved things, however you're right and this is not the main problem.

>
> DEFAULT         Suffix == "@subdomain.provider.com", NAS-IP-Address == 10.0.0.1, 
> Auth-Type := Accept
>                 Service-Type = Framed,
>                 Framed-Protocol = PPP,
>                 ERX-Virtual-Router-Name = PROVIDER1,
>                 Tunnel-Type = L2TP,
>                 Tunnel-Medium-Type = IP,
>                 ERX-Tunnel-Password = xxxxxx,
>                 Tunnel-Client-Endpoint = 172.X.X.X,
>                 Tunnel-Server-Endpoint = 172.X.X.Y,
>                 Tunnel-Assignment-Id = xxxx,
>                 Tunnel-Client-Auth-Id = blahblah,
>                 Tunnel-Server-Auth-Id = blehbleh
>
> DEFAULT         Suffix == "@subdomain.provider.com", NAS-IP-Address == 10.0.0.2, 
> Autz-Type := WholesaleLDAP, Auth-Type := Accept
>                 Service-Type = Framed,
>                 Framed-Protocol = PPP,
>                 ERX-Virtual-Router-Name = PROVIDER1,
>                 Tunnel-Type = L2TP,
>                 Tunnel-Medium-Type = IP,
>                 ERX-Tunnel-Password = xxxxxx,
>                 Tunnel-Client-Endpoint = 172.X.X.X,
>                 Tunnel-Server-Endpoint = 172.X.X.Y,
>                 Tunnel-Assignment-Id = xxxxx,
>                 Tunnel-Client-Auth-Id = blahblah,
>                 Tunnel-Server-Auth-Id = blehbleh
>
> We get a lot of "Unresponsive child" and "Dropping conflicting packet" errors
> in our radius log, as well as the max number of threads hitting its ceiling
> (128). Suggestions for a reasonable figure for this for our hardware platform
> would be helpful to know. It seems to hit its roof at around 250. I'm not sure
> whether better performance would be gained from allowing it to peak or to keep
> it low.

>Could you post your authorize,authenticate,session and accounting sections? >Do you 
>check for double logins?

We do check for double login checks by means of an LDAP lookup (WholesaleLDAP) on 
about half the users.


authorize {
        #
        #  The preprocess module takes care of sanitizing some bizarre
        #  attributes in the request, and turning them into attributes
        #  which are more standard.
        #
        #  It takes care of processing the 'raddb/hints' and the
        #  'raddb/huntgroups' files.
        #
        #  It also adds a Client-IP-Address attribute to the request.
        preprocess

        #
        #  If you want to have a log of authentication requests,
        #  un-comment the following line, and the 'detail auth_log'
        #  section, above.
        auth_log
        
        #
        #  The chap module will set 'Auth-Type := CHAP' if we are
        #  handling a CHAP request and Auth-Type has not already been set
        chap
        mschap

#       attr_filter

        #
        #  This module takes care of EAP-MD5, EAP-TLS, and EAP-LEAP
        #  authentication.
        #eap

        #
        #  If you have a Cisco SIP server authenticating against
        #  FreeRADIUS, uncomment the following line.
        # digest

        #
        #  Look for IPASS style 'realm/', and if not found, look for
        #  '@realm', and decide whether or not to proxy, based on
        #  that.
#       realmslash
        suffix

        #
        #  If you are using /etc/smbpasswd, and are also doing
        #  mschap authentication, the un-comment this line, and
        #  configure the 'etc_smbpasswd' module, above.
#       etc_smbpasswd

        #
        #  If the users are logging in with an MS-CHAP-Challenge
        #  attribute for authentication, the mschap module will find
        #  the MS-CHAP-Challenge attribute, and add 'Auth-Type := MS-CHAP'
        #  to the request, which will cause the server to then use
        #  the mschap module for authentication.
#       moved mschap up
#       mschap


# The ldap module will only be used if the Autz-Type:=LDAP is set in the users
# files.  This will in turn set the Auth-Type:=LDAP if it has not already 
# been set
        autztype DirectLDAP {
           direct
        }

        autztype WholesaleLDAP {
           wholesale
        }

        #
        #  Read the 'users' file
        files

#       daily
}

authenticate {
        #
        #  PAP authentication, when a back-end database listed
        #  in the 'authorize' section supplies a password.  The
        #  password can be clear-text, or encrypted.
        Auth-Type PAP {
                pap
        }

        #
        #  Most people want CHAP authentication
        #  A back-end database listed in the 'authorize' section
        #  MUST supply a CLEAR TEXT password.  Encrypted passwords
        #  won't work.
        Auth-Type CHAP {
                chap
        }

        #
        #  MSCHAP authentication.
        Auth-Type MS-CHAP {
                mschap
        }

        #
        #  If you have a Cisco SIP server authenticating against
        #  FreeRADIUS, uncomment the following line.
        # digest

        #
        #  Pluggable Authentication Modules.
#       pam

        #
        #  See 'man getpwent' for information on how the 'unix'
        #  module checks the users password.  Note that packets
        #  containing CHAP-Password attributes CANNOT be authenticated
        #  against /etc/passwd!  See the FAQ for details.
        #  
#       unix

        # Uncomment it if you want to use ldap for authentication
        Auth-Type LDAP {
                direct
        }


        #
        #  Allow EAP authentication.
#       eap
}

session {
#       radutmp
#       sql
}

accounting {
        acct_unique
        detail
#       daily
        unix            # wtmp file
        radutmp
#       sql
#       sradutmp
#       main_pool
}


>
>
> The lookups we're doing don't seem particularly CPU intensive... in the one
? case we're matching domain suffix and NAS-IP-Address and building a tunnel, in
? the other the same but doing a quick lookup in addition. From what I've read

> What quick lookup? Lookup on where? ldap?



Yes, this is the WholesaleLDAP lookup I'm referring to.




> so far, matches like this should be extremely quick to perform, even with a
> big users file. I'd like to turn to my LDAP as the source of the problem but I
> really don't believe it's at fault.
>
> Any and all help gratefully received.
>
> Cheers,
>
> Jamie Stungo
>
>
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
>

--
Kostas Kalevras         Network Operations Center
[EMAIL PROTECTED]       National Technical University of Athens, Greece
Work Phone:             +30 210 7721861
'Go back to the shadow' Gandalf

- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html



<<winmail.dat>>

Reply via email to