如何在Linux上优化WebLogic网络设置
导读:Linux上优化WebLogic网络设置的实操指南 一 操作系统层网络与文件句柄优化 提升进程可打开文件数与系统级句柄上限 在 /etc/security/limits.conf 增加(示例为 65535,可按需放大):* soft n...
Linux上优化WebLogic网络设置的实操指南
一 操作系统层网络与文件句柄优化
- 提升进程可打开文件数与系统级句柄上限
- 在 /etc/security/limits.conf 增加(示例为 65535,可按需放大):
* soft nofile 65535 * hard nofile 65535 - 在 /etc/pam.d/login 或发行版对应会话文件加入:
session required pam_limits.so - 检查与临时生效:
ulimit -n、cat /proc/sys/fs/file-max。WebLogic 大量并发连接依赖文件描述符(socket 也属于文件)。
- 在 /etc/security/limits.conf 增加(示例为 65535,可按需放大):
- 扩大本地端口范围与加快端口回收
- 建议将本地端口池扩展到接近整个可用区间(示例为 1024–65535):
net.ipv4.ip_local_port_range = 1024 65535 - 启用端口复用(注意:在 NAT/负载均衡 场景慎用
tcp_tw_recycle,可能与tcp_timestamps共同开启时引发问题):net.ipv4.tcp_tw_reuse = 1 # net.ipv4.tcp_tw_recycle = 1 # NAT/负载均衡环境不建议开启 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_tw_buckets = 5000
- 建议将本地端口池扩展到接近整个可用区间(示例为 1024–65535):
- 增大 TCP 缓冲区与套接字队列
- 提升默认与最大发送/接收缓冲,增强高带宽/长肥管道场景的吞吐:
net.core.rmem_default = 131072 net.core.wmem_default = 131072 net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 net.ipv4.tcp_rmem = 4096 87380 134217728 net.ipv4.tcp_wmem = 4096 65536 134217728 - 提升监听与网卡接收队列,缓解突发连接冲击:
net.core.somaxconn = 65535 net.core.netdev_max_backlog = 8096
- 提升默认与最大发送/接收缓冲,增强高带宽/长肥管道场景的吞吐:
- 启用并优化 TCP Keepalive
- 更快发现异常/半开连接(示例:1800 秒开始探测,可按业务 RTO 调整):
net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3
- 更快发现异常/半开连接(示例:1800 秒开始探测,可按业务 RTO 调整):
- 生效与验证
- 写入 /etc/sysctl.conf 后执行:
sysctl -p - 使用
ss -s、netstat -s、cat /proc/sys/net/core/somaxconn等验证。
- 写入 /etc/sysctl.conf 后执行:
二 WebLogic层网络与协议参数
- 线程与队列
- 在 WebLogic Administration Console 调整 Maximum Threads(最大线程数)与 Accept Backlog,使其与
somaxconn、业务并发目标匹配;队列过小会导致新连接被丢弃或超时。
- 在 WebLogic Administration Console 调整 Maximum Threads(最大线程数)与 Accept Backlog,使其与
- 协议与超时
- 启用 HTTP Keep-Alive 并设置合理的 Keep-Alive Timeout,减少握手开销;根据往返时延与客户端行为设置 Connection Timeout / Idle Timeout,避免长空闲占用资源。
- 传输层优化
- 在受控网络下可考虑关闭 Nagle 算法(
TCP_NODELAY=true)以降低小包延迟;若内核与客户端均支持,可启用 TCP Fast Open(需 WebLogic/容器与 OS 共同支持)。
- 在受控网络下可考虑关闭 Nagle 算法(
- 反向代理与负载均衡
- 在 Nginx/HAProxy/硬件LB 前置,复用长连接、做连接限速/熔断与健康检查,降低后端 WebLogic 的短连接压力与抖动。
三 防火墙与连接跟踪
- 放宽连接跟踪上限(启用
nf_conntrack时)- 检查与调大:
sysctl -a | grep conntrack_max;在 /etc/sysctl.conf 增加(示例 1048576,需结合内存评估):net.netfilter.nf_conntrack_max = 1048576 - 注意:该值过大将增加内核内存占用,应与实际并发与内存容量匹配。
- 检查与调大:
- 安全与变更策略
- 不建议直接关闭防火墙;应通过区域/服务/端口精细化放行,变更前在测试环境验证,变更窗口内回滚预案完备。
四 监控验证与回滚
- 基线采集与压测
- 采集基线:
ss -s、netstat -s、sar -n DEV 1、cat /proc/net/sockstat;使用 JMeter/ wrk/ ab 做渐进式压测,观察错误率、P95/P99 时延、连接数、重传率。
- 采集基线:
- 在线观测
- 结合 WebLogic Console、JVisualVM/jstat、系统监控(如
top/htop/dstat)定位瓶颈(线程不足/队列溢出/带宽饱和/丢包重传)。
- 结合 WebLogic Console、JVisualVM/jstat、系统监控(如
- 变更管理
- 参数分批上线、保留回滚脚本(如
sysctl -p回滚文件、limits 与 systemd 服务文件备份),在灰度/维护窗口执行,异常自动回滚。
- 参数分批上线、保留回滚脚本(如
五 参数示例与注意事项
- 示例 sysctl 片段(按业务与硬件调优,先小步放大并压测验证)
fs.file-max = 1048576 net.core.rmem_default = 131072 net.core.wmem_default = 131072 net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 net.ipv4.tcp_rmem = 4096 87380 134217728 net.ipv4.tcp_wmem = 4096 65536 134217728 net.core.somaxconn = 65535 net.core.netdev_max_backlog = 8096 net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.tcp_tw_reuse = 1 # net.ipv4.tcp_tw_recycle = 1 # NAT/负载均衡环境不建议 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 # 如启用 conntrack net.netfilter.nf_conntrack_max = 1048576 - 注意事项
- 所有数值需结合 CPU/内存/带宽/时延 与业务目标调优,避免“一刀切”;在 NAT/负载均衡 场景谨慎开启
tcp_tw_recycle;变更务必先在测试环境验证并保留回滚路径。
- 所有数值需结合 CPU/内存/带宽/时延 与业务目标调优,避免“一刀切”;在 NAT/负载均衡 场景谨慎开启
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux上优化WebLogic网络设置
本文地址: https://pptw.com/jishu/779932.html
