tc aracı Linux'taki kuyruklama düzenlerinin istatistiklerini toplamayı mümkün kılar. Talihsizliğe bakın ki, istatistik sonuçları yazarlar tarafından açıklanmamıştır (Neyi açıklamışlar ki zaten; tc bir sır küpü) dolayısıyla çoğunlukla onları kullanamazsınız. Burada HTB istatistiklerini anlamanıza yardımcı olmaya çalışacağım. Önce HTB istatistiklerine bir bütün olarak bakalım. Aşağıdaki satırlar
Paylaşım Hiyerarşisi bölümündeki bireştirim sırasında alınmıştır.
# tc -s -d qdisc show dev eth0
qdisc pfifo 22: limit 5p
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc pfifo 21: limit 5p
Sent 2891500 bytes 5783 pkts (dropped 820, overlimits 0)
qdisc pfifo 20: limit 5p
Sent 1760000 bytes 3520 pkts (dropped 3320, overlimits 0)
qdisc htb 1: r2q 10 default 1 direct_packets_stat 0
Sent 4651500 bytes 9303 pkts (dropped 4140, overlimits 34251)
İlk üç düzen HTB'nin çocuklarıdır. PFIFO istatistikleri kendilerini zaten açıkladıkları için onları yoksayabiliriz.
overlimits, düzenin bir paketi kaç kere geciktirdiğini söyler.
direct_packets_stat, kaç paketin doğrudan kuyruktan gönderildiğini söyler. Diğer istatistikler kendi kendilerini zaten açıklıyor. Sınıfların istatistiklerine bakalım:
tc -s -d class show dev eth0
class htb 1:1 root prio 0 rate 800Kbit ceil 800Kbit burst 2Kb/8 mpu 0b
cburst 2Kb/8 mpu 0b quantum 10240 level 3
Sent 5914000 bytes 11828 pkts (dropped 0, overlimits 0)
rate 70196bps 141pps
lended: 6872 borrowed: 0 giants: 0
class htb 1:2 parent 1:1 prio 0 rate 320Kbit ceil 4000Kbit burst 2Kb/8 mpu 0b
cburst 2Kb/8 mpu 0b quantum 4096 level 2
Sent 5914000 bytes 11828 pkts (dropped 0, overlimits 0)
rate 70196bps 141pps
lended: 1017 borrowed: 6872 giants: 0
class htb 1:10 parent 1:2 leaf 20: prio 1 rate 224Kbit ceil 800Kbit burst ¬
2Kb/8 mpu 0b
cburst 2Kb/8 mpu 0b quantum 2867 level 0
Sent 2269000 bytes 4538 pkts (dropped 4400, overlimits 36358)
rate 14635bps 29pps
lended: 2939 borrowed: 1599 giants: 0
Çıktıyı kısaltmak için 1:11 ve 1:12 sınıflarını sildim. Gördüğünüz gibi bizim ayarladığımız parametreler var. Ayrıca level (seviye) ve DRR quantum (katkıpayı) bilgileri de var.
overlimits, sınıfın paketi kaç kere göndermek istediğini fakat hız/tavan sınırlamalarından dolayı yapamadığını gösterir (şu an sadece terkedilenler sayılmış).
rate ve pps sınıf üzerinden giden güncel hızı (10 saniyelik ortalama) söyler. Bu geçit tarafından kullanılan hızla aynıdır.
lended, bu sınıf tarafından (hızından) bağışlanmış paket sayısıdır. borrowed sınıfa atadan bağışlanan paket sayısıdır. Başka sınıflara bağışlananlar daima yardımlaşma geçişliyken sınıf için hesaplanır (1:10, 1:2'den bağış alırken 1:2 de 1:1'den bağış alır; 1:10 ve 1:2 bağış sayaçlarının ikisi de arttırımlıdır).
giants, tc komutunda ayarlı MTU'dan büyük olan paketlerin sayısıdır. HTB bunlarla çalışır fakat hızlar hepsinde doğru olmayacaktır. tc'nize MTU ekleyin (öntanımlı olarak 1600 bayttır).