linux中squid3(高命中率)缓存服务器配置

标签: linux squid3 缓存 | 发表时间:2014-10-21 22:52 | 作者:adsen
出处:http://www.iteye.com
今天对我的varnish进行了下小小的压力测试,40s里的8000并发,没有失败一个,估计还可以承受更大的并发,先不说varnish了,我最近找到个命中率很高的squid的配置文件,当然是squid3.0的配置文件,有需要的可以copy回去自己改.
  系统:centos 5.x
  需要的软件:squid-3.0.STABLE25.tar.gz
1.下载squid

代码如下 复制代码
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
tar zxf squid-3.0.STABLE25.tar.gz && cd squid-3.0.STABLE25

2.编译squid

代码如下 复制代码
./configure --prefix=/usr/local/squid
--enable-async-io=100
--with-pthreads
--enable-storeio="aufs,diskd,ufs"
--enable-removal-policies="heap,lru"
--enable-icmp
--enable-delay-pools
--enable-useragent-log
--enable-referer-log
--enable-kill-parent-hack
--enable-arp-acl
--enable-default-err-language=Simplify_Chinese
--enable-err-languages="Simplify_Chinese English"
--disable-poll
--disable-wccp
--disable-wccpv2
--disable-ident-lookups
--disable-internal-dns
--enable-basic-auth-helpers="NCSA"
--enable-stacktrace
--with-large-files
--disable-mempools
--with-filedescriptors=65536
--enable-ssl
--enable-x-accelerator-var

make
make install
make install-pinger


3.配置squid

代码如下 复制代码
cp /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.old
>/usr/local/squid/etc/squid.conf
ln -s /usr/local/squid/etc/squid.conf /etc/squid.conf

squid.conf里的内容:

代码如下 复制代码
#accel listen port
http_port 80 accel vhost vport
#accel domain
cache_peer xx.xx.xx.xx parent 80 0 no-query originserver no-digest name=a
cache_peer_domain a www.111cn.net

#acl
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80       # http
acl Safe_ports port 8080
acl LanSrc src all
acl LanDst dst all
acl LanDstDM dstdomain www.111cn.net

acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow LanSrc
http_access allow LanDst
http_access allow LanDstDM
http_access deny   all

#base
visible_hostname www.111cn.net
cache_mgr [email protected]
cache_effective_user squid
cache_effective_group squid

error_directory /usr/local/squid/share/errors/Simplify_Chinese
icon_directory /usr/local/squid/share/icons
mime_table /usr/local/squid/etc/mime.conf

cache_replacement_policy lru
#cache_dir
cache_dir aufs /var/cache1 32768 64 64
cache_dir aufs /var/cache2 32768 64 64
cache_mem 2048 MB
max_open_disk_fds 0
#maximum_object_size 512 KB
#maximum_object_size_in_memory 256 KB
maximum_object_size 20 MB
maximum_object_size_in_memory 8 MB

#keepalived
client_persistent_connections off
server_persistent_connections on
#persistent_request_timeout 60 seconds

#memory_pools on
#memory_pools_limit 64 MB

forwarded_for on
log_icp_queries off

via off
httpd_suppress_version_string off

ie_refresh off
tcp_recv_bufsize 32 KB

#acl webservices rep_header Server -i ^linuxtoneWS ^Apache ^nginx
#broken_vary_encoding allow webservices

#hidden the squid header
#reply_header_access Server deny all
#reply_header_access X-Cache deny all
#reply_header_access Warning de(www.111cn.net)ny all
#reply_header_access Expires deny all
#reply_header_access Cache-Control deny all
#reply_header_access age deny all
#reply_header_access All deny all

ipcache_size 1024
ipcache_low 90
ipcache_high 95

memory_replacement_policy lru

hosts_file /etc/hosts
request_header_max_size 128 KB

#deny cache
hierarchy_stoplist cgi-bin ? .php
acl QUERY urlpath_regex cgi-bin? .php
cache deny QUERY

#request_body_max_size 0 KB

refresh_pattern ^ftp:           60      20%     10080
refresh_pattern ^gopher:        60      0%      1440
refresh_pattern .               0       20%     1440
refresh_pattern -i .css$       360    50%     2880    reload-into-ims
refresh_pattern -i .js$        1440    50%     2880    reload-into-ims
refresh_pattern -i .html$        720   50%     1440    reload-into-ims
refresh_pattern -i .jpg$       1440    90%     2880    ignore-reload
refresh_pattern -i .gif$       1440    90%     2880    ignore-reload
refresh_pattern -i .swf$       1440    90%     2880    ignore-reload
refresh_pattern -i .jpg$       1440      50%     2880    ignore-reload
refresh_pattern -i .png$       1440      50%     2880      ignore-reload
refresh_pattern -i .bmp$       1440      50%     2880      ignore-reload

refresh_pattern -i .doc$ 1440    50%     2880      ignore-reload
refresh_pattern -i .ppt$ 1440    50%     2880      ignore-reload
refresh_pattern -i .xls$ 1440    50%     2880      ignore-reload
refresh_pattern -i .pdf$ 1440    50%     2880      ignore-reload
refresh_pattern -i .rar$       1440    50%     2880      ignore-reload
refresh_pattern -i .zip$ 1440    50%     2880      ignore-reload
refresh_pattern -i .txt$ 1440    50%     2880      ignore-reload

