sockets - ksoftirq 在我的 netdata 警报上用完了 sysctl 和 tcp 接受队列丢弃
问题描述
我经常有两个严重错误:
- ip.tcp_accept_queue 1m tcp 接受队列丢弃
- 在最后 10 分钟内,ksoftirq 用完 sysctl net.core.netdev_budget 或 net.core.netdev_budget_usecs 的次数
在我的网络数据警报上。
我已经像这样调整了我的 sysctl:
fs.file-max = 2097152
net.ipv4.tcp_max_orphans = 60000
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_congestion_control=htcp
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_synack_retries = 2
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_fin_timeout = 15
net.core.somaxconn = 65536
net.core.netdev_max_backlog = 65536
net.core.optmem_max = 25165824
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144
net.core.rmem_default = 25165824
net.core.rmem_max = 25165824
net.ipv4.tcp_rmem = 20480 12582912 25165824
net.ipv4.udp_rmem_min = 16384
net.core.wmem_default = 25165824
net.core.wmem_max = 25165824
net.ipv4.tcp_wmem = 20480 12582912 25165824
net.ipv4.udp_wmem_min = 16384
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.core.netdev_budget = 80000
(/etc/ 和 ufw 目录后面的 sysctl.conf)
由于 debian 9,我唯一无法配置的是 net.core.netdev_budget_usecs 吗?这可能是问题所在。
例如 :
sysctl -w net.core.netdev_budget_usecs=8000
sysctl: cannot stat /proc/sys/net/core/netdev_budget_usecs: Aucun fichier ou dossier de ce type
- softnet 图显示 6k 事件/秒的平均值
- 套接字图显示使用中的 2k 套接字的平均值
任何想法 ?
缺少什么样的信息?
非常感谢你的灯,
解决方案
推荐阅读
- python - Flask.g 数据库连接 - RuntimeError:在应用程序上下文之外工作
- wpf - WPF控件拉伸问题
- docker - 在不同容器端口中设置 hyperledger fabric 2.0 时的问题(测试和开发)
- microsoft-edge - 由于不同的功能和价值,边缘扩展提交失败
- gnu-make - 为什么 gnu make 删除这个文件?
- symfony4 - 未定义的方法“getCategories”。方法名称必须以 findBy、findOneBy 或 countBy 开头
- openid-connect - 让用户在使用社交登录登录后为本地帐户添加密码 - Azure AD b2c
- javascript - 如何从数组JS调用函数?
- wpf - 如何创建和使用外部 XAML 图像的 ResourceDictionary
- javascript - 为什么我没有为这个变量定义?