最新版本:3.0.2-1

|
概览 |
|
|
目录 |
系统 |
|
类别 |
杂项 组件 |
|
用户卷 |
yes |
|
最小 内存 |
96M |
|
操作系统 |
Linux |
|
约束 |
否 |
|
问题/注释 |
|
SQUID 是正向或反向缓存代理组件。 SQUID 充当代理,接受其 in 终端上的客户端发出的 HTTP 请求,并将请求传递到 out 终端上连接的相应服务器。 它在内存中和磁盘上的缓存中存储返回数据的副本。 如果多次请求了相同的数据,缓存的数据将返回到客户端,从而可以加速访问并减少源服务器负载。
SQUID 支持两种模式的操作:代理模式和 Web 加速器模式。
代理模式
在代理模式下,SQUID 充当正向缓存代理,它通常安装在一个或多个客户端与 Internet 之间。 它保存频繁请求的数据的本地副本,并在适当的时候返回缓存的内容,从而加快服务请求并减少上行带宽。
Web 加速器模式
在 Web 加速器模式下,SQUID 充当缓存反向代理,且其通常安装在一个或多个 Web 服务器的前面。 流向 Web 服务器的所有流量都要通过 SQUID。 SQUID 将保存频繁请求的数据的本地副本,并在适当的情况下返回缓存的内容,从而减少后端服务器上的响应时间和负载。
|
资源 |
最小值 |
最大值 |
默认值 |
已测试 |
|
CPU |
0.05 |
2 |
0.2 |
2 |
|
内存 |
96 MB |
4 GB |
256 MB |
4 GB |
|
带宽 |
1 Mbps |
2 Gbps |
250 Mbps |
1.5 Gbps |
SQUID 需要的内存量取决于缓存卷大小和并发请求数。 SQUID 最多使用 10 MB 内存为 1 GB 缓存存储编制索引。 因此,使用 100 GB 缓存卷时需要再增加 1 GB 内存。 此外,部分内存量用于为每个连接提供服务。 SQUID 最多使用 20 MB 内存为 1000 个并发连接提供服务。 因此,如果预期有 5000 个并发连接,SQUID 内存应增加 100 MB。
重要信息! 如果内存不足,SQUID 可能无法正常工作。
|
名称 |
dir |
协议 |
说明 |
|
in |
in |
HTTP |
接受传入请求。 |
|
out |
out |
HTTP |
将流量外发到目标服务器并接收响应。 |
|
日志 |
out |
CIFS |
访问用于存储日志的基于 CIFS 的网络文件系统。 已连接的服务器必须允许匿名登录并拥有名称为 share 的读写共享。 如果不使用此终端,可以让它保持未连接状态。 |
|
mon |
out |
CCE |
发送性能和资源使用统计信息。 如果未使用该终端,则可将其保持未连接状态。 |
|
名称 |
说明 |
|
cache |
缓存文件存储的卷。 该卷是强制性卷。 缓存卷的最小大小为 100M。 |
注意:
|
名称 |
类型 |
说明 |
|
mode |
字符串 |
操作方式。 有效值为 proxy 或 web_accelerator。 |
|
listen_port |
Int |
接受处于 proxy 模式的内部客户端发出的请求或处于 web_accelerator 模式的外部网站用户发出的请求的端口。 |
|
hostname |
字符串 |
要在错误消息中使用的主机名。 |
|
connect_timeout |
Int |
SQUID 等待 TCP 连接到所请求服务器的超时值(秒)。 如果超过该超时值,SQUID 将使用错误消息“连接超时”向客户端作出响应。 |
|
名称 |
类型 |
说明 |
|
log_enable |
字符串 |
启用或禁用访问日志。 |
|
log_filename |
字符串 |
访问日志的文件名,相对于通过日志终端访问的文件系统。 文件名可以包括路径,例如:使用值 access.log 会将日志文件指定为 /mnt/log/access.log,而使用值 /proxy_logs/squid1_access.log 会将日志文件指定为 /mnt/log/proxy_logs/squid1_access.log。 |
|
log_format |
字符串 |
访问日志的格式。 |
SQUID 组件通过 mon 终端报告以下自定义计数器。
|
SNMP 计数器名称 |
计数器名称 |
描述 |
|
SQUID-MIB::cacheSysVMsize |
SysVMsize |
内存缓存大小 (KB)。 |
|
SQUID-MIB::cacheSysStorage |
SysStorage |
磁盘缓存大小 (KB)。 |
|
SQUID-MIB::cacheUptime |
Uptime |
SQUID 运行时间(以时间刻度-1/100 秒为单位)。 |
|
SQUID-MIB::cacheSysPageFaults |
SysPageFaults |
包含物理 I/O 的页面错误。 |
|
SQUID-MIB::cacheSysNumReads |
SysNumReads |
HTTP I/O 读取数。 |
|
SQUID-MIB::cacheMemUsage |
MemUsage |
SQUID 使用的总内存 (KB)。 |
|
SQUID-MIB::cacheCpuTime |
CpuTime |
使用的 cpu 秒数。 |
|
SQUID-MIB::cacheCpuUsage |
CpuUsage |
CPU 使用百分比。 |
|
SQUID-MIB::cacheMaxResSize |
MaxResSize |
最大驻留大小 (KB)。 |
|
SQUID-MIB::cacheNumObjCount |
NumObjCount |
存储在缓存中的对象数。 |
|
SQUID-MIB::cacheCurrentUnlinkRequests |
CurrentUnlinkRequests |
提供给 unlinkd 的请求。 |
|
SQUID-MIB::cacheCurrentUnusedFDescrCnt |
CurrentUnusedFDescrCnt |
文件描述符的可用数量。 |
|
SQUID-MIB::cacheCurrentResFileDescrCnt |
CurrentResFileDescrCnt |
文件描述符的保留数量。 |
|
SQUID-MIB::cacheCurrentFileDescrCnt |
CurrentFileDescrCnt |
正在使用的文件描述符数。 |
|
SQUID-MIB::cacheCurrentFileDescrMax |
CurrentFileDescrMax |
正在使用的最大文件描述符数。 |
|
SQUID-MIB::cacheProtoClientHttpRequests |
ProtoClientHttpRequests |
接收的 HTTP 请求数。 |
|
SQUID-MIB::cacheHttpHits |
HttpHits |
缓存 HTTP 命中数。 |
|
SQUID-MIB::cacheHttpErrors |
HttpErrors |
缓存 HTTP 错误数。 |
|
SQUID-MIB::cacheHttpInKb |
HttpInKb |
接收的 HTTP 流量 (KB)。 |
|
SQUID-MIB::cacheHttpOutKb |
HttpOutKb |
发送的 HTTP 流量 (KB)。 |
|
SQUID-MIB::cacheServerRequests |
ServerRequests |
客户端针对缓存服务器发出的请求数。 |
|
SQUID-MIB::cacheServerErrors |
ServerErrors |
客户端针对缓存服务器发出的请求的所有错误 |
|
SQUID-MIB::cacheServerInKb |
ServerInKb |
来自服务器的传入流量 (KB)。 |
|
SQUID-MIB::cacheServerOutKb |
ServerOutKb |
流向服务器的传出流量 (KB)。 |
|
SQUID-MIB::cacheClients |
Clients |
访问缓存的客户端数 |
|
SQUID-MIB::cacheHttpAllSvcTime.1 |
HttpAllSvcTime1 |
在处理 HTTP 请求上花费的 CPU 时间(最后 1 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpAllSvcTime.5 |
HttpAllSvcTime5 |
在处理 HTTP 请求上花费的 CPU 时间(最后 5 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpAllSvcTime.60 |
HttpAllSvcTime60 |
在处理 HTTP 请求上花费的 CPU 时间(最后 60 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpMissSvcTime.1 |
HttpMissSvcTime1 |
在处理缓存错失上花费的 CPU 时间(最后 1 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpMissSvcTime.5 |
HttpMissSvcTime5 |
在处理缓存错失上花费的 CPU 时间(最后 5 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpMissSvcTime.60 |
HttpMissSvcTime60 |
在处理缓存错失上花费的 CPU 时间(最后 60 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpNmSvcTime.1 |
HttpNmSvcTime1 |
在处理缓存命中上花费的 CPU 时间(内容未修改)(最后 1 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpNmSvcTime.5 |
HttpNmSvcTime5 |
在处理缓存命中上花费的 CPU 时间(内容未修改)(最后 5 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpNmSvcTime.60 |
HttpNmSvcTime60 |
在处理缓存命中上花费的 CPU 时间(内容未修改)(最后 60 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpHitSvcTime.1 |
HttpHitSvcTime1 |
在处理缓存命中上花费的 CPU 时间(最后 1 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpHitSvcTime.5 |
HttpHitSvcTime5 |
在处理缓存命中上花费的 CPU 时间(最后 5 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpHitSvcTime.60 |
HttpHitSvcTime60 |
在处理缓存命中上花费的 CPU 时间(最后 60 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheDnsSvcTime.1 |
DnsSvcTime1 |
在处理 DNS 请求上花费的 CPU 时间(最后 1 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheDnsSvcTime.5 |
DnsSvcTime5 |
在处理 DNS 请求上花费的 CPU 时间(最后 5 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheDnsSvcTime.60 |
DnsSvcTime60 |
在处理 DNS 请求上花费的 CPU 时间(最后 5 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheRequestHitRatio.1 |
RequestHitRatio1 |
请求命中率(最后 1 分钟,以百分比为单位,刻度为 0-100)。 |
|
SQUID-MIB::cacheRequestHitRatio.5 |
RequestHitRatio5 |
请求命中率(最后 5 分钟,以百分比为单位,刻度为 0-100)。 |
|
SQUID-MIB::cacheRequestHitRatio.60 |
RequestHitRatio60 |
请求命中率(最后 60 分钟,以百分比为单位,刻度为 0-100)。 |
|
SQUID-MIB::cacheRequestByteRatio.1 |
RequestByteRatio1 |
字节命中率(最后 1 分钟,以百分比为单位,刻度为 0-100)。 |
|
SQUID-MIB::cacheRequestByteRatio.5 |
RequestByteRatio5 |
字节命中率(最后 5 分钟,以百分比为单位,刻度为 0-100)。 |
|
SQUID-MIB::cacheRequestByteRatio.60 |
RequestByteRatio60 |
字节命中率(最后 60 分钟,以百分比为单位,刻度为 0-100)。 |
|
SQUID-MIB::cacheHttpNhSvcTime.1 |
HttpNhSvcTime1 |
在处理缓存命中上花费的 CPU 时间(内容刷新)(最后 1 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpNhSvcTime.5 |
HttpNhSvcTime5 |
在处理缓存命中上花费的 CPU 时间(内容刷新)(最后 5 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheHttpNhSvcTime.60 |
HttpNhSvcTime60 |
在处理缓存命中上花费的 CPU 时间(内容刷新)(最后 60 分钟,以秒为单位)。 |
|
SQUID-MIB::cacheIpEntries |
IpEntries |
IP 缓存条目。 |
|
SQUID-MIB::cacheIpRequests |
IpRequests |
IP 缓存请求数。 |
|
SQUID-MIB::cacheIpHits |
IpHits |
IP 缓存命中数。 |
|
SQUID-MIB::cacheIpPendingHits |
IpPendingHits |
IP 缓存未决命中数。 |
|
SQUID-MIB::cacheIpNegativeHits |
IpNegativeHits |
IP 缓存负命中数。 |
|
SQUID-MIB::cacheIpMisses |
IpMisses |
IP 缓存错失数。 |
|
SQUID-MIB::cacheBlockingGetHostByName |
BlockingGetHostByName |
阻止 gethostbyname 请求的次数。 |
|
SQUID-MIB::cacheAttemptReleaseLckEntries |
AttemptReleaseLckEntries |
尝试释放已锁定 IP 缓存条目的次数。 |
|
SQUID-MIB::cacheFqdnEntries |
FqdnEntries |
FQDN 缓存条目。 |
|
SQUID-MIB::cacheFqdnRequests |
FqdnRequests |
FQDN 缓存请求数。 |
|
SQUID-MIB::cacheFqdnHits |
FqdnHits |
FQDN 缓存命中数。 |
|
SQUID-MIB::cacheFqdnPendingHits |
FqdnPendingHits |
FQDN 缓存未决命中数。 |
|
SQUID-MIB::cacheFqdnNegativeHits |
FqdnNegativeHits |
FQDN 缓存负命中数。 |
|
SQUID-MIB::cacheFqdnMisses |
FqdnMisses |
FQDN 缓存错失数。 |
|
SQUID-MIB::cacheBlockingGetHostByAddr |
BlockingGetHostByAddr |
阻止 gethostbyaddr 请求的次数。 |
|
SQUID-MIB::cacheDnsRequests |
DnsRequests |
外部 dnsserver 请求数。 |
|
SQUID-MIB::cacheDnsReplies |
DnsReplies |
外部 dnsserver 回复数。 |
|
SQUID-MIB::cacheDnsNumberServers |
DnsNumberServers |
外部 dnsserver 进程数。 |
|
SQUID-MIB::cachePeerRtt |
PeerRtt |
与对等方之间的上一个已知往返时间(毫秒)。 |
在组件启动失败的情况下,系统日志可能记录以下错误消息:
|
错误消息 |
描述 |
|
缓存卷不可访问。 |
组件无法访问缓存卷,可能是因为文件系统已损坏。 |
|
已启用访问日志,但未连接日志终端。 |
日志终端未连接,但 log_enable 设置为 yes。 |
|
无法运行 squid。 |
组件无法启动。 可能原因是用户定义的配置中存在错误。 |
下表包含禁用日志记录的情况下获得的基准结果(以每秒请求数 (rps) 为单位进行指定)。 启用日志记录时,SQUID 的性能可能会下降。 基准是使用 Apache Web 服务器版本 2.0 和 2.2 随附的 Apache Benchmark 实用工具生成的。 Apache 网站上提供了有关 Apache 基准的更多信息。 使用下列设置执行基准测试:bw=500M mem=2G cpu=2。
缓存命中
|
并发 |
rps |
|
1 个并发客户端 |
1500-1800 rps |
|
10 个并发客户端 |
5800-6200 rps |
|
100 个并发客户端 |
7400-7800 rps |
|
500 个并发客户端 |
5300-5500 rps |
|
1000 个并发客户端 |
5300-5500 rps |
缓存错失
|
并发 |
rps |
|
1 个并发客户端 |
700-800 rps |
|
10 个并发客户端 |
2000-2200 rps |
|
100 个并发客户端 |
1900-2100 rps |
|
500 个并发客户端 |
1800-2000 rps |
|
1000 个并发客户端 |
1600-1800rps |
使用 SQUID 可以通过为所有静态文档提供服务来减少 AppServer 上的负载。 注意:如果 java 应用为生成的文档设置了 Expires: HTTP 头,SQUID 将在这些文档的生存期内为其提供服务。
正在使用的组件:
示例属性配置:
|
属性名 |
值 |
说明 |
|
mode |
web_accelerator |
SQUID 以 Web 加速器模式运行,充当反向缓存代理 |
|
listen_port |
80 |
HTTP 请求的默认端口。 |
|
主机名 |
www.host.com |
在错误消息中使用的主机名 |
SQUID 用于加快许多 Web 服务器的速度。 在本例中,有一个 URLSW 组件通过 url 将请求分发到不同的 Web 服务器。 正在使用的组件:
SQUID 的示例属性配置:
|
属性名 |
值 |
注释 |
|
mode |
web_accelerator |
SQUID 以 Web 加速器模式运行,充当反向缓存代理 |
|
listen_port |
80 |
HTTP 请求的默认端口。 |
|
hostname |
www.host1.com |
在错误消息中使用的主机名 |
交换机配置:
|
属性名 |
值 |
注释 |
|
out1_type |
hostname |
|
|
out1_value |
host1.com |
对 host1.com 的请求由 server1 提供服务 |
|
out2_type |
hostname |
|
|
out2_value |
host2.com |
对 host2.com 的请求由 server2 提供服务 |
|
out3_type |
hostname |
|
|
out3_value |
host3.com |
对 host3.com 的请求由 server3 提供服务 |
|
out4_type |
hostname |
|
|
out4_value |
host4.com |
对 host4.com 的请求由 server4 提供服务 |
对于内容处理任务,SQUID 可以加速提取重复请求,减少目标 Web 服务器上的负载和带宽使用。 在本例中,如果 crawler1 已请求来自 Internet 的一些内容(如网页、pdf 文档或图片),其他爬网程序将接收相同内容的缓存结果。

正在使用的组件:
示例属性配置:
|
属性名 |
值 |
注释 |
|
mode |
代理 |
SQUID 以代理模式运行,充当正向缓存代理 |
|
listen_port |
3128 |
SQUID 在其上侦听 HTTP 请求的端口。 |
|
hostname |
proxy.enterprise.local |
在错误消息中使用的主机名 |
组件内所用的开源和第三方软件
SQUID 除了使用其基类 LUX6 所用的第三方开源软件包之外,还使用下列第三方/开源软件包。
|
软件 |
版本 |
已修改 |
许可 |
注释 |
|
net-snmp |
5.5-41.el6_3.1 |
No |
BSD |
不适用 |
|
net-snmp-libs |
5.5-41.el6_3.1 |
No |
BSD |
不适用 |
|
net-snmp-utils |
5.5-41.el6_3.1 |
No |
BSD |
不适用 |
|
samba-client |
3.5.10-125 |
No |
GPLv2 |
不适用 |
|
samba-common |
3.5.10-125 |
No |
GPLv2 |
不适用 |
|
libsmbclient |
3.5.10-125 |
No |
GPLv2 |
不适用 |
|
squid |
3.1.10-9.el6_3 |
No |
GPLv2 |
不适用 |
|
lm_sensors |
3.1.1-10 |
No |
GPLv2 |
不适用 |
|
dmidecode |
2.11-2 |
No |
GPLv2 |
不适用 |
|
perl-DBI |
1.609-4 |
No |
GPLv2 |
不适用 |
|
版权所有 © 2013 CA。
保留所有权利。
|
|