base-files: increase vm.min_free_kbytes
Network drivers typically allocate memory in atomic context. For that to be reliable, there needs to be enough free memory. Set the value heuristically based on the total amount of system RAM. Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
df3a2ca1a9
commit
5c9cc7b7f8
1 changed files with 16 additions and 0 deletions
|
@ -2,7 +2,23 @@
|
||||||
# Copyright (C) 2006 OpenWrt.org
|
# Copyright (C) 2006 OpenWrt.org
|
||||||
|
|
||||||
START=11
|
START=11
|
||||||
|
|
||||||
|
set_vm_min_free() {
|
||||||
|
mem="$(grep MemTotal /proc/meminfo | awk '{print $2}')"
|
||||||
|
if [ "$mem" -gt 65536 ]; then # 128M
|
||||||
|
val=16384
|
||||||
|
elif [ "$mem" -gt 32768 ]; then # 64M
|
||||||
|
val=8192
|
||||||
|
elif [ "$mem" -gt 16384 ]; then # 32M
|
||||||
|
val=4096
|
||||||
|
else
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
sysctl -qw vm.min_free_kbytes="$val"
|
||||||
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
|
set_vm_min_free
|
||||||
for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do
|
for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do
|
||||||
[ -f "$CONF" ] && sysctl -p "$CONF" -e >&-
|
[ -f "$CONF" ] && sysctl -p "$CONF" -e >&-
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in a new issue