Skip to content

Commit

Permalink
sysctl.d: set kernel.pid_max=4194304 on 64-bit systems
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
ddiss committed Nov 17, 2017
1 parent 4d0b700 commit 14a0c2a
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions etc/sysctl/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
90-ceph-osd.conf
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
fs.aio-max-nr = 1048576
@sysctl_pid_max@
8 changes: 8 additions & 0 deletions etc/sysctl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit 14a0c2a

Please sign in to comment.