netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* conntrack timers usage
@ 2008-10-12 22:49 Denys Fedoryshchenko
  2008-10-13 13:20 ` Patrick McHardy
  0 siblings, 1 reply; 2+ messages in thread
From: Denys Fedoryshchenko @ 2008-10-12 22:49 UTC (permalink / raw)
  To: netdev, netfilter

The story with excessive timers usage continue.

Here is my results from /proc/timer_stats for 30 seconds (150Mbps traffic)

This is "non-netfilter" related events

Router-Dora ~ # cat /proc/timer_stats |grep -v '__nf'
Timer Stats Version: v0.2
Sample period: 30.002 s
Overflow: 45261 entries
  300,  3308 insmod           ipmi_init_msghandler (ipmi_timeout)
 1032,     1 swapper          neigh_table_init_no_netlink 
(neigh_periodic_timer)
    3,     0 swapper          sk_reset_timer (tcp_delack_timer)
  298,  1342 vconfig          garp_join_timer_arm (garp_join_timer)
 1621,     0 swapper          qdisc_watchdog_schedule (qdisc_watchdog)
  169,     6 ksoftirqd/1      qdisc_watchdog_schedule (qdisc_watchdog)
    3,     6 ksoftirqd/1      neigh_add_timer (neigh_timer_handler)
 1417,     0 swapper          qdisc_watchdog_schedule (qdisc_watchdog)
    2,     6 ksoftirqd/1      neigh_add_timer (neigh_timer_handler)
  294,  1352 vconfig          garp_join_timer_arm (garp_join_timer)
   15,     0 swapper          e1000_intr (e1000_watchdog)
    3,     1 swapper          enqueue_task_rt (sched_rt_period_timer)
   60,     0 swapper          clocksource_register (clocksource_watchdog)
    2,  5003 sshd             sk_reset_timer (tcp_write_timer)
  30D,     1 swapper          schedule_delayed_work_on (delayed_work_timer_fn)
   30,  1128 insmod           queue_delayed_work (delayed_work_timer_fn)
  30D,     1 swapper          schedule_delayed_work_on (delayed_work_timer_fn)
    1,     0 swapper          neigh_add_timer (neigh_timer_handler)
    1,     0 swapper          neigh_add_timer (neigh_timer_handler)
6318 total events, 210.429 events/sec

And here is netfilter usage, looks like ....
I did also sysctl -w net.netfilter.nf_conntrack_acct=0

   1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
    1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
    1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
    1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
    1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
    1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
....

Router-Dora ~ # cat /proc/timer_stats |grep '__nf'|wc -l
1005

Is it important to do so much calls to timers in conntrack?
Precision on it is not more than 1 second.


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: conntrack timers usage
  2008-10-12 22:49 conntrack timers usage Denys Fedoryshchenko
@ 2008-10-13 13:20 ` Patrick McHardy
  0 siblings, 0 replies; 2+ messages in thread
From: Patrick McHardy @ 2008-10-13 13:20 UTC (permalink / raw)
  To: Denys Fedoryshchenko; +Cc: netdev, netfilter, Netfilter Development Mailinglist

Denys Fedoryshchenko wrote:
> The story with excessive timers usage continue.
> 
> Here is my results from /proc/timer_stats for 30 seconds (150Mbps traffic)
> ...
> And here is netfilter usage, looks like ....
> I did also sysctl -w net.netfilter.nf_conntrack_acct=0
> 
>    1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
>     1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
>     1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
>     1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
>     1,     0 swapper          __nf_ct_refresh_acct (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
>     1,     0 swapper          __nf_conntrack_confirm (death_by_timeout)
> ....
> 
> Router-Dora ~ # cat /proc/timer_stats |grep '__nf'|wc -l
> 1005
> 
> Is it important to do so much calls to timers in conntrack?
> Precision on it is not more than 1 second.

There's one timer per conntrack. As you noticed, we only update
timers for delta >= 1s, but with many conntracks, that still adds
up to a lot.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-10-13 13:20 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-12 22:49 conntrack timers usage Denys Fedoryshchenko
2008-10-13 13:20 ` Patrick McHardy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).