This looks like a cool utility, thank you.
My shell is a little rusty, but it does not look like it tests against the environment variable
I tried it out by editing the file directly and setting a publicly-available IP in Toronto, Canada. I am trying to tune network parameters for a VPS in Germany (Hetzner, FreeBSD 15). I am testing with
The suggested changes, for reference:
Edit:
Thought I would include the guide that I have relied on in the past: https://calomel.org/freebsd_network_tuning.html
That guide has been developed on older FreeBSD releases, however.
My shell is a little rusty, but it does not look like it tests against the environment variable
TARGET_HOST when running this from a shell (with the -n flag)? Perhaps it is not intended to be used this way.I tried it out by editing the file directly and setting a publicly-available IP in Toronto, Canada. I am trying to tune network parameters for a VPS in Germany (Hetzner, FreeBSD 15). I am testing with
iperf3, unfortunately it does not seem like the suggested changes improve test results. I tested with single transfer as well as 8 (-P 8) in both directions (default, and -R). Testing against a 1 Gbps symmetric home fiber connection through the TekSavvy ISP which resells Bell fiber. I am not looking for dynamic changes, but suggested tuning that may improve data transfer speeds so I am running it in a shell and applying the suggested changes.The suggested changes, for reference:
Bash:
% cat TEST.txt
[DRY-RUN] net.isr.defaultqlimit=2048 -> /boot/loader.conf (requires reboot)
[DRY-RUN] net.isr.maxqlimit=16384 -> /boot/loader.conf (requires reboot)
[DRY-RUN] net.isr.maxthreads=4 -> /boot/loader.conf (requires reboot)
[DRY-RUN] net.isr.bindthreads=1 -> /boot/loader.conf (requires reboot)
[DRY-RUN] net.inet.tcp.recvbuf_auto=1 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.sendbuf_auto=1 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.path_mtu_discovery=1 -> /etc/sysctl.conf
[DRY-RUN] kern.ipc.nmbclusters=262144 -> /etc/sysctl.conf
[DRY-RUN] kern.ipc.nmbjumbop=262144 -> /etc/sysctl.conf
[DRY-RUN] kern.ipc.nmbjumbo9=65536 -> /etc/sysctl.conf
[DRY-RUN] kern.ipc.nmbjumbo16=32768 -> /etc/sysctl.conf
[DRY-RUN] net.inet.udp.recvspace=65536 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.functions_default=freebsd -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.rexmit_min=100 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.rexmit_slop=400 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.rexmit_initial=2000 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.cc.algorithm=cubic -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.recvspace=262144 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.sendspace=262144 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.recvbuf_max=262144 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.sendbuf_max=262144 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.ecn.enable=0 -> /etc/sysctl.conf
[DRY-RUN] kern.ipc.maxsockbuf=2097152 -> /etc/sysctl.conf
[DRY-RUN] net.inet.ip.intr_queue_maxlen=100 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.always_keepalive=0 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.delayed_ack=0 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.delacktime=40 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.sack.enable=0 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.delayed_ack=1 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.recvbuf_max=2097152 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.sendbuf_max=2097152 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.recvspace=131072 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.sendspace=131072 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.initcwnd_segments=10 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.abc_l_var=4 -> /etc/sysctl.conf
[DRY-RUN] net.inet.tcp.reass.maxqueuelen=256 -> /etc/sysctl.conf
Edit:
Thought I would include the guide that I have relied on in the past: https://calomel.org/freebsd_network_tuning.html
That guide has been developed on older FreeBSD releases, however.