Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4065635
  • 博文数量: 251
  • 博客积分: 11197
  • 博客等级: 上将
  • 技术积分: 6862
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-05 14:41
个人简介

@HUST张友东 work@taobao zyd_com@126.com

文章分类

全部博文(251)

文章存档

2014年(10)

2013年(20)

2012年(22)

2011年(74)

2010年(98)

2009年(27)

分类: LINUX

2011-11-05 19:50:57

mservernclientclient发出的请求被随机发送到某一个server上,client的请求为串行模式,即每个请求被处理完后才能发送下一个请求,server处理每个请求的时间为Tserver每次只能处理一个请求,其他的请求将排队等待。求当client发送请求无限多时,每个请求的平均服务时间?

 

请求次数无限多时,可以认为请求被均匀分不到各个server上:

 

(1)  n <= m 时,当请求足够多时,nclient发出的请求被均匀分布到mserver上,因为client请求时串行的,故mserver可能存在空闲的,此时每个请求将在T时间内完成,每个请求的平均服务时间为T

(2)  n > m时,每个服务器上分配n/m个请求,且队列的长度一直为n/m,除开始的几个请求外,后续请求的服务时间都将为n/m*T,故每个请求的平均服务时间为n/m*T

 

仿真程序:

 server-sim.rar   

 

使用方法:

开启mserver,并在clientserver_list中配置server的信息,运行client,参数为client个数(使用多线程模拟多个client),以及每个client发送的请求个数。

 

#gcc –o server server.c

#gcc –o client client.c –std=c99 –lpthread

 

启动3server

#./server 127.0.0.1 12340 &

#./server 127.0.0.1 12341 &

#./server 127.0.0.1 12342 &

 

启动3client线程,每个线程发送100个请求

#./client 3 100 

阅读(4319) | 评论(0) | 转发(4) |
0

上一篇:复制互联网2011

下一篇:一致性hash算法

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