Squid优化完全手册(2)

三、 使用reiserfs文件系统

有人做过测试,在相同条件下,如果cache分区使用reiserfs文件系统,性能要比使用ext2的高出20%,所以我们将在cache分区中采用reiserfs文件系统。在上一步中,我们已经在内核中提供了对reiserfs的支持,下面我们要做的,就是将原来的cache分区重新格式化成reiserfs文件系统。

首先从ftp://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.x.0j.tar.gz下载reiserfs文件系统相关工具reiserfsprogs,然后解开该文件: 
tar xvzf reiserfsprogs-3.x.0j.tar.gz

进入新生成目录,执行: 
./configure 
make 
make install 
这将生成mkreiserfs、reiserfsck、debugreiserfs、resize_reiserfs四个reiserfs的工具。

完成后我们将reiserfs工具安装成功了。这时,假设原来的cache分区为/dev/sda7,所装载的目录为/cache,在对其格式化之前,我们要先umount 原来的分区: 
umount /cahce

对分区格式化,我们执行: 
mkreiserfs –h r5 /de/sda7

完成后我们修改/etc/fstab,将/cache一行改为: 
/dev/sda7 /cache reiserfs notail,noatime 0 0 
然后重启动。

四、 重新编译squid

经过大量的测试表明:squid-2.2.STABLE5+hno补丁的组合要比2.3或者是其他版本的squid都要稳定的多、效率也要高的多,如果您不相信可以自己化几天时间做一下测试。所以我们将采用这个版本的squid。 
首先从http://www.squid-cache.org/Versions/v2/2.2/下载squid-2.2.STABLE5-src.tar.gz, 从http://prdownloads.sourceforge.net/squid/下载squid-2.2.STABLE5-hno.20000202.snapshot.gz补丁,然后分别解开这两个包: 
tar xvzf squid-2.2.STABLE5-src.tar.gz 
gunzip –d squid-2.2.STABLE5-hno.20000202.snapshot.gz

然后打补丁: 
cd squid-2.2.STABLE5 
patch –p1 < ../ squid-2.2.STABLE5-hno.20000202.snapshot

接下来,就可以开始编译squid了,在采用异步io(多线程模式)之外,我们本着这样一个原则:那就是去掉一切不需要的功能,如下所示: 
./configure --prefix=/usr --exec_prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid --localstatedir=/var --sysconfdir=/etc/squid --mandir=/usr/share/man --enable-async-io=20 --disable-icmp --disable-delay-pools --disable-mem-gen-trace --disable-useragent-log --enable-kill-parent-hack --disable-arp-acl --enable-poll --disable-ident-lookups

make 
make install

其中,--enable-async-io=20说明我们采用异步io,并采用18个线程。 
编译通过后,我们就可以开始配置squid了。

五、 优化squid配置

以下是我的squid.conf及相关解释:

#取消对代理阵列的支持 
icp_port 0

#对日志文件和pid文件位置进行设置 
cache_store_log none 
cache_access_log /var/log/squid/access.log 
cache_log /var/log/squid/cache.log 
emulate_httpd_log on 
pid_filename /var/run/squid.pid

#设置运行时的用户和组权限 
cache_effective_user squid 
cache_effective_group squid

#设置管理信息 
visible_hostname proxy.yxtc.edu.cn 
cache_mgr bye2000@yxtc.edu.cn

#设置监听地址和端口 
http_port 3128 
tcp_incoming_address x.x.x.x 
udp_incoming_address x.x.x.x

#见下面补充说明 
cache_mem 32 MB 
cache_dir /cache 6000 14 256

#设置cache对象超时时间 
reference_age 3 months

#访问控制设置 
acl mynet src 192.168.1.0/255.255.255.0 
acl all src 0.0.0.0/0.0.0.0 
http_access allow mynet 
http_access deny all

#透明代理设置 
httpd_accel_host virtual 
httpd_accel_port 80 
httpd_accel_with_proxy on 
httpd_accel_uses_host_header on

#swap 性能微调 
half_closed_clients off 
cache_swap_high 100% 
cache_swap_low 80% 
maximum_object_size 1024 KB

