高负载squid配置经验最新版.docx

上传人:b****4 文档编号:11530540 上传时间:2023-03-18 格式:DOCX 页数:7 大小:20.43KB
下载 相关 举报
高负载squid配置经验最新版.docx_第1页
第1页 / 共7页
高负载squid配置经验最新版.docx_第2页
第2页 / 共7页
高负载squid配置经验最新版.docx_第3页
第3页 / 共7页
高负载squid配置经验最新版.docx_第4页
第4页 / 共7页
高负载squid配置经验最新版.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

高负载squid配置经验最新版.docx

《高负载squid配置经验最新版.docx》由会员分享,可在线阅读,更多相关《高负载squid配置经验最新版.docx(7页珍藏版)》请在冰豆网上搜索。

高负载squid配置经验最新版.docx

高负载squid配置经验最新版

编译squid

./configure

--perfix=PREFIX

这里设置安装目录。

--localstatedir=DIR

该选项允许你改变var目录的安装位置。

默认是$prefix/var。

--sysconfdir=DIR

该选项允许你改变etc目录的位置。

默认的是$prefix/etc。

--enable-async-io[=N_THREADS]

(用以提升存储性能。

aufs模块使用大量的线程来执行磁盘I/O操作。

该代码仅仅工作在linux和solaris系统中。

=N_THREADS参数改变squid使用的线程数量。

请注意--enable-async-io是打开其他三个./configure选项的快捷方式,它等同于:

--with-aufs-threads=N_THREADS

--with-pthreads

--enable-storeio=ufs,aufs

--with-pthreads

该选项导致编译过程链接到你系统中的P线程库。

aufs存储模块是squid中唯一需要使用线程的部分。

通常来说,如果你使用--enable-saync-io选项,那么不必再单独指定该选项,因为它被自动激活)

--enable-storeio=LIST

Squid支持大量的不同存储模块。

通过使用该选项,你告诉squid编译时使用哪个模块。

LIST=afus,diskd,ufsnull

--with-aufs-threads=N_THREADS

指定aufs存储机制使用的线程数量。

squid默认根据缓存目录的数量,自动计算需要使用多少线程。

--enable-removal-policies=LIST

排除策略是squid需要腾出空间给新的cache目标时,用以排除旧目标的机制。

支持3个排除策略:

最少近期使用(LRU),贪婪对偶大小(GDS),最少经常使用(LFU)。

LRU是默认的,它以双链表数据结构执行。

GDS和LFU使用堆栈的数据结构。

为了使用GDS或LFU策略,你指定:

%./configure--enable-removal-policies=heap

然后你在squid的配置文件里选择使用GDS或LFU。

假如你想重新使用LRU,那么指定:

%./configure--enable-removal-policies=heap,lru

--enable-icmp

squid能利用ICMP消息来确定回环时间尺寸,你能使用该选项来激活这些功能。

--enable-snmp

简单网络管理协议(SNMP)是监视网络设备和服务器的流行方法。

--enable-gnuregex:

由于Squid大量使用字符串处理做各种判断,加入此项能更好的处理。

--enable-kill-parent-hack:

关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦

--enable-cahce-digests:

加快请求时,检索缓存内容的速度。

--enable-err-language="Simplify_Chinese"

--enable-default-err-languages="Simplify_Chinese":

指定出错是显示的错误页面为简体中文

--enable-linux-netfilter:

可以支持透明代理

--with-maxfd=99999

文件描述符

--enable-dlmalloc[=LIB]

在一些系统上,内建的内存分配机制(malloc)在使用squid时表现不尽人意。

使用--enable-dlmalloc选项将squid源代码包中的dlmalloc包编译和链接进来。

假如你的系统中已安装dlmalloc,你能使用=LIB参数指定库的路径。

--enable-gnuregex

可以激活使用GNU正则表达式。

如果因为某些理由,你想强制使用GNU正则表达式,可以将这个选项加到./configure命令后。

--enable-carpCache

数组路由协议(CARP)用来转发丢失的cache到父cache的数组或cluster。

--enable-heap-replacement

该选项不再使用,但被保留用于向后兼容性。

你该使用--enable-removal-policies来代替。

--enable-delay-pools

延时池是squid用于传输形状或带宽限制的技术。

该池由大量的客户端IP地址组成。

当来自这些客户端的请求处于cache丢失状态,他们的响应可能被人工延迟。

--enable-useragent-log

