问题现象
在运行多个docker容器的环境下NetworkManager服务占用内存很大,导致内存使用率过高。
说明:
- 本节操作适用于CentOS 7、Ubuntu 16.04操作系统。
- 该文档涉及重启网络服务,可能会造成业务中断,请谨慎操作。
问题分析
NetworkManager消耗的内存量随着容器启动/停止的每次迭代而增加,即使在所有容器已被停止和删除之后也不会减少。
处理方法
短期处理方法:
执行以下命令重启NetworkManager服务。
# systemctl restart NetworkManager
长期处理方法:
- CentOS 7操作系统云服务器 执行以下命令停止NetworkManager服务,改用network管理网络 # systemctl disable NetworkManager # /sbin/chkconfig network on # kill `pgrep -o dhclient` # systemctl stop NetworkManager # systemctl start network
- Ubuntu16.04操作系统
- 执行以下命令使用networking管理网络。 # systemctl disable NetworkManager # systemctl disable network-manager # systemctl enable networking # kill `pgrep -o dhclient` # systemctl stop NetworkManager # systemctl start networking
- 启用networking服务,一定要检查interfaces文件中是否设置网络配置为DHCP模式。 vi /etc/network/interfaces 若只有一个网卡eth0则可以检查或增加:
auto eth0 iface eth0 inet dhcp
图1 设置网络配置为DHCP模式