关于多线程(缩放)的理论问题

时间:2010-11-18 16:49:23

标签: multithreading scaling

我需要回答以下问题:

服务器需要为文件的每个请求执行15毫秒的工作。如果文件不在缓存中,则必须访问硬盘并且线程休眠75毫秒。这种情况发生在1/3的案例中。

a)服务器每秒使用1个线程处理多少个请求? - > 15 ms + 1/3 * 75 ms =每个请求40 ms - > 1000/40 ms = 25每秒请求

b)多线程有多少?

有这个公式吗? 对于2个线程,我得到每秒40.625个请求: 平均暂停25毫秒 - > 25/40 = 0.625 - > 25 * 1.625 = 40.625每秒请求数

3个或更多线程怎么样?

1 个答案:

答案 0 :(得分:1)

我知道我正在做你的作业,但它很有趣,因为问题陈述是有缺陷的。它无法按原样回答,因为缺少重要的信息:机器可用的核心数。运行比核心更多的线程不会提高吞吐量。假设J个作业,T个线程和C个核心,花费在它们上的时间是

  

时间= J×15毫秒/分钟(T,C)+ J×75毫秒/ 3

每秒解决J:

  

速率= 1000 /(15 / min(T,C)+ 25)

相关问题