出现 timeout 或者是频繁丢包
sysctl -w net.core.rmem_max=131071
sysctl -w net.core.wmem_max=131071
sysctl -p
虚拟机使用 ab 测试的结果,会有包堆积的情况,不会马上处理。 在 ab 测试数据跑完后,依然在处理数据包。
10000 100 缺包不明显
10000 500 出现 ack 处理异常 缺包不明显
10000 1000 出现 ack 处理异常 缺包不明显 有内存堆积不到 1MB
10000 2000 出现 ack 处理异常 缺包明显 3000 左右 有内存堆积 11MB
20000 500 出现 ack 处理异常 缺包不明显 有内存堆积 11MB
20000 1000 出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 21MB
20000 2000 出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 28MB
notrack
--with-single nfqueue
通过 cat /proc/net/ip_queue
,查看 ip queue
运行情况。
如果 Queue dropped 的数值不断增大,则需要修改 ip_queue_maxlen
参数。
比如 echo 4096 > /proc/sys/net/ipv4/ip_queue_maxlen
。
如果 Netlink dropped 的数值不断增大,修改 net.core.rmem_max
和 net.core.wmem_max
参数。
比如 sysctl -w net.core.rmem_max=16777216
和 sysctl -w net.core.wmem_max=16777216
。
echo "1024 65535" > /proc/sys/net/ipv4/ip_local_port_range
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
cat /proc/sys/net/ipv4/ip_local_port_range
cat /proc/sys/net/ipv4/tcp_tw_recycle
cat /proc/sys/net/ipv4/tcp_tw_reuse
echo "32768 61000" | sudo tee /proc/sys/net/ipv4/ip_local_port_range
echo 0 | sudo tee /proc/sys/net/ipv4/tcp_tw_recycle
echo 0 | sudo tee /proc/sys/net/ipv4/tcp_tw_reuse
sion size:235
activate_dead_sessions
user time used:8
sys time used:28
max memory size:55412
[notice] init for next sess from bak
[notice] ack more than vir next seq
echo "32768 61000" | sudo tee /proc/sys/net/ipv4/ip_local_port_range