博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Squid优化完全手册(2)(转)
阅读量:2449 次
发布时间:2019-05-10

本文共 3608 字,大约阅读时间需要 12 分钟。

Squid优化完全手册(2)(转)[@more@]

三、 使用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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-940648/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-940648/

你可能感兴趣的文章
如何在Microsoft表单中添加分支
查看>>
找到丢失的磁贴跟踪器后如何获取通知
查看>>
android 更改软键盘_如何在Android上更改Google键盘的主题
查看>>
kodi 缓存文件夹_如何将Kodi图稿与视频存储在同一文件夹中
查看>>
windows隐藏磁盘_如何在Windows的磁盘清理工具中启用隐藏选项
查看>>
如何在Linux或macOS终端中使用Bash历史记录
查看>>
photos设置成中文_如何在OS X的Photos中设置和使用扩展程序
查看>>
大剧院自助签证_如果您的项目是《剧院》,请使用演员
查看>>
windows终端终端_Windows终端介绍
查看>>
小额免密_如何在您的应用中进行小额付款
查看>>
用开源代码如何建立网站_建立全球开源法律网络
查看>>
c&c++语言参考手册_C ++值类别快速参考:第2部分
查看>>
javascript优化_优化性能的十大JavaScript技巧
查看>>
传统网络面临问题_我们每天都面临的最流行的计算机问题
查看>>
aws cmake .._如何将Hyperledger Fabric 1.4部署到AWS
查看>>
unity 场景优化_Unity优化:您的场景层次正在抢劫您
查看>>
如何制作电子邮件而不是一团糟:实用技巧
查看>>
理想商城_理想产品经理的52个特征
查看>>
移动应用程序开发_7种用于移动应用程序开发的终极编程语言
查看>>
本地应用程序_应用程式本地化的十大语言
查看>>