From b8eb110c81f29d24857bec3a8ed516584a8e6bef Mon Sep 17 00:00:00 2001 From: Dimitrios Apostolou Date: Thu, 15 Aug 2019 13:55:07 +0200 Subject: Increase open files and processes limit on macOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: If93bbe067f76168a7c131c6ced187f00a8d908e1 Reviewed-by: Tony Sarajärvi --- coin/provisioning/common/macos/increase_limits.sh | 72 ++++++++++++++++++++++ .../provisioning/common/macos/limit.maxfiles.plist | 20 ++++++ coin/provisioning/common/macos/limit.maxproc.plist | 20 ++++++ .../qtci-macos-10.12-x86_64/01-increase_limits.sh | 44 +++++++++++++ .../qtci-macos-10.13-x86_64/01-increase_limits.sh | 44 +++++++++++++ .../qtci-macos-10.14-x86_64/01-increase_limits.sh | 44 +++++++++++++ 6 files changed, 244 insertions(+) create mode 100755 coin/provisioning/common/macos/increase_limits.sh create mode 100644 coin/provisioning/common/macos/limit.maxfiles.plist create mode 100644 coin/provisioning/common/macos/limit.maxproc.plist create mode 100755 coin/provisioning/qtci-macos-10.12-x86_64/01-increase_limits.sh create mode 100755 coin/provisioning/qtci-macos-10.13-x86_64/01-increase_limits.sh create mode 100755 coin/provisioning/qtci-macos-10.14-x86_64/01-increase_limits.sh diff --git a/coin/provisioning/common/macos/increase_limits.sh b/coin/provisioning/common/macos/increase_limits.sh new file mode 100755 index 00000000..666d9067 --- /dev/null +++ b/coin/provisioning/common/macos/increase_limits.sh @@ -0,0 +1,72 @@ +#!/bin/sh + +############################################################################# +## +## Copyright (C) 2019 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + + +# Increase the soft and hard RLIMIT_NOFILE and RLIMIT_NPROC limits. +# By default they are 256/unlimited and 709/1064 +# and they sometimes create problems to the build process and telegraf. + + +# Must have this variable set in the environment +[ x"$PROVISION_DIR" = x ] && exit 38 + + +echo "Current limits are:" +ulimit -a +launchctl limit + +sudo cp $PROVISION_DIR/common/macos/limit.maxfiles.plist /Library/LaunchDaemons/ +sudo cp $PROVISION_DIR/common/macos/limit.maxproc.plist /Library/LaunchDaemons/ + +sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist +sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist + +sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist +sudo chmod 644 /Library/LaunchDaemons/limit.maxproc.plist + +# Activate the new limits immediately (not for the current session though) +sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist +sudo launchctl load -w /Library/LaunchDaemons/limit.maxproc.plist + +echo "After adjusting, limits are:" +ulimit -a +launchctl limit + + +# NOTE: If the limits are not increased enough, it might be because of +# restrictions set by the kernel. They can be temporarily altered with: + +# sudo sysctl -w kern.maxproc=xxxx +# sudo sysctl -w kern.maxprocperuid=xxx diff --git a/coin/provisioning/common/macos/limit.maxfiles.plist b/coin/provisioning/common/macos/limit.maxfiles.plist new file mode 100644 index 00000000..1bf85214 --- /dev/null +++ b/coin/provisioning/common/macos/limit.maxfiles.plist @@ -0,0 +1,20 @@ + + + + + Label + limit.maxfiles + ProgramArguments + + launchctl + limit + maxfiles + 65536 + 524288 + + RunAtLoad + + ServiceIPC + + + diff --git a/coin/provisioning/common/macos/limit.maxproc.plist b/coin/provisioning/common/macos/limit.maxproc.plist new file mode 100644 index 00000000..0c2cc0e9 --- /dev/null +++ b/coin/provisioning/common/macos/limit.maxproc.plist @@ -0,0 +1,20 @@ + + + + + Label + limit.maxproc + ProgramArguments + + launchctl + limit + maxproc + 8192 + 32768 + + RunAtLoad + + ServiceIPC + + + diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/01-increase_limits.sh b/coin/provisioning/qtci-macos-10.12-x86_64/01-increase_limits.sh new file mode 100755 index 00000000..c7bf7a88 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/01-increase_limits.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2019 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + + +set -ex + + +PROVISION_DIR="$(dirname "$0")/.." +export PROVISION_DIR + + +. "$PROVISION_DIR"/common/macos/increase_limits.sh diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/01-increase_limits.sh b/coin/provisioning/qtci-macos-10.13-x86_64/01-increase_limits.sh new file mode 100755 index 00000000..c7bf7a88 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/01-increase_limits.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2019 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + + +set -ex + + +PROVISION_DIR="$(dirname "$0")/.." +export PROVISION_DIR + + +. "$PROVISION_DIR"/common/macos/increase_limits.sh diff --git a/coin/provisioning/qtci-macos-10.14-x86_64/01-increase_limits.sh b/coin/provisioning/qtci-macos-10.14-x86_64/01-increase_limits.sh new file mode 100755 index 00000000..c7bf7a88 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.14-x86_64/01-increase_limits.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2019 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + + +set -ex + + +PROVISION_DIR="$(dirname "$0")/.." +export PROVISION_DIR + + +. "$PROVISION_DIR"/common/macos/increase_limits.sh -- cgit v1.2.3