我需要回答以下问题:
服务器需要为文件的每个请求执行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个或更多线程怎么样?
答案 0 :(得分:1)
我知道我正在做你的作业,但它很有趣,因为问题陈述是有缺陷的。它无法按原样回答,因为缺少重要的信息:机器可用的核心数。运行比核心更多的线程不会提高吞吐量。假设J个作业,T个线程和C个核心,花费在它们上的时间是
时间= J×15毫秒/分钟(T,C)+ J×75毫秒/ 3
每秒解决J:
速率= 1000 /(15 / min(T,C)+ 25)