You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统下Squid代理服务器迁移后的系统参数调优咨询(含文件描述符不足问题)

Ubuntu系统下Squid代理服务器迁移后的系统参数调优咨询(含文件描述符不足问题)

兄弟,我刚看到你从RHEL迁移Squid到Ubuntu后遇到文件描述符不足的警告,还导致性能上不去的问题——这情况我之前帮同行处理过,先给你解决核心问题,再聊聊Ubuntu上运行Squid需要额外关注的系统调优点:

先搞定文件描述符不足的问题

你提到Squid当前的文件描述符上限是1024,这是Ubuntu默认的进程限制,比RHEL的默认设置要严格,所以会出现之前没遇到的警告。解决方法分临时应急和永久生效两种:

临时应急(重启后失效)

如果想立刻缓解问题,可以先临时调高Squid进程的文件描述符限制:

# 先找到Squid的进程PID,比如你这里是1966
sudo prlimit --nofile=65535:65535 -p 1966

之后重启Squid让新限制生效:

sudo systemctl restart squid

永久生效(推荐)

要让限制永久生效,需要修改systemd的服务配置,因为Ubuntu用systemd管理服务,这和RHEL的配置逻辑略有差异:

  1. 创建Squid的systemd覆盖配置文件:
sudo mkdir -p /etc/systemd/system/squid.service.d
sudo nano /etc/systemd/system/squid.service.d/override.conf
  1. 在文件里添加以下内容,把文件描述符上限调到足够大(比如65535,根据你的业务量调整):
[Service]
LimitNOFILE=65535
LimitNOFILESoft=65535
  1. 重载systemd配置并重启Squid:
sudo systemctl daemon-reload
sudo systemctl restart squid
  1. 验证是否生效:
# 查看Squid进程的文件描述符限制
cat /proc/$(pidof squid)/limits | grep "Max open files"

另外,也可以在系统全局的限制文件/etc/security/limits.conf里添加Squid用户的限制,双重保险:

squid soft nofile 65535
squid hard nofile 65535

Ubuntu上Squid运行的其他系统参数调优

除了文件描述符,Ubuntu还有几个系统层面的参数需要调整,来匹配Squid的代理负载:

内核网络参数调优

编辑/etc/sysctl.conf文件,添加或修改以下参数,优化网络连接处理能力:

# 增大监听队列的最大长度,避免连接被丢弃
net.core.somaxconn = 65535
# 网络设备接收队列的最大长度,适配高并发
net.core.netdev_max_backlog = 32768
# TCP握手队列的最大值,应对突发的连接请求
net.ipv4.tcp_max_syn_backlog = 65535
# 允许重用TIME_WAIT状态的套接字,快速释放连接资源
net.ipv4.tcp_tw_reuse = 1
# 缩短FIN_WAIT2的超时时间,减少无效连接占用
net.ipv4.tcp_fin_timeout = 30
# 降低TCP连接的内存压力
net.ipv4.tcp_mem = 8388608 12582912 16777216

修改后执行sudo sysctl -p让参数生效。

文件系统优化

如果你的Squid缓存目录挂载在ext4文件系统上,建议修改挂载选项来减少磁盘IO开销:
编辑/etc/fstab,找到缓存目录的挂载行,添加noatime,dir_index选项,比如:

/dev/sdb1 /var/spool/squid ext4 defaults,noatime,dir_index 0 2

然后执行sudo mount -o remount /var/spool/squid让挂载选项生效。

内存与交换分区优化

Ubuntu默认的交换分区使用策略比较激进,可能导致Squid进程被频繁换页,影响性能:
编辑/etc/sysctl.conf,添加:

# 降低交换分区使用优先级,优先用物理内存
vm.swappiness = 10
# 保证系统保留足够的空闲内存,避免OOM Killer误杀Squid
vm.min_free_kbytes = 65536

执行sudo sysctl -p生效。

备注:内容来源于stack exchange,提问作者shige

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 15:17:55