quick_abort_min 20 KB
quick_abort_max 20 KB
quick_abort_pct 95

connect_timeout 1 minute
negative_ttl 0 minutes
read_timeout 30 seconds
pconn_timeout 120 seconds
shutdown_lifetime 5 seconds
strip_query_terms off

#snmp
#snmp_port 3401
#acl snmppublic snmp_orgmunity snsimg
#snmp_access allow snmppublic localhost
#snmp_access deny all

icp_port 0

# logfile
emulate_httpd_log on
#logformat combined %{X-Forwarded-For}>h %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %<st “%{Referer}>h” “%{User-Agent}>h” %Ss:%Sh
#access_log none
#access_log /data/logs/access.log combined
logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log /var/log/squid/access.log squid
#cache_store_log /var/log/squid/store.log
cache_store_log /dev/null
cache_log /var/log/squid/cache.log
logfile_rotate 12

# MISCELLANEOUS
store_objects_per_bucket 15
client_db off



4.创建目录

代码如下 复制代码
/usr/sbin/groupadd squid
/usr/sbin/useradd -g squid squid
mkdir -p /var/log/squid
chown -R squid:squid /var/log/squid
mkdir -p /var/{cache1,cache2}
chown -R squid:squid /var/{cache1,cache2}

初始化squid的cache目录
/usr/local/squid/sbin/squid -z

启动squid
/usr/local/squid/sbin/squid -D


如果大家不喜欢这样的启动方式,可以自己去找个squid的启动脚本,这里就不放出了.当squid运行起来了之后,大家可以使用下面这个命令来查看命中率:

代码如下 复制代码
/usr/local/squid/bin/squidclient -p 80 mgr:info

好了,具体其他squid的使用命令就只能你们自己去搜了,就到这里了.
from: http://www.111cn.net/sys/linux/67933.htm

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [linux squid3 缓存] 推荐:

linux中squid3(高命中率)缓存服务器配置

- - 操作系统 - ITeye博客
今天对我的varnish进行了下小小的压力测试,40s里的8000并发,没有失败一个,估计还可以承受更大的并发,先不说varnish了,我最近找到个命中率很高的squid的配置文件,当然是squid3.0的配置文件,有需要的可以copy回去自己改.   系统:centos 5.x.   需要的软件:squid-3.0.STABLE25.tar.gz.

五款优秀的Linux缓存系统

- 勇丞 - FeedzShare
来自: Solidot - FeedzShare  . 发布时间:2011年04月27日,  已有 4 人推荐. Naomi James 写道 "1897年,意大利经济学家帕累托(Vilfredo Pareto)发现,国家80%的财富是掌握在20%的人口手中. 这一现象被称为帕累托法则或80-20法则.

(总结)关于Linux的缓存内存 Cache Memory详解

- d0ngd0ng - 服务器运维与网站架构|Linux运维|互联网研究
前天有朋友问我,为啥我的Linux系统没运行多少程序,显示的可用内存这么少. 其实Linux与Win的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory. 有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文件,会发现有一项 Cached Memory:.

Linux 内存高速缓存(cache)类型分析

- - Linux - 操作系统 - ITeye博客
      在Liunx内存管理机制中,除了对目录项(dentry,Linux文件系统中某个inode的链接)进行缓存外,. 还采取了两种高速缓存,即Buffer Cache和Page Cache,前者针对磁盘块的读写,后者针对文件inode的. 通过增加这些Cache,有效缩短 I/O时间.        先通过free命令查看内存使用情况:.

一个可以查看linux当前缓存了哪些大文件的小工具

- - Zlatan Eevee
linux用户可能经常遇到的一个问题是,机器有16GB内存,开的进程也不多,但是剩下的free内存并不多,大部分都被buff/cache掉了(比如下面我的PC),但是cache了些什么东西并不清楚,linux也没有个命令能查看. 前几天看到有个人用go写了个 pcstat,可以查看某个文件是否被缓存(作者的目的是数据库调优),也可以根据进程pid来查看都缓存了哪些文件,但是不能查看整个操作系统都cache了哪些文件.

Javascript 里跑Linux

- rockmaple - Shellex&#39;s Blog
牛逼到暴的大拿 Fabrice Bellard,用Javascript实现了一个x86 PC 模拟器,然后成功在这个模拟器里面跑Linux(请用Firefox 4 / Google Chrome 11打开,Chome 12有BUG). 关于这个东西… 伊说 “I did it for fun“,大大啊大大啊….

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

linux makefile编写

- hl - C++博客-首页原创精华区
在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则. target也就是一个目标文件,可以是Object File,也可以是执行文件. prerequisites就是,要生成那个target所需要的文件或是目标. command也就是make需要执行的命令. 这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在 command中.

Linux下的VDSO

- 圣斌 - Adam&#39;s
VDSO(Virtual Dynamically-linked Shared Object)是个很有意思的东西, 它将内核态的调用映射到用户态的地址空间中, 使得调用开销更小, 路径更好.. 开销更小比较容易理解, 那么路径更好指的是什么呢. 拿x86下的系统调用举例, 传统的int 0×80有点慢, Intel和AMD分别实现了sysenter, sysexit和syscall, sysret, 即所谓的快速系统调用指令, 使用它们更快, 但是也带来了兼容性的问题.

Linux wget命令

- - CSDN博客推荐文章
wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径. 例如: # wget  http://www.linuxsense.org/xxxx/xxx.tar.gz. 简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载.