通过查看dmesg命令查看,发现大量TCP: too many of orphaned sockets错误
解决办法:
调整tcp_rmem、tcp_wmem、tcp_mem
查看默认值
cat /proc/sys/net/ipv4/tcp_rmem
cat /proc/sys/net/ipv4/tcp_wmem
cat /proc/sys/net/ipv4/tcp_mem
tcp_mem(3个INTEGER变量):low, pressure, high,一般情况下这些值是在系统启动时根据系统内存数量计算得到的
- low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。
- pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。
- high:允许所有tcp sockets用于排队缓冲数据报的页面量,当内存占用超过此值,系统拒绝分配socket,后台日志输出“TCP: too many of orphaned sockets”。
调整方式:
echo "net.ipv4.tcp_mem = 6181329 8241772 12362658">> /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4096 87380 6291456">> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 16384 4194304">> /etc/sysctl.conf
# 生效
sysctl -p