有没有人注意到在docker容器中运行数据库(MySQL或Postgres)的任何性能问题,有人告诉我发生了严重的性能下降.
请指教.
解决方法:
Docker本身的开销很小,只是将进程与主机上的其他进程隔离开来.但是,您可以采取许多措施来降低容器的性能:
>在Windows / MacOS内运行它,而仅给嵌入式VM上一小部分父OS的内存/ CPU.
>限制容器内的CPU或内存资源.
>在主机上启动许多容器. Docker并不是魔术,如果10个Java实例每个使用2 gigs ram将主机带到容器外部的爬网中,它们将在容器内部运行得更好.
>网络并发症.默认情况下,每个容器都是在隔离的网桥上旋转的,其中的额外跃点可能会使IO花费更长的时间.如果您的DNS配置不正确,您可能会因查找失败而导致额外的延迟.
>默认情况下,Docker不允许裸机要求,例如直接磁盘访问.您可以授予对特定设备的访问权限,否则将有意隔离该应用程序的容器化版本.
>卷中的数据可能位于效率较低的位置.默认情况下,它是您的/ var / lib / docker文件系统,但是您可以轻松地将其指向NFS挂载,其性能会更差.
>错误配置的数据库,例如忘记创建索引.
简而言之,容器本身并不是问题所在,但请确保您进行的是苹果与苹果的比较.
标签:docker,postgresql,mysql,database
来源: https://codeday.me/bug/20191026/1938818.html