[LU-16959] LNet: auto-tune ARP-related sysctl setting Created: 13/Jul/23  Updated: 14/Dec/23

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Serguei Smirnov Assignee: Frank Sehr
Resolution: Unresolved Votes: 0
Labels: lnet

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

Default linux settings for net.ipv4.neigh.default.gc_thresh* may be too low:

net.ipv4.neigh.default.gc_thresh1 = 128
net.ipv4.neigh.default.gc_thresh2 = 512
net.ipv4.neigh.default.gc_thresh3 = 1024

For example, this can cause the garbage collector in the kernel to start deleting entries in the table once the table size exceeds gc_thresh2, leading to unnecessary ARP traffic.

If IP to MAC mappings in the system are permanent, setting a higher gc_thresh1 may also help avoid unnecessary ARP traffic as this is the threshold for when entries start timing out. 

In large systems this may cause troubles with evictions, etc.

The memory cost of having larger tables is low, so It is proposed to use the following settings:

net.ipv4.neigh.default.gc_thresh1 = 8192
net.ipv4.neigh.default.gc_thresh2 = 16384
net.ipv4.neigh.default.gc_thresh3 = 32768

The user should be able to make the choice to manage the settings on their own, probably via a module parameter.

Note that there's the similar set of IPv6 parameters to consider.



 Comments   
Comment by Gerrit Updater [ 01/Dec/23 ]

"Frank Sehr <fsehr@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/53310
Subject: LU-16959 lnet: auto-tune ARP-related sysctl setting
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 8873a56bdf7fee85c9a598d6a4e32352fc7c33b5

Generated at Sat Feb 10 03:31:25 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.