Skip to content

Commit

Permalink
Increase the number of files a node may have open at a time
Browse files Browse the repository at this point in the history
  • Loading branch information
mvines committed Dec 16, 2018
1 parent e5d1bd6 commit 74ee1e5
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 17 deletions.
5 changes: 1 addition & 4 deletions ci/test-large-network.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
11 changes: 1 addition & 10 deletions ci/test-stable.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion multinode-demo/bootstrap-leader.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ if [[ -d $SNAP ]]; then
fi
fi

tune_networking
tune_system

trap 'kill "$pid" && wait "$pid"' INT TERM
$program \
Expand Down
5 changes: 4 additions & 1 deletion multinode-demo/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
(
Expand Down
2 changes: 1 addition & 1 deletion multinode-demo/fullnode.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
17 changes: 17 additions & 0 deletions scripts/ulimit-n.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 74ee1e5

Please sign in to comment.