From: Badalian Vyacheslav <slavon@bigtelecom.ru>
To: netdev@vger.kernel.org
Subject: Re: HTB classify perfomance
Date: Fri, 11 Jan 2008 11:53:19 +0300 [thread overview]
Message-ID: <47872E7F.6090300@bigtelecom.ru> (raw)
In-Reply-To: <47872845.8000702@bigtelecom.ru>
New info. Wait some time and reset oprifile statistic (i think info
abount ipt_unregister_table its get what run some script... ).
That clear info after add FILTER:
First PC
CPU: P4 / Xeon, speed 3409.96 MHz (estimated)
Counted GLOBAL_POWER_EVENTS events (time during which processor is not
stopped) with a unit mask of 0x01 (mandatory) count 100000
samples % app name symbol name
1158171 19.1292 vmlinux ipt_do_table
722416 11.9319 vmlinux e1000_intr
627406 10.3627 vmlinux u32_classify
565286 9.3367 vmlinux e1000_irq_enable
269309 4.4481 vmlinux htb_dequeue
191016 3.1550 vmlinux ip_route_input
187127 3.0907 vmlinux sfq_dequeue
172775 2.8537 vmlinux e1000_clean_tx_irq
154654 2.5544 vmlinux e1000_clean_rx_irq
146926 2.4267 vmlinux sfq_enqueue
116782 1.9289 vmlinux htb_add_to_wait_tree
79398 1.3114 vmlinux rb_erase
74411 1.2290 vmlinux e1000_xmit_frame
65451 1.0810 vmlinux kfree
59966 0.9904 vmlinux irq_entries_start
59893 0.9892 vmlinux eth_type_trans
55510 0.9168 vmlinux dev_queue_xmit
52688 0.8702 vmlinux e1000_alloc_rx_buffers
> Hello all.
> I N days try to tune system for best performance and see strange thing.
>
> Have N htb classes
> root class is HTB. param: default 7 (if not classify - go to 1:7)
>
> filters classify only mached ip. others go to HTB DEFAULT rule.
>
> run oprofile:
> First pc (htb and iptables compile in kernel):
> CPU: P4 / Xeon, speed 3409.94 MHz (estimated)
> Counted GLOBAL_POWER_EVENTS events (time during which processor is not
> stopped) with a unit mask of 0x01 (mandatory) count 100000
> samples % app name symbol name
> 743501 47.6081 vmlinux htb_classify
> 208718 13.3647 vmlinux ipt_do_table
> 94473 6.0493 vmlinux u32_classify
> 43088 2.7590 vmlinux e1000_intr
> 35086 2.2466 vmlinux e1000_clean_tx_irq
> 34925 2.2363 vmlinux ip_route_input
> 33972 2.1753 vmlinux e1000_irq_enable
> 33788 2.1635 vmlinux htb_dequeue
> 29197 1.8696 vmlinux e1000_clean_rx_irq
> 20177 1.2920 vmlinux sfq_dequeue
> 17825 1.1414 vmlinux sfq_enqueue
> 15135 0.9691 vmlinux e1000_xmit_frame
> 15123 0.9684 vmlinux eth_type_trans
> 13081 0.8376 vmlinux kfree
> 12153 0.7782 vmlinux dev_queue_xmit
>
> Second PC (htb and iptables is modules)
> CPU: P4 / Xeon with 2 hyper-threads, speed 3192.35 MHz (estimated)
> Counted GLOBAL_POWER_EVENTS events (time during which processor is not
> stopped) with a unit mask of 0x01 (mandatory) count 100000
> samples % app name symbol name
> 102108 30.7351 sch_htb (no symbols)
> 21559 6.4894 vmlinux e1000_intr
> 17428 5.2459 cls_u32 (no symbols)
> 13887 4.1801 ip_tables (no symbols)
> 11984 3.6072 sch_sfq (no symbols)
> 11785 3.5473 vmlinux e1000_irq_enable
> 9684 2.9149 vmlinux mwait_idle_with_hints
> 9227 2.7774 vmlinux e1000_clean_rx_irq
> 8686 2.6145 vmlinux e1000_clean_tx_irq
> 6747 2.0309 vmlinux ip_route_input
> 6533 1.9665 vmlinux irq_entries_start
> 6419 1.9322 vmlinux e1000_xmit_frame
> 5605 1.6871 vmlinux dev_queue_xmit
> 4030 1.2131 vmlinux __kfree_skb
> 3997 1.2031 vmlinux __qdisc_run
> 3931 1.1833 vmlinux e1000_clean
> 3565 1.0731 vmlinux net_rx_action
> 3518 1.0589 vmlinux ip_rcv
> 3377 1.0165 vmlinux getnstimeofday
> 3215 0.9677 vmlinux rb_erase
> 2973 0.8949 vmlinux eth_type_trans
> 2707 0.8148 vmlinux ip_output
> 2586 0.7784 vmlinux handle_fasteoi_irq
>
> Hmm.. strange... look to code htb_classify i see only one place where
> it may get many CPU.
>
> ok... try to add to the end of tc batch file..
> filter add dev eth1 protocol ip parent 1:0 prio 5 u32 ht 800:: match
> ip protocol 1 0x00 flowid 1:7
> filter add dev eth0 protocol ip parent 1:0 prio 5 u32 ht 800:: match
> ip protocol 1 0x00 flowid 1:7
> (offtopic... strange... i not found that i can add filter without any
> match)
>
> Wow!
> CPU: P4 / Xeon, speed 3409.94 MHz (estimated)
> Counted GLOBAL_POWER_EVENTS events (time during which processor is not
> stopped) with a unit mask of 0x01 (mandatory) count 100000
> samples % app name symbol name
> 153128 20.9497 vmlinux ipt_unregister_table
> 121569 16.6321 vmlinux e1000_request_irq
> 60727 8.3082 vmlinux e1000_update_itr
> 47241 6.4631 vmlinux u32_delete
> 25836 3.5347 vmlinux htb_dequeue
> 18304 2.5042 vmlinux ipt_do_table
> 15980 2.1862 vmlinux mwait_idle_with_hints
> 15977 2.1858 vmlinux irq_entries_start
> 13337 1.8247 vmlinux htb_classify
> 12512 1.7118 vmlinux __ip_route_output_key
> 8821 1.2068 vmlinux sfq_init
> 8495 1.1622 vmlinux e1000_clean_rx_irq
> 8408 1.1503 vmlinux htb_enqueue
> 8018 1.0970 vmlinux e1000_xmit_frame
> 7867 1.0763 vmlinux e1000_clean_tx_ring
> 6336 0.8668 vmlinux htb_delete
> 5828 0.7973 vmlinux ___pskb_trim
> 5781 0.7909 vmlinux s_start
> 5234 0.7161 vmlinux e1000_clean_rx_irq_ps
> 4504 0.6162 vmlinux cache_alloc_refill
> 4133 0.5654 vmlinux radix_tree_delete
>
> Second PC
> CPU: P4 / Xeon with 2 hyper-threads, speed 3192.35 MHz (estimated)
> Counted GLOBAL_POWER_EVENTS events (time during which processor is not
> stopped) with a unit mask of 0x01 (mandatory) count 100000
> samples % app name symbol name
> 37747 13.3616 sch_htb (no symbols)
> 23606 8.3560 vmlinux e1000_intr
> 18158 6.4275 cls_u32 (no symbols)
> 14726 5.2127 ip_tables (no symbols)
> 13137 4.6502 vmlinux e1000_irq_enable
> 12307 4.3564 sch_sfq (no symbols)
> 9974 3.5306 vmlinux mwait_idle_with_hints
> 9855 3.4884 vmlinux e1000_clean_rx_irq
> 9077 3.2131 vmlinux e1000_clean_tx_irq
> 7293 2.5816 vmlinux irq_entries_start
> 6956 2.4623 vmlinux ip_route_input
> 6652 2.3547 vmlinux e1000_xmit_frame
> 6202 2.1954 vmlinux dev_queue_xmit
> 4403 1.5586 vmlinux __kfree_skb
> 4230 1.4973 vmlinux net_rx_action
> 4224 1.4952 vmlinux e1000_clean
> 4042 1.4308 vmlinux __qdisc_run
> 3513 1.2435 vmlinux ip_rcv
> 3509 1.2421 vmlinux getnstimeofday
> 3377 1.1954 vmlinux rb_erase
> 3191 1.1295 vmlinux eth_type_trans
> 2953 1.0453 vmlinux handle_fasteoi_irq
> 2830 1.0018 vmlinux ip_output
>
>
> Looks great!
> I hope i found interesting place for optimization.
>
> Thanks.
> Slavon.
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
prev parent reply other threads:[~2008-01-11 8:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-11 8:26 HTB classify perfomance Badalian Vyacheslav
2008-01-11 8:53 ` Badalian Vyacheslav [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47872E7F.6090300@bigtelecom.ru \
--to=slavon@bigtelecom.ru \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.