Hi,
SUSE uses CUBIC TCP Congestion Avoidance Algorithm by default.
Do you know how to change it to BIC?
This is mandatory for our systems, your help is very appreciated.
Thank you
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I’ve never heard of BIC. What does it do that makes it mandatory over
CUBIC or Reno? I do not believe it is available in OpenSUSE. From my
12.1 x86_64 system:
ab@mybox0:~/Desktop> /sbin/sysctl -a | grep -i conges
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_available_congestion_control = cubic reno
net.ipv4.tcp_allowed_congestion_control = cubic reno
Good luck.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQIcBAEBAgAGBQJPce0QAAoJEF+XTK08PnB50FUP/1AyndexX0rHkrSKwk8ciz9t
5gcQb+KHUxq9e8AbeCi18v6irRRIjb4CjKaEacx/DbbBSVimmmvNyxgmrG+tmndm
ZnSXZxTv55EB/q0+29oePh84xtT2LKvsKRvsdIH08UOCQoKMCKikRLwKMjEHAJoR
WO1NtGzniGtI9LVDignXL7w/LlbGYUlpWryfRmBMeO1JeNgUPo7pWsFgREWJbRaW
GsFbeBRHZLQwV7/5A6cdeLvlMZHNL7Otw6U/uXEh+ebTo0vwfN7hN6sHPNOFGWku
6IHJnCImdJ9yXk4ZO15RC6dhkr8eYTR1t6wzstpDzGmCCtLiId3pSki1vHjxE3UP
wGlMYAsTbgmcHrLWBKHwl3Xaw0d+nt2O2AOFxHGgpOcZh3hvspU6gZZd1kuA9omp
MnN7Z5/FDOBrJaUNOCiH+74A5wc/X4fC9BXLAZicRMoH6HCEOicDWcASPSK6LIGQ
PiS/8muyG1necxWr1dauxOVC+V/m30rbY2WX0+2TKJKIbmxZq28MheoAz2NW2NPH
QbRf9Fr40T0KqeumHrgHf0qwdzdpKyCYju/dYHg/xIJFJAa9cihA7V39z4ruHl1z
UaLFKMaa7G2nUBtAZH1xkMsf5fBu8rOEB4Fy6AxMUHmDVj3Tg2qgVHjZ0VHjq2ag
LK4zWaEzTowvf0aBnxO1
=ZAk1
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
A bit more info:
https://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm#TCP_BIC
Looks like it was the default a few years ago but has since been
replaced in all Linux kernels by CUBIC. Are you running really old kernels?
Good luck.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQIcBAEBAgAGBQJPce1cAAoJEF+XTK08PnB5SSIP/26P3Mm+d2GRTNnLlUJK/D1z
XFN5pNikMBOt5qvRSTtJLpbK7G40NT5ht8a4nsbRgfW+QzedPR/V7Ph3AqNY4lID
w1xsKYuAmg3wgr9DpDruYxy89LZQgW44GkvVvZ0OghB+X2jpIMD2RBrGDsCjt1SG
TS/T49s/j6XKnCtIPe4D0sDhL+Rqc9Lo2X7Gh0c5fBtTvAO9fJ2lQRgbMAJfWqQa
S5HP9PZgaVzqVh3hAJA96jUuZsdTWshl+pNhIe08Xmp9lHAOUn+SMwABEL+xboy+
cCLoPpfnmK0JSG2YjIqV4xcCfLA65SShEjJln9NVlOBcokwAmgFlPuE22MNr1MMo
wXRTj1/PK2QFn4r+1oG/b0jvxfo3Ms5W3V6YQK3ZAlytDUok7h9fprdB844RwhAM
WMT3Ybt7LNi50eb8bS4ceKri5PDMdNUtiODq4E7pmb8K09tKVoU3iy6/55p7K1Gt
DgucaWjhzr14wy+WYGobnZpL5bV1ig9QjSEwiVcmxsdcssNJD2oVuAerpM+fn6DR
6nuEFLshkstzU5Tw6xZ7QQeAhv7RYKAGJHrpX1vwq5Gm8UmQG2jahWPhTPyaY9Pf
TeJCA3XjhRUBSILAbSIJiCI5Su3ykmq3FkSS3h/REONr/X2DP6O31BxPjZo4P57y
A9pXZ/eSzWFw3gXCdVs5
=Vtjh
-----END PGP SIGNATURE-----
Howdy,
For everything you might want to know about TCP/IP Congestion Control algorithms and TCP/IP tuning, I collected everything I could find on the Internet, improved on some articles and posted here
Optimize and Fix your Network Connection - Su Networking Technical
If you have any questions (I hope not necessary if I wrote the content well), you can post here again.
TS
As so often with first time posters, they seem to think that we, mere fellow openSUSE users, are clairvoyant.
Please @shawnquertin, you are welcome here, but do not forget to tell wich level of openSUSE you use. And remind that that is the minimum you should explain. every other tiny boit of information that could be of value to the people who try to help you is better offered by you spontaniously. Otherwise the minimum is that other have to ask, the worst is that they simply skip the whole thread because of lack of obvious information.
Hi,
Thanks for your support.
BIC is not available through sysctl, that might mean it has been removed from the latest versions. I use the latest Version 11 SP2.
Why is it mandatory? Because the servers will be used as speed-test over wireless (LTE) network. It must be immune to packet drop and be more aggressive.
In most cases this would be true, but for this topic I’d consider the information he requested adequate, the version of openSUSE isn’t imprortant, only the kernel version <maybe>.
Also, in my paper I point that the implementation of CUBIC as the standard congestion control algorithm isn’t necessarily optimal and so should be changed in many situations (Anyone using wireless of any kind for example). I might also not explicitly state but the User should understand that just because BIC (or some other Congestion Control algorthm) is implemented on other machines does <not> necessarily mean that should also be the case for the machine immediately in front of you… The decision should be based on thought and experimentation, and I hope I provided enough info for a person to be able to test properly.
HTH,
TS
Check again, it should be there.
See my website, the following page. If necessary post your output.
TS
Execatly that is what I thought. You do not use openSUSE at all. While all the above help may be true and usefull to you, you nevertheless should be aware of the fact that SLED/SLES is here: SUSE Forums
Ok, thanks tsu2 for you link, I will look at your documents
Thanks also hcvy
Hi
If your on SLE it’s 11 patchelevel 2 and not equivalent to openSUSE
11.2 which is way out of support.
cat /etc/SuSE-release
SUSE Linux Enterprise Desktop 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
–
Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel 3.0.13-0.27-default
up 2 days 2:58, 2 users, load average: 0.02, 0.04, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU
Some output:
cat /proc/sys/net/ipv4/tcp_congestion_control
cubic
ls /lib/modules/uname -r
/kernel/net/ipv4/
ah4.ko ipcomp.ko tcp_lp.ko xfrm4_mode_transport.ko
esp4.ko ipip.ko tcp_probe.ko xfrm4_mode_tunnel.ko
gre.ko netfilter tcp_veno.ko xfrm4_tunnel.ko
inet_diag.ko tcp_diag.ko tunnel4.ko
ip_gre.ko tcp_illinois.ko xfrm4_mode_beet.ko
Which means BIC is not already compiled i guess…
Ho much work does represent compiling BIC to add it?
Hi
FYI, tcp_bic is present on my SLED 11 SP2 x86_64, but not on my SLES 11
SP2 x86 system;
/sbin/modinfo tcp_bic
filename: /lib/modules/3.0.13-0.27-default/kernel/net/ipv4/tcp_bic.ko
description: BIC TCP
license: GPL
author: Stephen Hemminger
srcversion: B1EBF33F5695872C59E9FC7
depends:
supported: no
vermagic: 3.0.13-0.27-default SMP mod_unload modversions
parm: fast_convergence:turn on/off fast convergence (int)
parm: max_increment:Limit on increment allowed during binary
search (int) parm: low_window:lower bound on congestion
window (for TCP friendliness) (int) parm: beta:beta for
multiplicative increase (int) parm: initial_ssthresh:initial
value of slow start threshold (int) parm:
smooth_part:log(B/(B*Smin))/log(B/(B-1))+B, # of RTT from Wmax-B to
Wmax (int)
–
Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel 3.0.13-0.27-default
up 2 days 3:15, 2 users, load average: 0.00, 0.01, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU
Been thinking about this,
Although I can’t find anything to support this suggestion everything I know (without that level of experience) suggests that you can probably copy a compiled module from SLED or even another distro like openSUSE to the proper location in SLES and it should work.
The kernel Pluggable architecture suggests that all plugin modules should be self-contained with no outside dependencies. The other potential issue I considered is if the Plugin might use special namespaces or change namespaces but that’s almost certainly not the case. The author of the plugin on openSUSE is Stephan Hemminger who is a Linux Foundation Fellow with no known special ties to SUSE… so in my mind the kernel and the Plugins should be standard Linux.
If you decide to try it (simply copying a module to your SLES), post back on your results. If you need confirmation this is possible, I’d recommend getting on the SUSE kernel mailing list and asking your questions there.
HTH,
TS
Ok, I will try to copy it from SLED, I will ave to install it first.
Moderators are right, this is the wrong forum (my virtual test machine is OpenSues11.2 and my future servers will be SLES11SP2), and I will post in the good forum next time, but for now there is work in progress.
# sysctl -w net.ipv4.tcp_congestion_control=BIC
error: "No such file or directory" setting key "net.ipv4.tcp_congestion_control"
Ok, the tcp_bic.ko has bee copied from OpenSuse to SLES’s /lib/modules/3.0.13-0.27-default/kernel/net/ipv4.
What should I do to load the new module?
Hi
That won’t work, did you not see the post on the SUSE forums on what
repository to add to SLES?
–
Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel 3.0.13-0.27-default
up 2 days 22:29, 3 users, load average: 0.04, 0.03, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU
On 03/28/2012 11:24 AM, malcolmlewis wrote:
>
> Hi
> That won’t work, did you not see the post on the SUSE forums on what
> repository to add to SLES?
To add a little more information, it is always necessary to compile every module
(.ko file) with exactly the same compiler version and kernel headers as were
used to build the running kernel.
As noted above, you need to post on the forums dedicated to SLES.
This topic has been added to SLES forum
Click here to get redirected
If it fails, it was a try. I’m still somewhat surprised that the plugin needs to be compiled specific to the kernel version, IMO unless there is specific error validation or hard-coded paths specific to the kernel version it shouldn’t usually make a diff.
Last check, are you sure “BIC” should be capitalized? It might be on your system, on an openSUSE it’s lower case and your attempt would also result in an error.
As Malcom notes, if a known solution has been posted to the SUSE forums specific to your distro, that should take priority over any experimentation.
TS