netfilter: conntrack: adjust nf_conntrack_buckets default value
Manually bumping either nf_conntrack_buckets or nf_conntrack_max has become a common task as our Linux servers tend to serve more and more clients/applications, so let's adjust nf_conntrack_buckets this to a more updated value. Now for systems with more than 4GB of memory, nf_conntrack_buckets becomes 65536 instead of 16384, resulting in nf_conntrack_max=256k entries. Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
f96fe22567
commit
88eab472ec
|
@ -11,7 +11,8 @@ nf_conntrack_buckets - INTEGER (read-only)
|
|||
Size of hash table. If not specified as parameter during module
|
||||
loading, the default size is calculated by dividing total memory
|
||||
by 16384 to determine the number of buckets but the hash table will
|
||||
never have fewer than 32 or more than 16384 buckets.
|
||||
never have fewer than 32 and limited to 16384 buckets. For systems
|
||||
with more than 4GB of memory it will be 65536 buckets.
|
||||
|
||||
nf_conntrack_checksum - BOOLEAN
|
||||
0 - disabled
|
||||
|
|
|
@ -1624,13 +1624,18 @@ int nf_conntrack_init_start(void)
|
|||
for (i = 0; i < CONNTRACK_LOCKS; i++)
|
||||
spin_lock_init(&nf_conntrack_locks[i]);
|
||||
|
||||
/* Idea from tcp.c: use 1/16384 of memory. On i386: 32MB
|
||||
* machine has 512 buckets. >= 1GB machines have 16384 buckets. */
|
||||
if (!nf_conntrack_htable_size) {
|
||||
/* Idea from tcp.c: use 1/16384 of memory.
|
||||
* On i386: 32MB machine has 512 buckets.
|
||||
* >= 1GB machines have 16384 buckets.
|
||||
* >= 4GB machines have 65536 buckets.
|
||||
*/
|
||||
nf_conntrack_htable_size
|
||||
= (((totalram_pages << PAGE_SHIFT) / 16384)
|
||||
/ sizeof(struct hlist_head));
|
||||
if (totalram_pages > (1024 * 1024 * 1024 / PAGE_SIZE))
|
||||
if (totalram_pages > (4 * (1024 * 1024 * 1024 / PAGE_SIZE)))
|
||||
nf_conntrack_htable_size = 65536;
|
||||
else if (totalram_pages > (1024 * 1024 * 1024 / PAGE_SIZE))
|
||||
nf_conntrack_htable_size = 16384;
|
||||
if (nf_conntrack_htable_size < 32)
|
||||
nf_conntrack_htable_size = 32;
|
||||
|
|
Loading…
Reference in a new issue