缘起:
偶尔有同学反应容器很慢,查看容器状态发现内存没用完了;问题是,oom命名是开启的,为什么不杀进程呢?
其实,我忽略了一个问题,为了不必要的内存浪费,我给每个容器都配备了相当多的swap,oom是发生在连swap都被用完的情况下的;上面的情况是:内存用完了,但是swap还足够,开始大量使用swap,于是乎,反应就很慢;不仅如此,swap引发的设备IO,是不受单个容器的IO配额限制的,在没有控制的情况下疯狂使用swap会导致其他容器也会变慢
结论:
容器之间的资源隔离是相对的,总是会有某些情况下,容器之间会相互影响的;有些场景下,这些问题都无所谓,有些情况下就是致命的