OS6 rx_bytes im /sys/class/net stimmt nicht mehr?

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
455
Punkte für Reaktionen
3
Punkte
18
Ich habe ein script das die "saturation" berechnet.
Dafür nutze ich cat /sys/class/net/vdsl/statistics/tx_bytes und cat /sys/class/net/vdsl/statistics/rx_bytes

Mein script funktioniert nicht mehr und beim debugging hab ich bemerkt dass die werte nicht mehr ubereinstimmen...

Auch die Werte in ifconfig stimmen nicht mehr.
Zur Zeit das ich das Script geschrieben habe funktionierte es einwandfrei.
Ich glaube das es schon längere Zeit ist (seit 5.0?)

ich habe 3x ein "wget -O /dev/null http://nl.releases.ubuntu.com/precise/ubuntu-12.04.4-d
esktop-amd64.iso" gemacht

root@x:/var/mod/root# cat /sys/class/net/vdsl/statistics/tx_bytes
77194035
root@x:/var/mod/root# cat /sys/class/net/vdsl/statistics/rx_bytes
609336
root@x:/var/mod/root# wget -O /dev/null http://nl.releases.ubuntu.com/precise/ubuntu-12.04.4-desktop-amd64.iso
root@x:/sys/class/net# cat /sys/class/net/vdsl/statistics/rx_bytes
661697
root@x:/sys/class/net# cat /sys/class/net/vdsl/statistics/tx_bytes
96267317

Die Werte stimmen vielleicht fur tx_bytes aber sicher nicht für rx_bytes...
Ganz fremd....

root@x:/var/mod/root# ifconfig vdsl
vdsl Link encap:Ethernet HWaddr 08:96:D7:43:36:27
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:12558 errors:0 dropped:0 overruns:0 frame:0
TX packets:1342989 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:873098 (852.6 KiB) TX bytes:96601051 (92.1 MiB)
Interrupt:36


Ist dieses etwas für AVM oder Freetz???
 
Etwas stimmt hier nicht....
Ich habe mich auch immer gewundert weil ich niemals die interface mit dem WAN IP aufrufen konnte...

Stimmt etwas nicht mit dem userspace?

Eigentlich brauche ich nur einen Weg zum Zugriff der daten....
die AVM interface stimmt.....
 
Auf jeden Fall AVM. Du schreibst zwar weder von Box noch Firmware Version, aber vermutlich leitet AVM die Pakete an den Stellen vorbei, wo sie gezählt werden.
 
Es handelt sich um ein 7390.

Ich durchsuch jetzt Grafiken von mehreren Fritzboxen.
Es sieht so aus ob es niemals gestimmt hat bei kein einzige Fritzbox.
Aber das kann eigentlich nicht...
Zur Zeit das ich das script geschrieben habe ich viele tests gemacht mit downloads das die man kan 120% saturation bekommen kannst....

Kannst du konfirmieren das die Werten bei euch auch nicht stimmen?

Ich weiss auch nicht wie ich die Werte sonst bekommen kann.
 
Kann man sie nicht vom ctlmgr abrufen?

Such mal auf freetz. org nach avm_pa oder packet accelerator. Gab auch was mit tcpdump und libpcap.

Gruß Oliver
 
Ich habe gesucht beim crlmgr_ctl...

grep '^Rx packets/sec' /proc/net/avm_pa/stats | awk '{print $4}'

gibt mir received packets/s aber auch nur das (nicht gesendet)
auch sind es paketen und kein bytes.... (brauch ich das naturlich selbst nicht mehr zu machen)

Ich mache Morgen weiter...
Danke
 
On my 7390 I also observed wrong statistics for some ports using NET-SNMP (and MRTG).
E.g.:
- sixxs interface shows 960kB/s, atm interface 100kB/s dsl interface 50kB/s
(expected similar figures, except for additional encapsulation)
- wifi0: ifInOctets and ifOutOctets stay 0

Never looked further into the details, but with the 7270v3 the stats looked more trustworthily.
 
http://znil.net/index.php?title=FritzBox_Status-Informationen_DSL_/_Netzwerk_per_Telnet_abfragen

