下面,我们将在更高的负载水平上比较三个默认调控器的 “性能/瓦特” 值,看看默认的 conservative 调控器是否仍然比其他两个默认调控器的能效更高。图 14 展示了一个 1,000 个客户端的负载,这个负载导致 20-25% 的平均利用率。
图 14. 针对 1,000 个客户端的默认调控器比较
从这个图表可以看出,对于这个负载水平,conservative 调控器也是能效最高的调控器。对于这次运行,conservative 调控器比 performance 调控器节约了约 25W,当它仍然可以服务几乎完全相同的每秒请求数。对于这个负载水平,conservative 调控器的平均请求延迟时间比其他两个调控器慢了约 5 毫秒。
最后,让我们看看图 15 中负载水平为 2,000 个客户端时的 “性能/瓦特" 值,该负载水平将测试系统的平均利用率提高到 45-60%。
图 15. 针对 2,000 个客户端的默认调控器比较
对于这个负载水平,默认 ondemand 调控器拥有的 “性能/瓦特” 值略好一些。ondemand 和 conservative 调控器都节约了约 15W,但默认 conservative 调控器的性能出现降低,因为它每秒完成的请求数比其他两个调控器少 8 个,它的延迟时间比 performance 调控器慢了 0.15 秒。这一次 ondemand 调控器是赢家,因为它实际上完成了相同数量的每秒请求数而延迟时间只比 performance 调控器多 50 毫秒,当然,这表示系统无需任何处理器变频情况下实现的性能。
调优的调控器比较
现在我们将比较调优的 ondemand 和 conservative 调控器在这个工作负载下的表现。同样,调控器调优通过更改利用率阈值实现。调优的 conservative 调控器的 up_threshold 设置为 98,down_threshold 设置为 95。调优的 ondemand 调控器也使用 up_threshold 为 98 的设置运行。我们将在图 16 系列中查看在更繁重的 2,000 个客户端的负载水平(平均利用率为 45-60%)上这两个调优过的调控器的效果。
较轻的负载水平不会显示明显的差异,因为在 20% 的利用率(默认的 down_threshold 设置)下,调优的调控器在所有负载水平上的表现与默认调控器相同。 调优方法 sched_mc_power_savings 和 sched_smt_power_savings 在运行期间关闭。
图 16a. 性能(请求/秒)
图 16b. 延迟时间(毫秒)
图 16c. 平均电能(瓦特)
图 16d. 性能/瓦特
图 16a 和 16b 显示,调优的 conservative 调控器的性能略有降低:每秒完成的请求数减少约 13 个,延迟时间比 performance 调控器约多 0.28 秒。但图 16c 显示,调优的 conservative 调控器比没有处理器变频时大约节约 55W。即使性能略有降低,调优的 conservative 调控器也是目前为止能效最高的。