mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 09:12:39 +00:00
15fbb91666
Use the kernel's built-in formula for computing this value. The value applied by OpenWRT's sysctl configuration file does not scale with the available memory, under-using hardware capabilities. Also, that formula also influences net.netfilter.nf_conntrack_buckets, which should improve conntrack performance in average (fewer connections per hashtable bucket). Backport upstream commit for its effect on the number of connections per hashtable bucket. Apply a hack patch to set the RAM size divisor to a more reasonable value (2048, down from 16384) for our use case, a typical router handling several thousands of connections. Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com> Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
26 lines
1006 B
Diff
26 lines
1006 B
Diff
From 804fbb3f2ec9283f7b778e057a68bfff440a0be6 Mon Sep 17 00:00:00 2001
|
|
From: Rui Salvaterra <rsalvaterra@gmail.com>
|
|
Date: Wed, 30 Mar 2022 22:51:55 +0100
|
|
Subject: [PATCH] kernel: ct: size the hashtable more adequately
|
|
|
|
To set the default size of the connection tracking hash table, a divider of
|
|
16384 becomes inadequate for a router handling lots of connections. Divide by
|
|
2048 instead, making the default size scale better with the available RAM.
|
|
|
|
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
|
|
---
|
|
net/netfilter/nf_conntrack_core.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/net/netfilter/nf_conntrack_core.c
|
|
+++ b/net/netfilter/nf_conntrack_core.c
|
|
@@ -2576,7 +2576,7 @@ int nf_conntrack_init_start(void)
|
|
|
|
if (!nf_conntrack_htable_size) {
|
|
nf_conntrack_htable_size
|
|
- = (((nr_pages << PAGE_SHIFT) / 16384)
|
|
+ = (((nr_pages << PAGE_SHIFT) / 2048)
|
|
/ sizeof(struct hlist_head));
|
|
if (BITS_PER_LONG >= 64 &&
|
|
nr_pages > (4 * (1024 * 1024 * 1024 / PAGE_SIZE)))
|