我们将在~1000台服务器上推出调优(和numad),其中大多数是VMware服务器,无论是在NetApp上还是3 3Par存储上。
根据RedHats文档,我们应该选择virtual-guest配置文件。它正在做的事情可以在这里看到:tuned.conf
我们正在将IO调度程序更改为NOOP,因为VMware和NetApp/3 3Par都应该为我们完成足够的调度。
然而,在研究了一下之后,我不知道他们为什么要增加vm.dirty_ratio和kernel.sched_min_granularity_ns。
据我所知,将vm.dirty_ratio提高到40%将意味着对于一个拥有20 8GB内存的服务器来说,在任何给定的时间,8GB都可能是脏的,除非首先命中vm.dirty_writeback_centisecs。在刷新这8GB时,应用程序的所有IO都将被阻塞,直到脏页被释放。
增加dirty_ratio可能意味着在峰值时具有更高的写入性能,因为我们现在有了更大的缓存,但是当缓存填充时,IO将被阻塞相当长的时间(几秒)。
另一个原因是他们为什么要增加sched_min_granularity_ns。如果我正确理解,增加这个值将减少每个时代(sched_latency_ns)的时间片数,这意味着运行的任务将获得更多的时间来完成他们的工作。我可以理解这是一件非常好的事情,对于很少线程的应用程序来说,但是对于例如。apache或其他有很多线程的进程,这会不会适得其反呢?
发布于 2013-06-26 10:05:46
简单的回答是,任何调优都是猜测,只有在有经验数据备份时才有价值:尝试一下。量一下。如果你不喜欢,就把它调整一下。
更详细的答案是:
增加dirty_ratio可能意味着更高的写入性能...IO将被阻塞相当长的时间。
不是的。增加脏比意味着您的系统不太可能进入需要开始阻止写入的状态。缺点是在中断时使用内存更多,丢失数据的风险更大。
这意味着运行的任务将有更多的时间来完成他们的工作。
进程通常会在它们的时间片到期之前产生结果。VM的问题在于,您的机器可能与其他VM竞争CPU和L1/L2缓存-高级别的任务切换(由于抢占)对吞吐量有很大影响。通常部署到VM中的应用程序是CPU绑定的应用程序(web服务器、应用服务器)。
是的,吞吐量的增加(适用于所有类型的应用程序)将以延迟增加为代价--但当大多数事务花费毫秒时,延迟是微秒级。如果您需要实时功能/非常低的延迟,那么就不应该使用VM。
发布于 2013-06-26 12:30:51
这是调优-adm配置的时间表.
我认为用表格的形式看它们是有帮助的。主要要注意的是,默认的RHEL6设置很糟糕!!另一件事是,企业存储和虚拟客户机配置文件是相同的,除了减少虚拟客户端的交换(有意义,对吗?)。

至于关于存储I/O电梯的建议,您在存储层上有几个抽象层。如果您使用RDMs或直接将存储呈现给您的虚拟机,使用noop调度程序将是有意义的。但是,由于他们将生活在NFS或VMFS上,我仍然喜欢最后期限调度程序提供的额外调优选项。
调优配置文件可以在运行系统上进行动态更改,因此,如果您有任何关切,可以使用您的应用程序、特定的环境和基准测试。
发布于 2013-06-28 12:11:54
观看Shak和Larry的性能调优视频,他们深入讨论调优配置文件。
其中一个最大的目的是,配置文件只是一个推荐的起点,而不是不变的数字,这是神奇地完美的每一个环境。
从一个配置文件开始,并对设置进行一次播放。生成一个良好的类似于产品的测试工作负载,并度量对您的业务非常重要的度量标准。
一次只改变一件事,在每次迭代时记录每一个结果。完成后,检查结果并选择给出最佳结果的设置。这是你理想的调优配置。
https://serverfault.com/questions/518629
复制相似问题