文档首页/ 弹性云服务器 ECS/ 故障排除/ 网络配置/ NetworkManager在运行docker容器时占用大量内存怎么办?
更新时间:2024-08-15 GMT+08:00

NetworkManager在运行docker容器时占用大量内存怎么办?

问题现象

在运行多个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

    出现network启动失败可能为系统内置多网卡配置文件导致,处理方法参考多网卡配置文件导致network启动失败处理

  • Ubuntu16.04操作系统
    1. 执行以下命令使用networking管理网络。

      systemctl disable NetworkManager

      systemctl disable network-manager

      systemctl enable networking

      kill `pgrep -o dhclient`

      systemctl stop NetworkManager

      systemctl start networking

    2. 启用networking服务,一定要检查interfaces文件中是否设置网络配置为DHCP模式。

      vi /etc/network/interfaces

      若只有一个网卡eth0则可以检查或增加:

      auto eth0
      iface eth0 inet dhcp
      图1 设置网络配置为DHCP模式