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

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
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

[email protected]:/var/mod/root# cat /sys/class/net/vdsl/statistics/tx_bytes
77194035
ro[email protected]:/var/mod/root# cat /sys/class/net/vdsl/statistics/rx_bytes
609336
[email protected]:/var/mod/root# wget -O /dev/null http://nl.releases.ubuntu.com/precise/ubuntu-12.04.4-desktop-amd64.iso
[email protected]:/sys/class/net# cat /sys/class/net/vdsl/statistics/rx_bytes
661697
[email protected]:/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....

[email protected]:/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???
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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.....
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
0
Punkte
0
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.
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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
 

RomMon

Neuer User
Mitglied seit
29 Aug 2011
Beiträge
105
Punkte für Reaktionen
0
Punkte
16
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.
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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?
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
0
Punkte
0
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?
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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
[email protected]:/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.....

[email protected]:~/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}
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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:
[email protected]:/var/mod/root# dsl.bytes rx
16709
[email protected]:/var/mod/root# dsl.bytes tx
154813
[email protected]:/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]

[email protected]:/var/mod/root# dsl.bytes rx
805882177
[email protected]:/var/mod/root# dsl.bytes tx
19195758
Auch in Zabbix klappt es..... :D
 
Zuletzt bearbeitet:

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
Ich habe mehrere fritzbox kontrolliert und alle haben /proc/net/avm_pa/vpids
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Die "alten" FritzBoxen haben keinen AVM PacketAccelerator. Aber alle Boxen mit Fritz!OS 6 sollten den schon haben, wenn man ihn nicht absichtlich rauspatcht.
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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....

[email protected]:~/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:

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Wo ist der Unterschied bei diesen beiden Boxen? Sind beide DSL-Router oder sind die unterschiedlich konfiguriert?
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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...
 

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
440
Punkte für Reaktionen
3
Punkte
18
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

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,382
Beiträge
2,021,800
Mitglieder
349,991
Neuestes Mitglied
maik0055