我一直试图在这个问题上找到一个直接的答案,但事实证明这是难以捉摸的。这个问题和它的答案是接近,但并没有真正给我,我想细节。让我们从我认为我知道的开始。
如果你有一个标准的块设备并且你运行sudo blockdev --report
你会得到这样的东西:
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 500107862016 /dev/sda
rw 256 512 4096 2048 399999238144 /dev/sda1
rw 256 512 1024 781252606 1024 /dev/sda2
Run Code Online (Sandbox Code Playgroud)
现在,您决定使用--setra
任何分区将默认值 256 更改为 128 ,并且它会发生在整个块设备上,如下所示:
sudo blockdev --setra 128 /dev/sda1
sudo blockdev --report
RO RA SSZ BSZ StartSec Size Device
rw 128 512 4096 0 500107862016 /dev/sda
rw 128 512 4096 2048 399999238144 /dev/sda1
rw 128 512 1024 781252606 1024 …
Run Code Online (Sandbox Code Playgroud) CentOS 会/etc/resolv.conf
定期清除任何手动更改。Linux 中的默认值在合理时间内进行故障转移方面很差(每次以相同的顺序查询名称服务器,5 秒超时,2 次重试)。
因此,您的第一个 DNSresolv.conf
本质上是关键路径。如果失败,您可以在故障转移前查看 10 秒。
这些默认值是可以调整的(请参阅resolv.conf手册页),但是如何使 CentOS 中的任何更改永久化并通过重新启动等保持不变?
有时,在对副本集的运行状况进行故障排除时,我想专门过滤掉心跳数据包,跟踪它们发出的情况,以及随后的回复(或缺少回复),而没有在其他数据之间流动的所有噪音套。
不幸的是,这些数据包的结构与普通命令/查询和响应非常相似。尽管Wireshark具有解析器,可以让我接触到 MongoDB 有线协议,但我无法使用该技术在 tcpdump 中从源头过滤掉数据包。
所以,问题是——如何在 tcpdump 中过滤 MongoDB 副本集心跳?
有一个fastcgi
二进制健康检查的例子在HAProxy的博客。我将如何为 MongoDB 构建一个类似的检查,以便我对它进行更强大的健康检查MongoDB
- 一个验证服务器实际上在那里并做出响应而不是仅仅检查端口是否打开的检查?
如果运行状况检查足够通用以与各种MongoDB
分片组件(配置服务器、mongos
、mongod
)一起使用,这将非常有用。
mongodb ×2
block-device ×1
centos ×1
haproxy ×1
linux ×1
lvm ×1
md ×1
networking ×1
resolv.conf ×1
tcpdump ×1