Er hat:
Code:
cat /proc/net/avm_pa/vpids|grep -A3 internet|grep RX|tr -s ' '|cut -d ' ' -f8

Ich mache dass
Code:
grep -A3 internet /proc/net/avm_pa/vpids | grep RX | awk '{print $7}'

Empfangen stimmt...
Beim senden nutzt er "grep -C3" was ich nicht verstehe... ich denk ein typo. Das ist gleich an 'grep -A3 -B3'
Ich denke ein typo...
Aber trotzdem... diese Werte sind immer 0 und bleiben 0....

Dieses funktioniert nicht....
Code:
grep -A3 internet /proc/net/avm_pa/vpids | grep TX | awk '{print $7}'

Aber diese Werten stimmen vielleicht hier....
Code:
DSLSPEED=`cat /sys/class/net/vdsl/statistics/tx_bytes 2>/dev/null`
[ -z "${DSLSPEED}" ] && DSLSPEED=`cat /sys/class/net/dsl/statistics/tx_bytes 2>/dev/null`

Ich fühl mich noch immer unbequem mit dieser Lösung....
Was denkt Ihr?
 
Ich denke, dass meine Firmware gar kein /proc/net/avm_pa/vpids hat, von daher weiß ich nicht, was da normalerweise drin steht. Hast Du Deine grep Version au einer anderen Quelle, oder bist Du selbst darauf gekommen? Wenn ja. weißt Du sicher, was für oder gegen die jeweilige Variante spricht.

Das Untere ist doch genau das, was laut dem ersten Beitrag nicht mehr funktioniert? Oben hast Du auch geschrieben, wie Du überprüft hast, ob die Werte passen. Tun sie das jetzt, oder tun sie das nicht?
 
Die Werte für TX bleiben immer auf 0 in /proc/net/avm_pa/vpids aber die TX Werte in /sys/class/net/vdsl/statistics die sind richtig (denke ich).
Die Werte für RX stimmen nicht in /sys/class/net/vdsl/statistics.
Die bekomme ich jetzt aus /proc/net/avm_pa/vpids


Hier ist mein /proc/net/avm_pa/vpids
root@Ateliers-kantoor:/var/mod/root# cat /proc/net/avm_pa/vpids
Code:
VPID1 : 1500/1500  eth0
          unicast  multicast  broadcast    discard      error      bytes   mc bytes   bc bytes
  RX            5          0          0          0          -        387          0          0
  TX            0          0          0          0          0          0
VPID2 : 1500/1500  ath0
          unicast  multicast  broadcast    discard      error      bytes   mc bytes   bc bytes
  RX            0          0          0          0          -          0          0          0
  TX            0          0          0          0          0          0
VPID3 : 1500/1500  ath1
          unicast  multicast  broadcast    discard      error      bytes   mc bytes   bc bytes
  RX            0          0          0          0          -          0          0          0
  TX            0          0          0          0          0          0
VPID4 : 1500/1500  internet
          unicast  multicast  broadcast    discard      error      bytes   mc bytes   bc bytes
  RX      1065531          0          0          0          - 1611893577          0          0
  TX            0          0          0          0          0          0

Dieses script gibt Werte die auf jeden Fall in der nähe ist....
Es funktioniert auf mein 7390 mit OS6
Ich habe noch nicht untersucht was mit andere Modellen ist...
Ich dachte ich habe hier jetzt etwas Universelles.....

freetz@freetz:~/trunk$ cat make/zabbix_agentd-support/files/root/sbin/adsl.saturation
Code:
#!/bin/sh

# You do need to turn on support for %N (nanoseconds) in busybox

# the parameter rx or tx has to be given
echo "$1" | egrep -q '^(tx|rx)$' || exit 1

STATDIR=/sys/class/net/vdsl/statistics
[ -e "${STATDIR}" ] || STATDIR=/sys/class/net/adsl/statistics
[ -e "${STATDIR}" ] || STATDIR=/sys/class/net/dsl/statistics

