Increase the number of files a node may have open at a time

This commit is contained in:
Michael Vines 2018-12-15 08:42:56 -08:00
parent e5d1bd6589
commit 74ee1e5087
6 changed files with 25 additions and 17 deletions

View File

@ -15,10 +15,7 @@ export LD_LIBRARY_PATH=$PWD/target/perf-libs:$LD_LIBRARY_PATH
export RUST_LOG=multinode=info
if [[ $(ulimit -n) -lt 65000 ]]; then
echo 'Error: nofiles too small, run "ulimit -n 65000" to continue'
exit 1
fi
scripts/ulimit-n.sh
if [[ $(sysctl -n net.core.rmem_default) -lt 1610612736 ]]; then
echo 'Error: rmem_default too small, run "sudo sysctl -w net.core.rmem_default=1610612736" to continue'

View File

@ -12,16 +12,7 @@ _() {
"$@"
}
maxOpenFds=65000
if [[ $(uname) = Darwin ]]; then
maxOpenFds=24576 # Appears to be the max permitted on macOS...
fi
if [[ $(ulimit -n) -lt $maxOpenFds ]]; then
ulimit -n $maxOpenFds|| {
echo 'Error: nofiles too small, run "ulimit -n 65000" to continue';
exit 1
}
fi
_ scripts/ulimit-n.sh
_ cargo build --all --verbose
_ cargo test --all --verbose --lib -- --nocapture --test-threads=1

View File

@ -46,7 +46,7 @@ if [[ -d $SNAP ]]; then
fi
fi
tune_networking
tune_system
trap 'kill "$pid" && wait "$pid"' INT TERM
$program \

View File

@ -95,10 +95,13 @@ export RUST_BACKTRACE=1
# shellcheck source=scripts/configure-metrics.sh
source "$(dirname "${BASH_SOURCE[0]}")"/../scripts/configure-metrics.sh
tune_networking() {
tune_system() {
# Skip in CI
[[ -z $CI ]] || return 0
# shellcheck source=scripts/ulimit-n.sh
source "$(dirname "${BASH_SOURCE[0]}")"/../scripts/ulimit-n.sh
# Reference: https://medium.com/@CameronSparr/increase-os-udp-buffers-to-improve-performance-51d167bb1360
if [[ $(uname) = Linux ]]; then
(

View File

@ -167,7 +167,7 @@ rsync_url() { # adds the 'rsync://` prefix to URLs that need it
rsync_leader_url=$(rsync_url "$leader")
tune_networking
tune_system
set -ex
$rsync -vPr "$rsync_leader_url"/config/ "$ledger_config_dir"

17
scripts/ulimit-n.sh Executable file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env bash
#
# Adjust the maximum number of files that may be opened to as large as possible.
#
maxOpenFds=65000
if [[ $(uname) = Darwin ]]; then
maxOpenFds=24576 # Appears to be the max permitted on macOS...
fi
if [[ $(ulimit -n) -lt $maxOpenFds ]]; then
ulimit -n $maxOpenFds || {
echo "Error: nofiles too small: $(ulimit -n). Run \"ulimit -n $maxOpenFds\" to continue";
exit 1
}
fi