[FIXED] Monitoring Not Showing Queue Traffic?



  • Hi,

    I've got some queues setup for my traffic.  That's all working fine, traffic goes in the right queues etc, I'm really pleased with how well it works.

    This is what pftop -v queue shows me:

    
    pfTop: Up Queue 1-6/6, View: queue, Cache: 10000                                                                                         08:53:25
    
    QUEUE                             BW SCH  PRIO     PKTS    BYTES   DROP_P   DROP_B QLEN BORROW SUSPEN     P/S     B/S
    Bulk                                 priq    0        0        0        0        0    0                     0       0
    Low                                  priq        219206 25099892        0        0    0                     3     460
    Medium                               priq    2   890428  102133K        0        0    0                     0       0
    High                                 priq    3     2169   321266        0        0    0                   0.2       8
    VeryHigh                             priq    5    12646   988551        0        0    0                     0       0
    Priority                             priq    7     1269   311483        0        0    0                     0       0
    
    

    However this is what the monitoring page is showing me:

    There's no traffic at all, as far as it's concerned.  I have do "Use RAM Disk" ticked - could this be the problem?
    Other things like traffic stats etc show as I expect.

    Thanks.



  • Try 'pftop -s1 -v queue' (refreshes every 1 second)

    or Status -> Queues



  • Yes, both of those show the correct information.
    I just wondered why the monitoring wasn't working correctly - it's interesting (but only that, interesting, it doesn't matter) to go back and look how the pfSense box handled heavy load and what traffic went where.

    I wonder if I should submit a bug report?

    Thanks!



  • @muppet:


    I wonder if I should submit a bug report?
    ...

    Probably, but many details will be needed. You should start from a fresh install, document every change you makebup to the point where the problem occurs (and perhaps when it doesn't), then repeat this process so that the pfSense devs can reliably re-create your problem and quickly focus on fixing an obvious problem.

    Good luck!



  • When adding queues, it is a good idea to reset the firewall state table, as existing connections won't be tagged yet, only new connections.



  • Hello again.
    This annoyed me enough I spent some time looking at it, and I found the problem and solution.

    Graphs are updated by this script: /var/db/rrd/updaterrd.sh

    Within it, this is the section that updates the traffic/queue graphs:

    
    # polling packets for interface wan pppoe0
    /usr/bin/nice -n20 /usr/local/bin/rrdtool update /var/db/rrd/wan-packets.rrd N:`/sbin/pfctl -vvsI -i pppoe0 | awk '\
    /In4\/Pass/ { b4pi = $4 };/Out4\/Pass/ { b4po = $4 };/In4\/Block/ { b4bi = $4 };/Out4\/Block/ { b4bo = $4 };\
    /In6\/Pass/ { b6pi = $4 };/Out6\/Pass/ { b6po = $4 };/In6\/Block/ { b6bi = $4 };/Out6\/Block/ { b6bo = $4 };\
    END {print b4pi ":" b4po ":" b4bi ":" b4bo ":" b6pi ":" b6po ":" b6bi ":" b6bo};'`
    ` pfctl -vsq -i pppoe0 | awk 'BEGIN {printf "/usr/bin/nice -n20 /usr/local/bin/rrdtool update /var/db/rrd/wan-queues.rrd " } { if (($1 == "queue") && ( $2 ~ /^q/ )) {  dsname = dsname ":" $2 ;  q=1; }  else if (($4 == "bytes:") && ( q ==
     1 ) ) {  dsdata = dsdata ":" $5 ;  q=0; } } END {  dsname = substr(dsname,2);  dsdata = substr(dsdata,2);  printf "-t " dsname " N:" dsdata }'  dsname="" dsdata=""`
    
    ` pfctl -vsq -i pppoe0 | awk 'BEGIN {printf "/usr/bin/nice -n20 /usr/local/bin/rrdtool update /var/db/rrd/wan-queuedrops.rrd " } { if (($1 == "queue") && ( $2 ~ /^q/ )) {  dsname = dsname ":" $2 ;  q=1; }  else if (($4 == "bytes:") && (
    q == 1 ) ) {  dsdata = dsdata ":" $8 ;  q=0; } } END {  dsname = substr(dsname,2);  dsdata = substr(dsdata,2);  printf "-t " dsname " N:" dsdata }'  dsname="" dsdata=""`
    
    

    So to graph queues, we're running this command: pfctl -vsq -i pppoe0

    If I run this on my pfSense, I get the following:

    
    [2.4.2-RELEASE][admin@trogdor]/etc: pfctl -vsq -i pppoe0
    queue Bulk on pppoe0 bandwidth 1Mb priority 0 qlimit 455 fairq( codel linkshare 20Mb )
      [ pkts:          0  bytes:          0  dropped pkts:      0 bytes:      0 ]
      [ qlength:   0/455 ]
    queue Low on pppoe0 bandwidth 5Mb qlimit 256 fairq( codel default linkshare 20Mb )
      [ pkts:       3032  bytes:     667799  dropped pkts:      0 bytes:      0 ]
      [ qlength:   0/256 ]
    queue Medium on pppoe0 bandwidth 10Mb priority 2 qlimit 256 fairq( codel linkshare 20Mb )
      [ pkts:       2659  bytes:     895810  dropped pkts:      0 bytes:      0 ]
      [ qlength:   0/256 ]
    queue High on pppoe0 bandwidth 3.30Mb priority 3 qlimit 32 fairq( codel linkshare 20Mb )
      [ pkts:          0  bytes:          0  dropped pkts:      0 bytes:      0 ]
      [ qlength:   0/ 32 ]
    queue VeryHigh on pppoe0 bandwidth 500Kb priority 4 qlimit 16 fairq( linkshare 20Mb )
      [ pkts:        333  bytes:      27377  dropped pkts:      0 bytes:      0 ]
      [ qlength:   0/ 16 ]
    queue Priority on pppoe0 bandwidth 200Kb priority 7 qlimit 8 fairq( linkshare 20Mb )
      [ pkts:          4  bytes:        176  dropped pkts:      0 bytes:      0 ]
      [ qlength:   0/  8 ]
    
    

    Hmm, so that works just fine.  Let's look at that sed line a bit closer: { if (($1 == "queue") && ( $2 ~ /^q/ ))

    HANG ON A SECOND.

    If the queue name doesn't begin with the letter q, my traffic is not going to be collected by this!

    The simple fix: A traffic queue's name must start with the letter q

    so I renamed my queues from Bulk, Low, Medium etc to qBulk, qLow, qMedium etc and I'm now getting lovely queue graphs.

    This little quirk doesn't appear to be documented anywhere, and of course if you use the Wizard (as 99% of sensible, normal people will do) the queues are all created with q in front of their name.

    I hope this helps someone in the future!


Log in to reply