虚拟化容器,大数据,DBA,中间件,监控。

RHEL6.2 squid进程和CPU核绑定,支持多CPU

08 10月
作者:admin|分类:系统运维

在RHEL6.2上安装Squid,使用透明代理,最开始使用系统带的rpm包安装,调试参数后,起用服务,小流量的情况下,squid可以正常工作,但是一旦加载大流量,squid立即崩溃。

后来了解到squid2系列都不支持多核CPU,只有最新的3.2支持多核CPU,因此决定下载源码编译安装。

编译安装测试,一些小的麻烦不断产生,网上可以参考的资料很少,很多都是介绍做反向代理的。

3.2最主要的就是支持多核处理器,我们最开始使用workers参数,但是加载后查看squid的CPU使用率忽高忽低,曲线差不多跟正弦函数似的,客户端一会能打开网页,一会不能打开网页。卡了几天,然后决定换一个方式试试,没想到成功了。

cpu_affinity_map代替workers,能正常开启多进程,squid工作正常。我们的服务器是双CPU,12核24进程,下面是我们的参数:

1cpu_affinity_map process_numbers=1,2,3,4,5,6,7,8,9,10,11,12
2cores=1,3,5,7,9,11,13,15,17,19,21,23
这个参数的意思就是把squid进程和CPU核绑定。

squid官方的解释

01Option Name:    cpu_affinity_map
02Replaces:  
03Requires:  
04Default Value:  none
05Suggested Config:  
06 
07 
08    Usage: cpu_affinity_map process_numbers=P1,P2,... cores=C1,C2,...
09 
10    Sets 1:1 mapping between Squid processes and CPU cores. For example,
11 
12        cpu_affinity_map process_numbers=1,2,3,4 cores=1,3,5,7
13 
14    affects processes 1 through 4 only and places them on the first
15    four even cores, starting with core #1.
16 
17    CPU cores are numbered starting from 1. Requires support for
18    sched_getaffinity(2) and sched_setaffinity(2) system calls.
19 
20    Multiple cpu_affinity_map options are merged.
21 
22    See also: workers
这个功能理论上和workers是一样的,但是我们这边实际效果却不是。

这个仅仅适用于squid3.2以后的版本。

浏览2843 评论0
返回
目录
返回
首页
squid-2.6之Web反向代理加速实做/防盗链/防盗用/防爬虫 squid2.6加速WEB支持虚拟主机配置心得体会