Linux系统网络传输慢,万兆光纤

编程入门 行业动态 更新时间:2024-10-22 22:53:58

Linux系统<a href=https://www.elefans.com/category/jswz/34/1704500.html style=网络传输慢,万兆光纤"/>

Linux系统网络传输慢,万兆光纤

万兆网但是系统网络传输慢
背景:
三台主机,相同配置、相同系统、相同驱动 (主机A、B、C),万兆网
情况:
主机A和主机B,业务使用发现tcp传输慢,进行测试发现只有5MB/s,dmesg日志报错TCP :out of memory – consider tuning tcp_mem,而主机C则能达到200MB/s,无报错。


操作:

尝试修改内核参数:
vi /etc/sysctl.conf原值:net.ipv4.tcp_mem = 18201        24268   36402改为:net.ipv4.tcp_mem = 524288	 699050	 1398100# 生效
sysctl -ptcp_mem 值是以页面大小(通常为 4KB)为单位的三个整数值,分别表示:
1. min:最小值,表示在内存压力最小的情况下,TCP 栈可以使用的最小内存量。
2. pressure:压力值,表示在内存压力增加时,TCP 栈可以使用的内存量。
3. max:最大值,表示在内存压力最大的情况下,TCP 栈可以使用的最大内存量。
这三个值的单位是页面大小,因此需要将其转换为字节数才能换算成 MB。页面大小通常为 4KB,因此可以将每个值乘以 4KB,然后将结果除以 1024*1024,即可得到对应的 MB 值。
例如,如果 TCP Mem 值为 “4096 16384 33554432”,则可以按照以下步骤进行换算:
1. 将每个参数乘以页面大小(4KB),得到 “16384 65536 134217728”,单位是 KB。
2. 将得到的内存大小除以 1024,得到 “16 64 131072”,单位是 MB。

修改完之后进行测试发现速度可达200MB/s

完。。。

第二天,发现速度又降回到了5MB/s ,而且A和C机器正常,B机器异常;
查看socket

cat /proc/net/sockstatnetstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

发现tcp的mem 已经接近昨日设置的net.ipv4.tcp_mem的max值;并且有大量的CLOSE_WAIT没有释放
查看进程,发现大量的43640端口被CLOSE_WAIT无法释放,查看进程情况,是java进程。


将进程停掉。查看情况,发现mem已经降下来,传输测试速度可达200MB/s。

剩下的就去查java程序了。。。。

更多推荐

Linux系统网络传输慢,万兆光纤

本文发布于:2024-02-10 23:59:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1678056.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网络传输   系统   Linux   万兆光

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!