AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 21015
Accepted
Jindrich
Jindrich
Asked: 2009-06-06 21:50:04 +0800 CST2009-06-06 21:50:04 +0800 CST 2009-06-06 21:50:04 +0800 CST

squid 代理的缓慢响应 - 优化

  • 772

我们在 Centos5.3 上使用squid 3.0 ,目前有 20 个用户(Internet Explorer)使用这个代理。问题是通过代理的访问速度较慢。即使是像 google.com(.au) 这样的简单网页,也比没有代理的直接连接要长 5 秒。看起来有大约 2-5 秒的延迟。禁用 google.com(.au) 的缓存没有帮助。明确定义 dns_nameservers 没有区别。

服务器参数:双核 AMD Opteron(tm) 处理器 2220、6GB 内存、60gb SCSI 硬盘

cache_mem 256 MB
cache_dir ufs /usr/local/squid/var/cache 30000 16 256
maximum_object_size_in_memory 256 KB
minimum_object_size 0 KB(0 - 200 KB - 没有真正的区别,延迟仍然存在)
maximum_object_size 32 MB

您将如何根据服务器规范更改 squid.conf 中的这些规范。什么会导致延迟?对于像 yahoo.com.au 这样更大的网页,还有一种方法可以从缓存中接收页面的一部分,然后再接收其余部分(最后是图片)。目前 15 秒内没有任何内容,然后出现整个网页。

centos proxy squid
  • 3 3 个回答
  • 21168 Views

3 个回答

  • Voted
  1. Best Answer
    David Pashley
    2009-06-06T21:59:29+08:002009-06-06T21:59:29+08:00

    我的第一个预感是使用 tcpdump 嗅探流量并将其加载到wireshark 以查看延迟发生在哪里。

    tcpdump -i any -s 0 -w /tmp/squid.pcap

    (如果您通过 ssh 执行此操作,请在末尾添加“not port ssh”。)

    一旦你把它加载到wireshark中,你应该能够看到延迟出现在哪里。我建议在安静的时间这样做,这样就不会有太多的交通遮挡您的视线。如果您可以成为当时唯一访问代理的人,那就更好了。

    可能的延误是:

    • 浏览器联系代理
    • 代理联系网络服务器
    • 代理 DNS 请求
    • 代理向浏览器返回响应
    • 7
  2. Mei
    2009-06-06T23:10:37+08:002009-06-06T23:10:37+08:00

    对于某些网页,在几乎整个页面(图像和所有内容)下载之前,无法绘制页面。为了加快这样的页面,你可以做一些事情:

    • 使用网络缓存(就像你已经使用的那样):这可以更快地引入图像。
    • 使用更快的机器:大部分时间可能是在“组合”——也就是说,布置网页以供显示,而不是获取信息。
    • 使用更快的浏览器:这与上面的相同。如果使用 IE5,请尝试 IE6 或 IE7。如果使用 Firefox 2,请尝试 Firefox 3 或 Safari。

    在过去的日子里,我曾经用 Internet Explorer 浏览 Macintosh(当时是 68k)。我清楚地记得看到“报纸”图标告诉你等待,因为 IE 正在计算如何显示页面(没有获取数据:计算......)

    另一件需要注意的事情:某些页面会明确要求它们不被缓存:缓存管理员决定是否允许或拒绝这些请求。通常,这些页面是那些经常更改或 Web 管理员不希望存储在其他地方的页面。因此,在这样的页面中,您将涉及额外的开销,因为 Web 缓存必须代表您处理该页面,即使缓存中根本没有页面。

    我同意嗅探流量是确定事情延迟的好方法。网络流的哪一部分实际上导致了延迟?

    Wireshark(和 tcpdump)有一大组过滤器,可用于清理流量:您真正必须等到安静时间的唯一原因是为了避免拥有大量 TCP 转储文件。但是,您可以获得一组合理的数据,只需将自己限制为直接到代理的网络流量:

    tcpdump -s 0 -n -w tcpdump.dat port 3128
    

    (端口 3128 是标准的 squid 端口:使用适合您的任何端口。)

    使用 Wireshark,您可以立即根据单个 TCP 流量流进行过滤:因此您也不必担心不同流的混合。

    还要查看 /var/log/squid 中的日志并检查请求发生了什么:它是否来自缓存?它来自远程站点吗?尝试重复请求 - 运行一次后页面会更快出现吗?

    • 3
  3. Steve Spurrell
    2010-12-01T18:14:32+08:002010-12-01T18:14:32+08:00

    当我遇到完全相同的问题时,我发现这是一个 DNS 问题。

    一旦我将 squid.conf 中的 DNS 服务器更改为我们的 ISP,延迟就消失了。

    • 1

相关问题

  • 在将联网的第 3 方 Windows CE 设备添加到网络时,我们如何缓解安全问题?

  • CentOS 的百胜安全?

  • 当公司网络被锁定时,如何在公司网络中下载可执行文件?

  • 外部托管的代理服务器作为内部 HTTP 服务器的前端

  • 使用 IIS7 请求路由和负载平衡模块进行负载平衡

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve