Skip to content

Commit

Permalink
netperf: Only adjust socket sizes for UDP_STREAM
Browse files Browse the repository at this point in the history
As recommended by Jesper Dangaard, we avoid setting the default
socket buffer sizes and instead make it specific to netperf UDP_STREAM
which is known to lose packets at the default socket size on a 10GbE
network.

Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
  • Loading branch information
gormanm committed Dec 8, 2016
1 parent f292188 commit de9f8cd
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 16 deletions.
9 changes: 9 additions & 0 deletions shellpack_src/src/netperf/netperf-bench
Expand Up @@ -74,9 +74,18 @@ mmtests_server_ctl start --serverside-name $PROTOCOL-$SIZE
###SHELLPACK iteration_begin $ITERATIONS
mmtests_activity size $SIZE
MSGSIZE_OPT=
SOCKETSIZE_OPT=
if [ "$PROTOCOL" = "UDP_STREAM" -o "$PROTOCOL" = "TCP_STREAM" ]; then
MSGSIZE_OPT="-m $SIZE -M $SIZE"
fi
if [ "$REMOTE_SERVER_HOST" != "" ]; then
# UDP_STREAM on a 10GbE network was found to lose excessive
# packets unless the socket sizes were increase. These values
# resulted in minimal packet loss.
if [ "$PROTOCOL" = "UDP_STREAM" ]; then
SOCKETSIZE_OPT="-s 851968 -S 851968"
fi
fi

echo Running test $PROTOCOL iteration $ITERATION/$ITERATIONS size $SIZE
monitor_pre_hook $LOGDIR_RESULTS $SIZE
Expand Down
2 changes: 1 addition & 1 deletion shellpack_src/src/netperf/version
@@ -1 +1 @@
43
44
16 changes: 5 additions & 11 deletions shellpacks/common.sh
Expand Up @@ -442,23 +442,17 @@ function mmtests_server_ctl() {

echo === BEGIN execute remote server command: $REMOTE_SERVER_SCRIPT $@ ===

# These max and default socket sizes were selected to get netperf UDP_STREAM
# transmitting as its maximum rate with minimal packet loss on a 10GbE network.
# Other networks and devices may have different requirements. It's excessive
# for TCP_STREAM to transmit at maximum rates but easier overall to pick a
# common default instead of per-test settings
# These max and default socket sizes were selected to allow netperf UDP_STREAM
# the option of transmitting at the maximum rate with minimal packet loss on a
# 10GbE network. Other networks and devices may have different requirements.
# The maximum values are beyond excessive
MAX_SIZE=33554432
DEFAULT_SIZE=1703936
echo Setting local rmem_max and wmem_max to $MAX_SIZE, defaults to $DEFAULT_SIZE
echo Setting local rmem_max and wmem_max to $MAX_SIZE
sysctl net.core.rmem_max=$MAX_SIZE
sysctl net.core.wmem_max=$MAX_SIZE
sysctl net.core.rmem_default=$DEFAULT_SIZE
sysctl net.core.wmem_default=$DEFAULT_SIZE
echo Setting remote rmem_max and wmem_max to $MAX_SIZE
ssh -o StrictHostKeyChecking=no $REMOTE_SERVER_USER@$REMOTE_SERVER_HOST sysctl net.core.rmem_max=$MAX_SIZE
ssh -o StrictHostKeyChecking=no $REMOTE_SERVER_USER@$REMOTE_SERVER_HOST sysctl net.core.wmem_max=$MAX_SIZE
ssh -o StrictHostKeyChecking=no $REMOTE_SERVER_USER@$REMOTE_SERVER_HOST sysctl net.core.rmem_max=$DEFAULT_SIZE
ssh -o StrictHostKeyChecking=no $REMOTE_SERVER_USER@$REMOTE_SERVER_HOST sysctl net.core.wmem_max=$DEFAULT_SIZE

# Start remote server
ssh -o StrictHostKeyChecking=no $REMOTE_SERVER_USER@$REMOTE_SERVER_HOST $REMOTE_SERVER_WRAPPER $REMOTE_SERVER_SCRIPT --serverside-command $@
Expand Down
12 changes: 9 additions & 3 deletions shellpacks/shellpack-bench-netperf
Expand Up @@ -171,11 +171,17 @@ for ITERATION in `seq 1 $ITERATIONS`; do
mmtests_activity iteration $ITERATION
mmtests_activity size $SIZE
MSGSIZE_OPT=
SOCKETSIZE_OPT=
if [ "$PROTOCOL" = "UDP_STREAM" -o "$PROTOCOL" = "TCP_STREAM" ]; then
MSGSIZE_OPT="-m $SIZE -M $SIZE"
fi
if [ "$PROTOCOL" = "UDP_RR" -o "$PROTOCOL" = "TCP_RR" ]; then
MSGSIZE_OPT="-r $SIZE"
if [ "$REMOTE_SERVER_HOST" != "" ]; then
# UDP_STREAM on a 10GbE network was found to lose excessive
# packets unless the socket sizes were increase. These values
# resulted in minimal packet loss.
if [ "$PROTOCOL" = "UDP_STREAM" ]; then
SOCKETSIZE_OPT="-s 851968 -S 851968"
fi
fi

echo Running test $PROTOCOL iteration $ITERATION/$ITERATIONS size $SIZE
Expand All @@ -195,4 +201,4 @@ killall netserver

exit $SHELLPACK_SUCCESS
#### Description Netperf benchmark
#### Details netperf-bench 43
#### Details netperf-bench 44
2 changes: 1 addition & 1 deletion shellpacks/shellpack-install-netperf
Expand Up @@ -92,4 +92,4 @@ fi

echo Netperf installed successfully
#### Description Netperf benchmark
#### Details netperf 43
#### Details netperf 44

0 comments on commit de9f8cd

Please sign in to comment.