From: David Disseldorp Date: Tue, 14 Nov 2017 15:32:39 +0000 (+0100) Subject: sysctl.d: set kernel.pid_max=4194304 on 64-bit systems X-Git-Tag: v13.0.1~162^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F18544%2Fhead;p=ceph.git sysctl.d: set kernel.pid_max=4194304 on 64-bit systems For CONFIG_BASE_FULL Linux kernels, the maximum number of proc/thread IDs is set to 32768 by default. This default limit can be quite easily hit during recovery on nodes with high OSD counts. To avoid hitting the pid_max default limit, attempt to configure it to 4194304, which corresponds to the maximum limit possible on 64-bit CONFIG_BASE_FULL kernels. Fixes: http://tracker.ceph.com/issues/21929 Signed-off-by: David Disseldorp --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a9360b604c55..52e80d7031878 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -589,6 +589,8 @@ if(WITH_SYSTEMD) add_subdirectory(systemd) endif() +add_subdirectory(etc/sysctl) + include(CTags) option(CTAG_EXCLUDES "Exclude files/directories when running ctag.") add_tags(ctags diff --git a/etc/sysctl/.gitignore b/etc/sysctl/.gitignore new file mode 100644 index 0000000000000..5529d37db9975 --- /dev/null +++ b/etc/sysctl/.gitignore @@ -0,0 +1 @@ +90-ceph-osd.conf diff --git a/etc/sysctl/90-ceph-osd.conf b/etc/sysctl/90-ceph-osd.conf deleted file mode 100644 index c5c64bb705279..0000000000000 --- a/etc/sysctl/90-ceph-osd.conf +++ /dev/null @@ -1 +0,0 @@ -fs.aio-max-nr = 1048576 diff --git a/etc/sysctl/90-ceph-osd.conf.in b/etc/sysctl/90-ceph-osd.conf.in new file mode 100644 index 0000000000000..96bd40ac6939a --- /dev/null +++ b/etc/sysctl/90-ceph-osd.conf.in @@ -0,0 +1,2 @@ +fs.aio-max-nr = 1048576 +@sysctl_pid_max@ diff --git a/etc/sysctl/CMakeLists.txt b/etc/sysctl/CMakeLists.txt new file mode 100644 index 0000000000000..93cd7771538fa --- /dev/null +++ b/etc/sysctl/CMakeLists.txt @@ -0,0 +1,8 @@ +if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|arm|ARM") + # 4194304 is the maximum limit possible on 64-bit CONFIG_BASE_FULL kernels. + # Keep the default for 32-bit systems. + set(sysctl_pid_max "kernel.pid_max = 4194304") +endif() + +configure_file(90-ceph-osd.conf.in + ${CMAKE_CURRENT_SOURCE_DIR}/90-ceph-osd.conf @ONLY)