mirror of
https://git.yoctoproject.org/poky
synced 2026-05-02 09:32:14 +02:00
nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd
On systemd, it set RLIMIT_NOFILE to 512k, since do_testimage
for core-image-sato-sdk has memory limitation (256Mib) which
caused rpc.statd failed with out of memory.
[ 531.306146] Out of memory: Kill process 193 (rpc.statd) score 200 or sacrifice child
The rpc.statd and rpc.mountd allocates memory according to
RLIMIT_NOFILE, so decrease it to 4k to keep sync with sysvinit
After applying the patch, the memory cost is the same with sysvinit:
root@qemux86-64:~# systemctl status nfs-statd
* nfs-statd.service - NFS status monitor for NFSv2/3 locking.
Loaded: loaded (/lib/systemd/system/nfs-statd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-08-20 03:16:18 UTC; 3min 26s ago
Main PID: 343 (rpc.statd)
Tasks: 1 (limit: 271)
Memory: 1.0M
root@qemux86-64:~# systemctl status nfs-mountd
* nfs-mountd.service - NFS Mount Daemon
Loaded: loaded (/etc/systemd/system/nfs-mountd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-08-20 03:19:01 UTC; 1min 21s ago
Main PID: 451 (rpc.mountd)
Tasks: 1 (limit: 271)
Memory: 736.0K
Suggested-by: Chen Qi <qi.chen@windriver.com>
(From OE-Core rev: 6d61cd2bdc9e326eaa59082b5dd7423e522b96d3)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
66990a7ac7
commit
0d5c966c30
@@ -11,6 +11,7 @@ ConditionPathExists=@SYSCONFDIR@/exports
|
||||
[Service]
|
||||
EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
|
||||
ExecStart=@SBINDIR@/rpc.mountd -F $MOUNTD_OPTS
|
||||
LimitNOFILE=@HIGH_RLIMIT_NOFILE@
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
@@ -8,6 +8,7 @@ After=network.target nss-lookup.target rpcbind.service
|
||||
[Service]
|
||||
EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
|
||||
ExecStart=@SBINDIR@/rpc.statd -F $STATD_OPTS
|
||||
LimitNOFILE=@HIGH_RLIMIT_NOFILE@
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
@@ -119,6 +119,9 @@ do_compile_prepend() {
|
||||
make clean
|
||||
}
|
||||
|
||||
# Works on systemd only
|
||||
HIGH_RLIMIT_NOFILE ??= "4096"
|
||||
|
||||
do_install_append () {
|
||||
install -d ${D}${sysconfdir}/init.d
|
||||
install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver
|
||||
@@ -133,6 +136,7 @@ do_install_append () {
|
||||
install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/
|
||||
sed -i -e 's,@SBINDIR@,${sbindir},g' \
|
||||
-e 's,@SYSCONFDIR@,${sysconfdir},g' \
|
||||
-e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \
|
||||
${D}${systemd_unitdir}/system/*.service
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||
install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/
|
||||
|
||||
Reference in New Issue
Block a user