[oe-commits] [openembedded-core] 01/23: nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd

git at git.openembedded.org git at git.openembedded.org
Thu Aug 22 21:55:13 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master
in repository openembedded-core.

commit 6d61cd2bdc9e326eaa59082b5dd7423e522b96d3
Author: Hongxu Jia <hongxu.jia at windriver.com>
AuthorDate: Tue Aug 20 01:45:18 2019 -0400

    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 at 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 at 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 at windriver.com>
    Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service | 1 +
 meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service  | 1 +
 meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb           | 4 ++++
 3 files changed, 6 insertions(+)

diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
index 3c3a802..c01415d 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
@@ -11,6 +11,7 @@ ConditionPathExists=@SYSCONFDIR@/exports
 [Service]
 EnvironmentFile=- at SYSCONFDIR@/nfs-utils.conf
 ExecStart=@SBINDIR@/rpc.mountd -F $MOUNTD_OPTS
+LimitNOFILE=@HIGH_RLIMIT_NOFILE@
 
 [Install]
 WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
index 6e196b8..4fa64e1 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
@@ -8,6 +8,7 @@ After=network.target nss-lookup.target rpcbind.service
 [Service]
 EnvironmentFile=- at SYSCONFDIR@/nfs-utils.conf
 ExecStart=@SBINDIR@/rpc.statd -F $STATD_OPTS
+LimitNOFILE=@HIGH_RLIMIT_NOFILE@
 
 [Install]
 WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
index ac4437b..28f9898 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
@@ -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, at SBINDIR@,${sbindir},g' \
 		-e 's, at SYSCONFDIR@,${sysconfdir},g' \
+		-e 's, at 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/

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list