STATFILE=$1_bytes
[ -e "${STATDIR}/${STATFILE}" ] || exit 1

# Create a file in /tmp to fetch the previous sample
SCRATCH=/tmp/${0##*/}.$1

# Fetch the corresponding DSL-speed of physical layer
if [ "$1" = 'rx' ] ; then
  DSL_SPEED=`sudo ctlmgr_ctl r sar status/dsl_ds_rate`
else
  DSL_SPEED=`sudo ctlmgr_ctl r sar status/dsl_us_rate`
fi

if [ -z "${DSL_SPEED}" ] || [ ${DSL_SPEED} -eq 0 ] ; then
  echo 0
  exit
fi

# Fetch date and Bytes from ADSL-interface
NOW_TIME=`date +%s.%N`
NOW_BYTES=`cat ${STATDIR}/${STATFILE}`
[ "$1" = 'rx' ] && NOW_BYTES=`grep -A3 internet /proc/net/avm_pa/vpids | grep RX | awk '{print $7}'`

# On first run, these vars do not exist
LAST_BYTES=${NOW_BYTES}
LAST_TIME=0

# read previous values
[ -f ${SCRATCH} ] && . ${SCRATCH}

# Sanity check in case previous value is somehow off
LAST_BYTES=`echo "${NOW_BYTES} ${LAST_BYTES}" | awk '{if($1 > $2) {print $2} else print $1}'`

DIFF_BYTES=`echo "${NOW_BYTES} ${LAST_BYTES}" | awk '{print $1 - $2}'`
DIFF_TIME=`echo  "${NOW_TIME} ${LAST_TIME}"   | awk '{print $1 - $2}' | tr -cd '[0-9].'`

BITS_PER_SEC=0
[ "${DIFF_TIME}" = '0' ] || BITS_PER_SEC=`echo "${DIFF_BYTES} ${DIFF_TIME}" | awk '{printf"%.0f\n", 8 * $1 / $2}'`

# Write Bytes and Time to ${SCRATCH}
echo -e "LAST_BYTES=${NOW_BYTES}\nLAST_TIME=${NOW_TIME}" >${SCRATCH}

# There's some overhead going from ATM over DSL to Ethernet (PPPoA)... a bit less for PPPoE
# I don't know (yet) how to detect an IPoE connection. I don't have such a connection..... (not such a big deal)
NETTO=0.895

# showdsldstat | egrep -qi '(vlan|/PPPoE)' && NETTO=0.91

# echo "${BITS_PER_SEC} ${DSL_SPEED} ${NETTO}"
RETVAL=`echo "${BITS_PER_SEC} ${DSL_SPEED} ${NETTO}" | awk '{printf"%.0f\n", $1 / ($2 * $3 * 10)}' 2>/dev/null`
[ -z "${RETVAL}" ] && RETVAL=0
echo ${RETVAL}
 
Ich habe jetzt auch ein kleines script womit ich nur die DSL bytes bekomme....
Vielleicht noch ein kleine Fehler drin, aber ich muss fort sonst knallst hier im Hause ;-)
Ich hoffe da gibts noch feedback....

cat /sbin/dsl.bytes
Code:
#!/bin/sh

# the parameter rx or tx has to be given
echo "$1" | egrep -q '^(tx|rx)$' || exit 1

