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 <ddiss@suse.de>
add_subdirectory(systemd)
endif()
+add_subdirectory(etc/sysctl)
+
include(CTags)
option(CTAG_EXCLUDES "Exclude files/directories when running ctag.")
add_tags(ctags
--- /dev/null
+90-ceph-osd.conf
+++ /dev/null
-fs.aio-max-nr = 1048576
--- /dev/null
+fs.aio-max-nr = 1048576
+@sysctl_pid_max@
--- /dev/null
+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)