注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

squid3.2支持多核的思路  

2013-05-16 12:30:21|  分类: squid系统应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

原文地址:http://wiki.squid-cache.org/Features/SmpScale


1. 当前squid的状态和架构

Squid-3.2使用wokers 支持基本的多核,管理员可以通过配置启动一个squid来派生多个worker进程利用所有可利用的CPU.

   一个worker 接收一个新的http request 并且处理每一个请求直到它完成。Worker之间可以共享http_ports 但是它们不会将一个请求事务传到其他worker间。一个worker支持的功能与单squid(不支持SMPsquid)完全相同可但是worker之间或许配置不同,如配置为监听不同的http_ports

   参数cpu_affinity_map项允许CPU core绑定到每个worker

 

2. Worker之间是如何协调的?

一个指定的协调进程会启动workers 和在它们需要时,协调他们的行为。以下是协调程序的主要职责:

重启工作异常的worker进程。

允许worker进程直接共享监听socket

广播reloadshutdow命令到其他worker

Cahce Manager统计一些信息。

协调程序并不参与常规的事务处理,也决定不了哪worker来处理新进来的请求。

通常,这个协调程序都是空闲的。

3. Worker进程之间可以共享啥?

可以使用协调器和通用的配置文件,squidworker进程们可以收到完全相同的配置信息和同步它们之间的特性。默认情况下,squid worker 可以共享的如下:

Squid可执行程序。

通用配置文件

监听的端口

Logs

内存缓存对象(支持大多数的环境)

磁盘缓存对象(仅限于Rock Store

缓存管理统计等。

 

限定的配置和worker依赖的宏可以用来限制共享。例如,每个worker可以指定监听某一个http_port

目前,squid worker和同步狭义的资源或服务,包括如下:

内存缓存对象(在一些特定的环境下)

磁盘缓存对象(除了Rock Store

DNS caches (ipcache fqdncache)

SNMP 统计目前正有一个活跃的项目在推竞这项工作。

Helper 进程和 守护进程。

SSL session 缓存

 

缓存索引可以共享而无需另行拷贝。其他的信息共享通常是在RAM中进行,本质上是用拷贝和复制来进行,以避免加锁及其他的性能开销。

 

4. 为什么用进程?难道线程不是更好么?

以下几个原因决定了使用进程而不是线程:

在当前squid的框架下使用线程会消耗更多的时间,缘于线程不安全。用户现在急需支持多核也无法等待彻底从新开始重现一个squd

线程提供了更快的上下文切换,但在一个典型的多核的squid部署环境中,squid的每个worker进程都绑定到了一个特定的cpu,上下文切换的开销并不是非常重要。

进程和线程同步和共享机制对足以支持多处理器功能的扩展。

概括起来,我们使用进程代替线程的原因是:它让我们在有限的时间内实现了对多处理器的支持。此时使用线程不太现实。

 

5. 由谁决定worker 接受request

   所有的worker都共享http_port 监听同一个IP地址和同一个tcp port。操作系统会加锁保护这个监听的socket。并且决定哪个worker接受这个HTTP请求。一旦连接被这个worker接受,则这个连接就交给对应的这个worker。

注:
更多详细内容::>>>::http://wiki.squid-cache.org/Features/SmpScale
  评论这张
 
阅读(83)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017