esp*_*fjo 8 linux performance redhat performance-tuning rhel6
我们将在大约 1000 台服务器上推出 Tuned(和 numad),其中大多数是 NetApp 或 3Par 存储上的 VMware 服务器。
根据 RedHat 文档,我们应该选择virtual-guest
配置文件。它在做什么可以在这里看到:tuned.conf
我们将 IO 调度程序更改为 NOOP,因为 VMware 和 NetApp/3Par 都应该为我们做足够的调度。
但是,经过一番调查后,我不确定为什么它们会增加vm.dirty_ratio
并且kernel.sched_min_granularity_ns
.
据我所知,vm.dirty_ratio
增加到 40% 意味着对于具有 20GB 内存的服务器,8GB 可以在任何给定时间变脏,除非vm.dirty_writeback_centisecs
首先被击中。在刷新这 8GB 时,应用程序的所有 IO 都将被阻止,直到脏页被释放。
增加dirty_ratio 可能意味着更高的峰值写入性能,因为我们现在有一个更大的缓存,但是当缓存填满时,IO 将被阻塞相当长的时间(几秒钟)。
另一个原因是他们增加了sched_min_granularity_ns
. 如果我理解正确,增加这个值将减少每个 epoch( sched_latency_ns
)的时间片数,这意味着正在运行的任务将有更多的时间来完成他们的工作。我可以理解这对于线程很少的应用程序来说是一件非常好的事情,但是例如。apache 或其他具有大量线程的进程会不会适得其反?
观看来自 Summit 的 Shak 和 Larry 的性能调整视频,他们深入讨论了调整后的配置文件。
最大的预期收获之一是配置文件只是一个推荐的起点,而不是对每种环境都非常完美的不可变数字。
从一个配置文件开始,并尝试设置。生成良好的类似生产的测试工作负载并衡量对您的业务很重要的指标。
一次更改一件事,并记录每次迭代的每个结果。完成后,查看结果并选择提供最佳结果的设置。这是您理想的调谐配置文件。
简短的回答是,任何调整都是猜测,只有在用经验数据备份时才有价值:尝试一下。测量它。如果你不喜欢它,调整它。
更长的答案:
增加dirty_ratio可能意味着更高的写入性能......IO将被阻塞更长的时间
不会。增加脏比率意味着您的系统不太可能进入需要开始阻塞写入的状态。缺点是使用了更多内存,并且在中断时丢失数据的风险更大。
这意味着正在运行的任务将有更多的时间来完成他们的工作
进程通常会在它们的时间片到期之前让步。VM 的问题在于您的机器可能会与其他 VM 竞争 CPU 和 L1/L2 缓存——高水平的任务切换(由于抢占)对吞吐量有很大影响。通常部署到 VM 中的应用程序类型是受 CPU 限制的应用程序(Web 服务器、应用程序服务器)。
是的,吞吐量的增加(适用于所有类型的应用程序)将以延迟增加为代价 - 但当大多数事务需要毫秒时,后者的数量级为微秒。如果您需要实时功能/非常低的延迟,那么您不应该使用虚拟机。
归档时间: |
|
查看次数: |
17673 次 |
最近记录: |