Has*_*aig 13 linux ubuntu sysctl
我在调sysctl.conf。
根据linode 网站上的优化指南,以下是要设置的合理值sysctl.conf:
net.ipv4.tcp_max_syn_backlog = 3240000
Run Code Online (Sandbox Code Playgroud)
但是,archlinux 优化指南中的相同值是:
net.ipv4.tcp_max_syn_backlog = 65536
Run Code Online (Sandbox Code Playgroud)
最后,在另一个优化博客上(虽然很旧,但在谷歌上的 SEO 仍然很高),其价值被吹捧为:
net.ipv4.tcp_max_syn_backlog = 4096
Run Code Online (Sandbox Code Playgroud)
所有这些球场都大不相同。将此值设置为高数(与低数相比)背后的原因是什么?哪一个应该是真正的“理智”价值开始?
Tom*_*art 11
这主要取决于您通过服务器运行的流量。有几个重要的问题:
nginx, haproxy,varnish您应该监控:
netstat -s | grep "SYNs to LISTEN"
Run Code Online (Sandbox Code Playgroud)
这是您的服务器正在丢弃数据包的症状(因为例如积压队列已满)。
Netstat 统计信息导出到/proc/net/netstat调用 stat 的位置ListenDrops。用脚本解析可能更容易,或者使用类似的东西:
cat /proc/net/netstat | awk '(f==0) { i=1; while ( i<=NF) {n[i] = $i; i++ }; f=1; next} \
(f==1){ i=2; while ( i<=NF){ printf "%s = %d\n", n[i], $i; i++}; f=0}'
Run Code Online (Sandbox Code Playgroud)
获得人类可读的统计名称。您应该能够收集例如,使用该数据telegraf,collectd或普罗米修斯。
net.ipv4.tcp_max_syn_backlog- ? 队列中可以保留多少个客户端尚未发送 ACK 响应的半开连接(源)。
net.core.somaxconn 可以排队接受的最大连接数
net.core.netdev_max_backlog 接收队列中通过网络接口并等待内核处理的最大数据包数。
这些设置与打开的文件数量紧密相关(如在 Linux 中,每个新连接将打开 2 个文件句柄)。您可以使用以下方法检查您的限制:
cat /proc/sys/fs/file-nr
8160 0 3270712
Run Code Online (Sandbox Code Playgroud)
这意味着服务器8160已从3270712.
| 归档时间: |
|
| 查看次数: |
19513 次 |
| 最近记录: |