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