Serious problems with buffered accounting
    Jorge Pereira 
    jpereiran at gmail.com
       
    Tue Nov 24 03:13:55 CET 2015
    
    
  
Hi,
   Nowadays, I have tons of Accounting packets as stats below.
# radsniff -i eth0 -f "port 1813" -W10
######### Stats Iteration 2 #########
Interface capture rate:
        eth0      : 42.700/s
Accounting-Request counters:
        Total     : 21.400/s
        Linked    : 21.200/s
        Unlinked  : 0.000/s
Accounting-Request latency:
        High      : 113.875ms
        Low       : 7.446ms
        Average   : 31.365ms
        MA        : 31.365ms
Accounting-Request retransmits & loss:
        RT (0)    : 24.600/s
Accounting-Response counters:
        Total     : 21.200/s
        Linked    : 21.200/s
        Unlinked  : 0.000/s
Accounting-Response latency:
        High      : 113.875ms
        Low       : 7.446ms
        Average   : 31.365ms
        MA        : 31.365ms
#
And my approach was to use the buffered accounting as example below.
# Simple accounting server
server default_accounting {
        listen {
                ipaddr = *
                port = 0
                type = acct
        }
        accounting {
              detail-buffered
        }
}
# written by
detail detail-buffered {
        filename =
${radacctdir}/buffered/detail-%Y%m%d-%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}
        escape_filenames = no
        permissions = 0600
        header = "%t"
        log_packet_header = yes
        suppress {
                User-Password
        }
}
# consumed by
server buffered-accounting {
    listen {
        type = detail
        filename = "${radacctdir}/buffered/detail-*"
        load_factor = 30
        retry_interval = 5
#      poll_interval = 15
#      track = yes
    }
    preacct {
        preprocess
        acct_unique
    }
    accounting {
        -sql_accounting
        if (!ok) {
                linelog-fail-sql
                ok
        }
    }
}
My problem is: The process that receive and write the packets is completely
fast them who consume (buffered-accounting). This causes a big
queue of files in /var/log/freeradius/buffered/ resulting in a giant delay.
I have thinking about some issue related to race-condition or dead-lock.
I really appreciate some tips and suggestions.
--
Jorge Pereira
    
    
More information about the Freeradius-Users
mailing list