Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2025/02/05 10:13:00.007 (台灣標準時)

NetBSD での socket buffer の大きさの変更について

大きなサイズのファイルをダウンロードしている途中でネットワークが利用で きなくなる状況が何度も発生したでござる。 ping をしていると、 "No buffer space available" と表示されるでござる。


ping: sendto: No buffer space available
ping: sendto: No buffer space available
ping: sendto: No buffer space available
ping: sendto: No buffer space available
ping: sendto: No buffer space available

https://wiki.netbsd.org/tutorials/tuning_netbsd_for_performance/#index3h3を見てみると、以下のような記述があったでござる。


Fortunately, there is an automatic control for those buffers in NetBSD. It can be checked and and enabled with sysctl:

net.inet.tcp.recvbuf_auto = 0
net.inet.tcp.recvbuf_inc = 16384
net.inet.tcp.recvbuf_max = 262144
net.inet.tcp.sendbuf_auto = 0
net.inet.tcp.sendbuf_inc = 8192
net.inet.tcp.sendbuf_max = 262144

The default values for the maximal send and receive buffers are set to 256 KBytes, which is very tiny.

A reasonable value for newer systems would be 16 MBytes, so you may set it to that value after you turned it on with sysctl:

net.inet.tcp.recvbuf_auto=1
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendbuf_max=16777216 
net.inet.tcp.recvbuf_max=16777216

バッファの大きさの初期値は 256 KB で、これはとても小さいようでござる。 /sbin/sysctl コマンドを使って、 net.inet.tcp.recvbuf_max 及び net.inet.tcp.sendbuf_max の値を変更してあげればよいようでござる。


# /sbin/sysctl -w net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.recvbuf_max: 262144 -> 16777216
# /sbin/sysctl -w net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.sendbuf_max: 262144 -> 16777216

起動時にバッファの大きさを変更するには、 /etc/sysctl.conf に以下の記述 を追加しておけばよいようでござる。


net.inet.tcp.recvbuf_max=33554432
net.inet.tcp.sendbuf_max=33554432



Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Computer___Network/20240130_00.html
  9. Food___Taiwan/20220429_0.html
  10. Computer___Network/20240416_00.html
  11. Computer___NetBSD/20230119_00.html
  12. Computer___Python/20220410_0.html
  13. Computer___NetBSD/20220817_3.html
  14. Computer___Python/20221013_0.html
  15. Computer___Debian/20210223_1.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___TeX/20231107_00.html
  20. Computer___NetBSD/20240101_02.html
  21. Computer___Python/20240101_00.html
  22. Science___Math/20220420_0.html
  23. Computer___Network/20220413_1.html
  24. Computer___TeX/20230503_00.html
  25. Computer___NetBSD/20220808_0.html
  26. Science___Astronomy/20220503_0.html
  27. Computer___NetBSD/20230515_00.html
  28. Misc___Japan/20240610_00.html
  29. Computer___NetBSD/20210127_0.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.