windows和linux允许分片,为什么Mongodb在Linux上比在Windows上性能更好?

首先:Windows 2008服务器上的所有文件系统都非常非常低效。 与XFS或ext4相比,Windows和Linux文件系统都经过优化后,速度可以降低40%。

其次:延迟可能是一个问题。 当前Linux系统上的网络堆栈比在W2008服务器上要快。

第三:如果你的防火墙上运行着防火墙,延迟成为远程访问更大的问题。 尽管Linux的iptables足够快而且高效,以至于大部分的防火墙设备都基于它,但由于各种原因,可用于Windows的防火墙并非如此。

另外:Windows不像Linux那样有效。 MongoDB使用尽可能多的RAM(直到它需要的地方),例如将索引文件(副本)存储在RAM中。 Windows需要比Linux机器更大的可用RAM份额。 所以索引文件可能会从磁盘读取,而不是从RAM中读取,速度要慢几个数量级。

底线:在Windows系统上运行生产mongoDB是一个非常糟糕的想法。

编辑

按照评论中的要求:

至于文件系统速度: 比较文件系统I / O性能:RedHat企业6与Microsoft Windows server 2012

至于效率不高的RAM使用情况,您可能需要自行检查。 给定的Windows server系统在闲置时使用多少内存? 这与任何给定的Linux服务器怠速相比如何? 让我们很好,假设Windows服务器只需要128M的GUI – 这是128MB浪费。 乘以20,这不是一个大的群集大小,我们正在谈论的2.5 GB – 这可以很容易地组成一个配置服务器或仲裁,如果不是更多。 这将花费在GUI上,对于一个很少需要它的系统来说,如果有的话。 根据实际情况,您可能需要阅读比较CPU和内存性能:红帽企业Linux 6与Windows server 2012

至于网络堆栈的速度,有多种来源,下面是我倾向于提到的两个:

TCP栈的比较性能比较老,但是我们谈的是数量级,至少给出了一个想法

比较网络性能:红帽企业Linux 6与Windows server 2012

你可能已经认识到我引用了Principled Technologies的三个报告。 虽然我不以任何方式与他们有任何关系,但是,恕我直言,他们在使用行业标准基准测试来比较RHEL 6和Windows server 2012并明确优化相关任务的操作系统以及使用现成的操作系统方面做得很好。

有人可能会争辩说,这种比较并不能证明所有的GNU / Linux发行版都比Windows server 2012发行版快,我们所讨论的功能是由Linux内核提供的功能,通常不会被弄乱,所以可以认为类似结果可以从所有主要分布预计。

由于Linux的部分极端性能优势(Linux的TCP堆栈比Windows server对于大型消息大小快了近4倍,这在数据库应用中往往是这种情况),我重申了我的观点是在Windows系统上运行MongoDB生产的一个非常糟糕的想法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值