【问题标题】:/proc/net/udp drops are negative values/proc/net/udp 丢弃是负值
【发布时间】:2020-05-24 15:50:18
【问题描述】:

我们有一个 Syslog-ng,它接收大量 UDP 流,我认为有很多 UDP 数据包被丢弃,请问为什么我在 /proc/net/udp [drops] 中得到负值专栏]

netstat -su

    5322117448164 packets received
    874516751 packets to unknown port received.
    516387410736 packet receive errors
    351482789 receive buffer errors
    InCsumErrors: 897232

将最大接收大小设置为 80MB

sysctl net.core.rmem_max net.core.rmem_max = 83886080

ss -ulnp 显示 Recv-Q 大约 80MB

# ss -ulnp | grep syslog

UNCONN 83482560 0 *:9002 *:* (("syslogng",pid=15798,fd=6))

/proc/net/udp

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops

51808: 00000000:232A 00000000:0000 07 00000000:04FFFEC0 00:00000000 00000000     0        0 3815546609 2 ffff88103f9fd500 -1437668106

请您告知 drop 列中的负值是什么意思

【问题讨论】:

  • 我们在此系统上有一个活动/备用绑定,如果我们将绑定类型更改为类型 6 - mode=6 (balance-alb),syslog-ng 将接收流量。如果我发出ifstat bond1 我在接口级别看不到任何丢包或错误,它是否有助于解决我的问题

标签: unix udp proc


【解决方案1】:

由于 rmem_max 配置不够,因为我们获得了巨大的流量,导致出现下降,但问题的根本原因是我们的 syslog-ng '不幸'配置错误。

我们也应该微调应用程序,而不是操作系统缓冲区。 您可以从以下四个参数开始:

  • log-fifo-size – 输出队列可以存储的消息数量..每个目标都有自己的其中之一。这是为我们拥有的每个目的地创建的。
  • log-iw-size – 输入控制窗口的初始大小。 Syslog-ng 使用它作为控制来查看目标缓冲区在接受更多数据之前是否有足够的空间。
  • log-fetch-limit – 一次从每个源中提取的消息数。
  • max-connections – 接受的最大连接数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    相关资源
    最近更新 更多