这个问题以前有人问过,但我相信世界已经改变了,足以再问一次。
irqbalance 在今天的系统上有什么用处,我们有支持 NUMA 的 CPU,在它们的核心之间共享内存?
运行irqbalance --oneshot --debug表明现代 VMware ESXi 环境中的虚拟来宾正在内核之间共享 NUMA 节点。
# irqbalance --oneshot --debug 3
Package 0: numa_node is 0 cpu mask is 0000000f (load 0)
Cache domain 0: numa_node is 0 cpu mask is 0000000f (load 0)
CPU number 0 numa_node is 0 (load 0)
CPU number 1 numa_node is 0 (load 0)
CPU number 2 numa_node is 0 (load 0)
CPU number 3 numa_node is 0 (load 0)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,irqbalance 将检测到它正在 NUMA 系统上运行,然后退出。这会干扰我们的进程监控。 …
我有一个很奇怪的问题,我的嵌套 NFS 挂载不时随机消失。
fstab 条目看起来有点像这样:
nfs:/home /home nfs rw,hard,intr,rsize=32768,noatime,nocto,proto=tcp 0 0
nfs:/bigdir /home/bigdir nfs rw,hard,intr,rsize=32768,noatime,nocto,proto=tcp,bg 0 0
Run Code Online (Sandbox Code Playgroud)
问题是有时“/home/bigdir”文件夹会是空的,即使 mtab 认为共享仍然被挂载。nfsstat 等 阿尔。也认为共享仍然安装。
唯一有效的是卸载,然后(重新)安装 bigdir 共享。
服务器端是 NetApp。客户端是 RHEL5.5、2.6.18-194 内核(是的,我知道 5.8 已经过时了,但据我所知,这个特定问题没有勘误)。
我可以使用各种技巧,例如自动挂载,或将其安装到另一条路径然后使用 --mount bind,但我想解决根本问题。
我们将在大约 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 或其他具有大量线程的进程会不会适得其反?
linux ×3
redhat ×3
performance ×2
networking ×1
nfs ×1
numa ×1
rhel5 ×1
rhel6 ×1
vmware-esxi ×1