vjH*_*ang 5 linux windows performance mongodb disk-io
我创建了一个程序来测试Linux(Ubuntu)和Windows(Server2008)上的分片MongoDB性能.随着插入大量记录,Windows的磁盘活动时间非常高(100%),那么性能非常糟糕.但在Ubuntu上,磁盘的util%为60%~70%,性能优于Windows.我可以说Linux上的MongoDB性能更好吗?
Mar*_*erg 12
第一:Windows 2008服务器上可用的所有文件系统非常非常低效.与XFS或ext4相比,当Windows和Linux文件系统都经过优化时,它们的速度降低了40%.
第二:延迟可能是一个问题.当前Linux系统上的网络堆栈比W2008服务器上的网络堆栈快.
第三:如果你的盒子上运行了防火墙,延迟就成了远程访问的一个更大问题.虽然Linux的iptables速度和效率足够高,因此防火墙设备的很大一部分都是基于它的,但是由于各种原因,Windows可用的防火墙并不是这样.
另外:Windows不如Linux那样有效.MongoDB使用尽可能多的RAM(达到它需要的程度),例如用于在RAM中存储(副本)索引文件.与Linux机器相比,Windows占用的RAM大得多.因此,索引文件可能是从磁盘读取而不是从RAM读取,这要慢几个数量级.
一句话:在Windows系统上运行生产mongoDB是一个非常糟糕的想法.
编辑
根据评论中的要求:
您可能已经认识到我引用了Principled Technologies的三份报告.虽然我没有以任何方式与他们联系,但恕我直言他们通过使用行业标准基准并明确优化两个操作系统来完成相关任务以及使用开箱即用的操作系统,在比较RHEL 6和Windows Server 2012方面做得很好.
有人可能会争辩说,这种比较并不能证明所有GNU/Linux发行版都比Windows Server 2012快,我们所讨论的功能是由Linux内核提供的功能,而且通常不会摆弄,因此可以安全地假设类似可以预期所有主要分布的结果.
Linux的部分极端性能优势(Linux的TCP堆栈的速度几乎是Windows Server的4倍,对于大型邮件大小,这在数据库应用程序中就是这种情况),我更新了它的断言在Windows系统上运行生产MongoDB是一个非常糟糕的想法.