#见补充说明 
refresh_pattern -i .html 1440 90% 129600 reload-into-ims 
refresh_pattern -i .shtml 1440 90% 129600 reload-into-ims 
refresh_pattern -i .hml 1440 90% 129600 reload-into-ims 
refresh_pattern -i .gif 1440 90% 129600 reload-into-ims 
refresh_pattern -i .swf 1440 90% 129600 reload-into-ims 
refresh_pattern -i .jpg 1440 90% 129600 reload-into-ims 
refresh_pattern -i .png 1440 90% 129600 reload-into-ims 
refresh_pattern -i .bmp 1440 90% 129600 reload-into-ims 
refresh_pattern -i .js 1440 90% 129600 reload-into-ims

补充说明:

1.cache_mem 32 MB 
注意:cache_mem并不是squid所能使用内存的大小,而是squid用户hot object的物理内存的大小,所以这个值可以小一些。

2.cache_dir /cache 6000 14 256 
对于第一级子目录和第二级子目录的计算方法,可以参考笔者以前的文章《用LINUX架设代理服务器(上)(中)(下)》;

3.refresh_pattern -i .html 1440 90% 129600 reload-into-ims等 
这几句其实是强行控制对象的超时时间,这违反了http协议的精神,但是在带宽较窄的场合,可以提高明显系统相应时间。

4.注意/cache目录及日志文件的权限,其所有用户和所有组必须为squid;

5.可以采用rpm包的脚本/etc/rc.d/init.d/squid控制squid,也可以采用squid命令控制,具体可以参考squid –h 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Squid 是自由软件和合作项目。假如你觉得squid 有用,请考虑以下面一种或几种方法来回报该项目: 1.参与squid 用户讨论列表,回答问题和帮助新用户。 2.测试新版本,报告bug 或其他问题。 3.致力于在线文档和FAQ。假如你发现错误,将它报告给维护者。 4.将你的局部修改提交给开发者。 5.对开发者提供财政支持。 6.告诉开发者你想要的新功能。 7.告诉你的朋友和同学,Squid 非常Cool。 内容目录: 目录: 第1章Squid 的简介性描述 1.1 Web 缓存 1.2 Squid 的简明历史 1.3 硬件和操作系统要求 1.4 squid 是开源的 1.5 Squid 的Web 主页 1.6 获取帮助 1.7 启动Squid 第2章获取Squid 2.1 版本和发布 2.2 使用源代 2.3 预编译的二进制文件 2.4 匿名CVS 2.5 devel.squid-cache.org 第3 章编译和安装 3.1 安装之前 3.2 解开源代码包 3.3 调整内核 3.4 Configure 脚本 3.5 编译 3.6 安装 3.7 打补丁 3.8 重运行configure 第4 章快速配置向导 4.1 squid.conf 语法 4.2 User IDs 4.3 端口号 4.4 日志文件路径 4.5 访问控制 4.6 可见主机名 4.7 管理联系信息 4.8 下一步 第5章运行Squid 5.1 squid 命令行选项 5.2 对配置文件查错 5.3 初始化cache 目录 5.4 在终端窗口里测试squid 5.5 将squid 作为服务进程运行 5.6 启动脚本 5.7 chroot 环境 5.8 停止squid 5.9 重配置运行中的squid 进程 5.10 滚动日志文件 第6 章访问控制 6.1 访问控制元素 6.2 访问控制规则 6.3 常见用法 6.4 测试访问控制 第7 章磁盘缓存基础 7.1 cache_dir指令 7.2 磁盘空间基准 7.3 对象大小限制 7.4 分配对象到缓存目录 7.5 置换策略 7.6 删除缓存对象 7.7 refresh_pattern 第8 章高级磁盘缓存主题 8.1 是否存在磁盘I/O瓶颈? 8.2 文件系统调整选项 8.3 可选择的文件系统 8.4 aufs存储机制 8.5 diskd存储机制 8.6 coss存储机制 8.7 null存储机制 8.8 哪种最适合我? 第9章Cache拦截 9.1它如何工作? 9.2为何要(或不要)拦截? 9.3 网络设备 9.4 操作系统配置 9.5 配置Squid 9.6 调试问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值