对延时敏感的应用是否应该使用Docker?

在High Scalability上看到一篇文章 How Does The Use of Docker Effect Latency? 。文章回答了一个问题

I keep hearing about [Docker] as if it is the greatest thing since sliced bread, but I’ve heard anecdotal evidence that low latency apps take a hit.

Gill的回答。Docker基于Linux Container执行在宿主机上,从CPU和Memory的角度。因为Docker并没有独立的一层做虚拟化,性能影响能够忽略不计;从I/O(Disk/Networking)的角度,不同的选择。有可能带来较大的性能影响

IBM有个測试报告:An Updated Performance Comparision of Virtual Machines and Linux Containers ,作者系统的对照測试了Docker、KVM和Native方式下性能区别,结论和Gill的回答一致:在CPU和Memory方面。Docker开销极小;在I/O方面,影响明显。须要做调整才干减少影响。
比較典型的:
当使用AUFS(Advanced Multi Layered Unification Filesystem)时,Docker性能减少明显;使用Volume能够获得更好的性能。


使用Docker的默认网络选型–net=bridge时。网络吞吐大时,开销明显,能够通过–net=host减少性能影响,但同一时候会带来一些问题

个人建议:
公司假设对Docker有非常多的应用经验,而且有强大的基础架构/运维团队Support,能够将Low Latency APP上到Docker

腾讯有个非常好的分享:腾讯游戏是怎样使用Docker的?,推荐看看!


原文地址:https://www.cnblogs.com/yjbjingcha/p/7027653.html