该选项激活来自客户请求的HTTP用户代理头的日志。

--enable-referer-log

该选项激活来自客户请求的HTTPreferer日志。

--disable-wccp

Webcache协调协议(WCCP)是CISCO的专有协议,用于阻止或分发HTTP请求到一个或多个caches。

WCCP默认被激活,假如你愿意,可以使用该选项来禁止该功能。

--enable-cachemgr-hostname[=hostname]

cachemgr是一个CGI程序,你能使用它来管理查询squid。

默认cachemgr的hostname值是空的,但你能使用该选项来指定一个默认值。

例如%./configure--enable-cachemgr-hostname=

--enable-arp-acl

squid在一些操作系统中支持ARP,或者以太地址访问控制列表。

该代码使用非标准的函数接口,来执行ARP访问控制列表,所以它默认被禁止。

假如你在linux或solaris上使用squid,你可能用的上这个功能。

--enable-htcp

HTCP是超文本缓存协议--类似于ICP的内部缓存协议。

--enable-ssl

使用该选项赋予squid终止SSL/TLS连接的能力。

注意这仅仅工作在web加速器中用以加速请求。

--with-openssl[=DIR]

假如必要,你使用该选项来告诉squid到哪里找到OpenSSL库或头文件。

假如它们不在默认位置,在该选项后指定它们的父路径。

例如:

%./configure--enable-ssl--with-ssl=/opt/foo/openssl

在这个例子中,你的编译器将在/opt/foo/openssl/include目录中找头文件,在/opt/foo/openssl/lib中找库文件。

--enable-err-languages="lang1lang2..."squid

支持定制错误消息,错误消息可以用多种语言报告。

该选项指定复制到安装目录($prefix/share/errors)的语言。

假如你不使用该选项,所有可用语言被安装。

--with-coss-membuf-size=N

循环目录存储系统(coss)是squid的试验性存储机制。

该选项设置coss缓存目录的内存缓冲大小。

注意为了使用coss,你必须在--enable-storeio选项里指定存储类型。

该参数以字节形式赋值,默认是1048576字节或1M。

你能指定2M缓冲如下:

%./configure--with-coss-membuf-size=2097152

--disable-http-violationssquid

默认可以被配置成违背HTTP协议规范。

你能使用该选项来删除违背HTTP协议的代码。

--enable-ipf-transparent

描述如何配置squid来拦截缓存。

一些操作系统使用IPFilter包来协助拦截缓存。

在这些环境下你应该使用该./configure选项。

如果你使用了该选项,但是编译器提示src/client_side.c文件出错,那是因为IPFilter包没有或没有正确的安装在你的系统中。

--enable-pf-transparent

你可能需要指定该选项,使用PF包过滤器在操作系统中拦截HTTP。

PF是OpenBSD的标准包过滤器,也可能被发布到其他系统中。

假如你使用该选项,但是编译器提示src/client_side.c文件出错,那是因为PF没有实际安装到你的系统中。

--enable-linux-netfilter

Netfilter是linux2.4系列内核的包过滤器名字。

假如你想在linux2.4或以后的版本中使用HTTP拦截功能,那么激活该选项。

--disable-ident-lookups

ident是一个简单的协议,允许服务器利用客户端的特殊TCP连接来发现用户名。

假如你使用该选项,编译器将把执行这些查询的代码排除出去。

即使你在编译时保留了这些代码,除非你在squid.conf文件里指定,squid不会执行ident查询。

--disable-internal-dns

squid源代码包含两个不同的DNS解决方案,叫做“内部的”和“外部的”。

内部查询是默认的,但某些人可能要使用外部技术。

该选项禁止内部功能,转向使用旧的方式。

内部查询使用squid自己的DNS协议执行工具。

也就是说,squid产生未完成的DNS查询并且将它们发送到一个解析器。

假如超时,它重新发送请求,你能指定任意数量的解析器。

该工具的有利处之一是,squid获得准确无误的DNS响应的TTLs。

外部查询利用C库的gethostbyname()和gethostbyaddr()函数。

squid使用一个外部进程池来制造并行查询。

使用外部DNS解析的主要弊端是你需要更多的辅助进程,增加squid的负载。

另一个麻烦是C库函数不在响应里传输TTLs,这样squid使用postive_dns_ttl指令提供的一个常量值。

--enable-truncate

truncate()系统调用是unlink()的替代品。

