Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1896490
  • 博文数量: 211
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3794
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(211)

文章存档

2020年(2)

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

分类: 服务器与存储

2014-01-08 16:59:11

对软件的架构进行优化需要综合考虑各种因素。
案例:处理任务模型采取的方法:经典的是生产者与消费者模式
单队列-多线程模型  
 ZFS采用的是单个队列,然后的32个ZVOL线程从该队列中抓取请求并处理,这种结构,当时考虑是否会有大量的进程上下文的切换,后来想了想不太会有这种问题,因为每个ZVOL都会处理DMU里面的逻辑,外加可能会等待提交日志工作,也就是处理的任务都是耗时的任务。
队列与线程一一对应模型
 这种模型是为每一个线程创建一个队列,然后上层将请求分发到各个线程的队列中,这样避免大量的锁的冲突。这种模型适合短任务型,因为短任务处理时间短,返回的也很快。如果采用第一种线程模型会发生大量的锁的切换。
 所以,对于短任务 采用线程与队列一一对应的方式,对于长任务,采用ZFS的单队列-多线程模型。

阅读(2225) | 评论(0) | 转发(0) |
1

上一篇:session的实现方法

下一篇:keepalive的作用

给主人留下些什么吧!~~