对延时敏感的应用是否应该使用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的?,推荐看看!

你可能感兴趣的:(docker,Scalability)