# Fetch the corresponding DSL-speed of physical layer
if [ "$1" = 'tx' ] ; then
  STATDIR=/sys/class/net/vdsl/statistics
  [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/adsl/statistics
  [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/dsl/statistics
  STATFILE=$1_bytes
  cat ${STATDIR}/${STATFILE}
else
  grep -A3 internet /proc/net/avm_pa/vpids | grep RX | awk '{print $7}'
fi

In zabbix agent mache ich dann:
Code:
UserParameter=dsl.bytes.tx, dsl.bytes tx
UserParameter=dsl.bytes.rx, dsl.bytes rx

Getestet ;-)
Code:
root@:/var/mod/root# dsl.bytes rx
16709
root@Ateliers-kantoor:/var/mod/root# dsl.bytes tx
154813
root@:/var/mod/root# wget -O /dev/null http://nl.releases.ubuntu.com/precise/ubuntu-12.04.4-d
esktop-amd64.iso
--2014-03-23 14:13:50--  http://nl.releases.ubuntu.com/precise/ubuntu-12.04.4-desktop-amd64.iso
Resolving nl.releases.ubuntu.com... 2001:7b8:3:37:213:136:29:219, 213.136.29.219
Connecting to nl.releases.ubuntu.com|2001:7b8:3:37:213:136:29:219|:80... failed: Network is unreachable.
Connecting to nl.releases.ubuntu.com|213.136.29.219|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 768606208 (733M) [application/x-iso9660-image]
Saving to: '/dev/null'

100%[===================================================================>] 768,606,208 2.64MB/s   in 4m 42s

2014-03-23 14:18:31 (2.60 MB/s) - '/dev/null' saved [768606208/768606208]

root@:/var/mod/root# dsl.bytes rx
805882177
root@:/var/mod/root# dsl.bytes tx
19195758

Auch in Zabbix klappt es..... :D
 
Zuletzt bearbeitet:
Ich habe mehrere fritzbox kontrolliert und alle haben /proc/net/avm_pa/vpids
 
Die "alten" FritzBoxen haben keinen AVM PacketAccelerator. Aber alle Boxen mit Fritz!OS 6 sollten den schon haben, wenn man ihn nicht absichtlich rauspatcht.
 
Ich habe 2 7270 mit dieselben Firmware hochgeladen....
Bei einer bleiben alle counters in /proc/net/avm_pa/vpids auf 0
Deswegen habe ich dsl.bytes geändert.....

@olistudent.... Weisst du welche Einstellung das gemacht hat????

Ich bin jetzt eigentlich nicht mehr sicher ob ich jetzt die richtigen Daten bekomme....
Es sieht jedoch so aus ob es ungefähr ubereinstimmt....

freetz@freetz:~/trunk$ cat make/zabbix_agentd-support/files/root/sbin/dsl.bytes
Code:
#!/bin/sh

# the parameter rx or tx has to be given
echo "$1" | egrep -q '^(tx|rx)$' || exit 1

# Fetch the corresponding DSL-speed of physical layer
if [ "$1" = 'tx' ] ; then
  STATDIR=/sys/class/net/vdsl/statistics
  [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/adsl/statistics
  [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/dsl/statistics
  STATFILE=$1_bytes
  DSL_BYTES=`cat ${STATDIR}/${STATFILE}`
else
  DSL_BYTES=`grep -A3 internet /proc/net/avm_pa/vpids 2>/dev/null | grep RX | awk '{print $7}' | tr -cd '0-9'`
  if [ -z "${DSL_BYTES}" ] || [ "${DSL_BYTES}" = "0" ] ; then
    STATDIR=/sys/class/net/vdsl/statistics
    [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/adsl/statistics
    [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/dsl/statistics
    STATFILE=$1_bytes
    DSL_BYTES=`cat ${STATDIR}/${STATFILE}`
  fi
fi
echo ${DSL_BYTES}
 
Zuletzt bearbeitet:
Wo ist der Unterschied bei diesen beiden Boxen? Sind beide DSL-Router oder sind die unterschiedlich konfiguriert?
 
Beider DSL routers. Da gibt's natürlich ein Unterschied aber kein das ich bedenken kann. Später dieser Tag mache ich ein diff des configs... vielleicht fällt mir etwas auf.
 
Beide gleiche AVM Firmware? Beide DSL-Router mit gleichem Zugang? Also kein Internet über LAN1 oder so? Dann würde mich es sehr wundern, wenn sich die Zähler unterscheiden würden...
 
Einer ist ein PPPoA-Verbindung... Dieser hat kein daten in /proc/net/avm_pa/vpids
Die andere ein IPoA

PPPoA-verbindungen haben wir normalerweise nicht... deswegen habe ich nicht daran gedacht....
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,839
Beiträge
2,219,264
Mitglieder
371,543
Neuestes Mitglied
Brainbanger
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.