温馨提示×

WebLogic在Linux上如何优化网络设置

小樊
40
2026-01-01 03:13:58
栏目: 智能运维

Linux上优化WebLogic网络设置的实用清单

一 操作系统与网络内核参数

  • 文件描述符与进程限制
    提升单进程可打开文件数(含套接字)以避免“too many open files”。在 /etc/security/limits.conf 增加:
    • 示例:* soft nofile 65536* hard nofile 65536(按实际并发调大)
    • /etc/pam.d/login 加入:session required pam_limits.so
    • 验证:ulimit -ncat /proc/sys/fs/file-max
  • 端口与本地端口范围
    扩大可用端口,减少端口耗尽:
    • net.ipv4.ip_local_port_range = 1024 65535
  • 连接队列与积压
    提升半连接/全连接队列能力,缓解突发连接被拒:
    • net.core.somaxconn = 16384(监听套接字 backlog 上限)
    • net.core.netdev_max_backlog = 5000(网卡接收队列)
  • TCP缓冲区与自动调优
    增大默认/最大缓冲区,开启自动窗口缩放:
    • net.core.rmem_default = 262144net.core.wmem_default = 262144
    • net.core.rmem_max = 16777216net.core.wmem_max = 16777216
    • net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216
    • net.ipv4.tcp_window_scaling = 1
  • 连接复用与回收
    在安全前提下提升端口复用与回收效率:
    • net.ipv4.tcp_tw_reuse = 1(仅对客户端/新连接安全)
    • net.ipv4.tcp_fin_timeout = 30(默认 60,可按需缩短)
  • KeepAlive 探测
    更快发现死连接,减少僵尸连接:
    • net.ipv4.tcp_keepalive_time = 1800net.ipv4.tcp_keepalive_intvl = 15net.ipv4.tcp_keepalive_probes = 5
  • NAT/防火墙场景
    若启用连接跟踪(如 iptables NAT),适当提升跟踪表上限:
    • net.netfilter.nf_conntrack_max(或旧内核 net.ipv4.ip_conntrack_max
      注:具体值需结合内存与业务评估,避免过大占用内核内存。
      以上参数为通用起点,需结合压测与监控微调。

二 WebLogic 服务器参数

  • 监听与协议
    • 在管理控制台或 config.xml 明确 Listen Address(避免 0.0.0.0 引发非预期路由/安全组匹配),对外服务建议启用 SSL/TLS
  • 线程与队列
    • 调优 Execute Threads(工作线程)与 Accept Backlog(接受队列)。当队列满时新连接可能被拒绝,适当提高 backlog 并结合压测找到拐点。
  • 数据源与后端连接
    • 合理设置 Initial/Max CapacityIncrementInactivity TimeoutConnection Harvesting,避免连接风暴与泄漏。
  • 传输与压缩
    • 启用 HTTP Keep-Alive、合理 Keep-Alive Timeout;启用 GZIP 压缩对文本类响应有效(注意 CPU 权衡)。
  • 协议与头部
    • 启用 HTTP/1.1HTTP/2(取决于版本与前端),减少连接开销;精简无用响应头。
  • 外部前置
    • 高并发/长连接场景建议前置 Nginx/Apache HTTPD/负载均衡器 做连接卸载、静态资源服务与 TLS 终止。
      上述调优项与 Linux 层参数协同生效,优先通过压测验证吞吐、P95/P99 延迟与错误率。

三 防火墙与安全组放行

  • 放行管理端口与应用端口(示例:7001/7002/80/443),并仅对可信网段开放。
  • firewalld(RHEL/CentOS 7+)
    • 永久放行:firewall-cmd --permanent --add-port=7001/tcp
    • 重新加载:firewall-cmd --reload
  • iptables(传统/兼容场景)
    • 放行示例:-A INPUT -p tcp -m state --state NEW -m tcp --dport 7001 -j ACCEPT
    • 保存与重启按发行版流程执行。
  • 云环境同步放行 安全组 入站规则,避免仅改本机防火墙仍不通。
  • 变更前先验证:netstat -tulpen | grep 7001ss -lntp | grep 7001telnet <host> 7001curl -Iv http://<host>:7001/console
    以上步骤可快速排除“端口未放行/策略冲突”导致的访问失败。

四 验证与持续监控

  • 基线采集
    • 连接与队列:ss -snetstat -s | egrep "listen|drop"cat /proc/net/sockstat
    • 端口与监听:ss -lntp | grep javalsof -Pan -p $(pidof java) -iTCP -sTCP:LISTEN
  • 运行时观测
    • 关注 SYN 重传、Accept 队列溢出、TIME_WAIT 累积、连接超时/重置 等指标。
  • 压测与回溯
    • 使用 JMeter/ wrk/ ab 做渐进式并发压测,结合 GC/线程/网络 指标定位瓶颈。
  • 动态与持久化
    • 动态验证:echo 16384 > /proc/sys/net/core/somaxconn(测试无误后写入 /etc/sysctl.conf 并用 sysctl -p 持久化)。
  • 变更原则
    • 小步调整、逐项验证、保留回滚方案,生产变更配合灰度/维护窗口。
      持续监控与回归测试能确保调优收益稳定落地。

0