unlink()完全删除cache文件,truncate()将文件大小设为零。

这样做释放了分配给该文件的磁盘空间,但留下适当的目录接口。

该选项存在的理由是,某些人相信(或希望)truncate()比unlink()性能表现更好。

然而,压力测试显示两者有很少的或根本没有区别。

--disable-hostname-checks

默认的,squid要求URL主机名在一定程度上遵守古老的RFC1034规范。

--enable-underscores

该选项控制squid针对主机名里下划线的行为。

通用的标准是主机名里不包含下划线字符。

squid默认会对URL主机名里带下划线的请求产生一条错误消息。

你能使用该选项,让squid信任它们.

--enable-auth[=LIST]

该选项控制在squid的二进制文件里支持哪种验证机制。

你能选择下列机制的任意组合:

basic,digest,ntlm。

假如你忽略该选项,squid仅仅支持basic验证。

假如你使用不带参数的--enable-auth选项,编译进程将增加对所有验证机制的支持。

你可以使用以逗号分隔的验证机制列表:

%./configure--enable-auth=digest,ntlm

 

将硬盘分区格式化为reiserfs具体方法为:

1、fdisk-l//查看硬盘分区默认是fdisk/dev/sda-l,也可能能过指定设备查看,如fdisk/dev/sdb-l(如果存在该硬盘)

2、fdisk/dev/sda,进入命令行进行分区管理。

Command(mforhelp):

m//查看所有的指令

Commandaction

atoggleabootableflag

beditbsddisklabel

ctogglethedoscompatibilityflag

ddeleteapartition

llistknownpartitiontypes

mprintthismenu

naddanewpartition

ocreateanewemptyDOSpartitiontable

pprintthepartitiontable

qquitwithoutsavingchanges

screateanewemptySundisklabel

tchangeapartition'ssystemid

uchangedisplay/entryunits

vverifythepartitiontable

wwritetabletodiskandexit

xextrafunctionality(expertsonly)

要创建新的分区键入n,提示你是划分主分区,还是逻辑分区,指定分区大小是以(10240MB),注意单位,如果不使用单位,会认为是硬盘的扇区块,不能超过总的大小划分完成后别忘输入w,将分区写入分区表。

例如:

  fdisk-l/dev/sda查看第一块硬盘分区情况

  fdisk/dev/sdb给第二块硬盘分区

  commandacton(mforhelp):

m#显示命令列表

a-设置可引导标志;

b-设置卷标;

d-删除一个分区;

n-新建分区

p-显示分区信息;

v-校验分区表;

q-不存盘退出;

w-存盘退出;

t-改变分区类型

  commandacton(mforhelp):

n新建分区

  commandaction

  eextended#扩展分区

  pprimarypartition(1-4)#主分区

  

p#创建主分区

  partitionnumber(1-4):

1#创建第一个主分区

  firstcylinder(1-522,default1):

1#起始柱面(第一个分区始终为1)

  lastcylinderor+sizeor+sizeMor+siezK(1-522,default522):

10#截止柱面(若522则整个硬盘分给了一个区)此分区大小是系统按照柱面大小自动计算出来的

3、格式化  

mkfs.reiserfs/dev/sdb1把第二块硬盘的第一个主分区格式化为reiserfs

squid在高负载的情况如果/var/logs/sys.log文件中出现了outofsocketmemory或者possibleSYNfloodingonport80.Sendingcookies得警告信息,如果系统资源还没问题的话,应该多数不是受到synflood,而是并发连接过多。

解决方法如下:

编辑/etc/sysctl.conf文件加入以下信息

net.ipv4.ip_local_port_range=102465536

net.core.rmem_max=16777216

net.core.wmem_max=16777216

net.ipv4.tcp_rmem=40968738016777216

net.ipv4.tcp_wmem=40966553616777216

net.ipv4.tcp_fin_timeout=10

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_timestamps=0

net.ipv4.tcp_window_scaling=0

net.ipv4.tcp_sack=0

dev_max_backlog=3000000

net.ipv4.tcp_no_metrics_save=1

net.core.somaxconn=262144

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_max_orphans=262144

net.ipv4.tcp_max_syn_backlog=81920000

net.ipv4.tcp_synack_retries=1

net.ipv4.tcp_syn_retries=1

net.ipv4.tcp_mem=78643210485761572864

filter.ip_conntrack_max=1048576

保存退出后输入sysctl–p使配置生效。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1