内存已满,大多采用“共享”,GUI无响应

有这么多的问题,但没有一个答案对我有用。 也许我的系统只是配置错误。

我的问题是,在一些正常运行时间(几天)后,我的台式机(Ubuntu 16.04 LTS)上的RAM完全填满,GUI开始滞后并变得无响应/无法使用。

free输出:

  total used free shared buff/cache available Mem: 16326212 5633804 395072 10026328 10297336 184458 Swap: 0 0 0 

没有用的是这个:

 sync; sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches' 

=>以上数字几乎没有变化

 swapoff -a 

=>没有变化(无论如何都要禁用交换)

对相关问题中所有free发布的输出产生显着差异的是,我的大部分记忆都被shared

但是, ipcs -m | awk '{sum+=$5} END{print sum}' ipcs -m | awk '{sum+=$5} END{print sum}'产生213 MB左右的数字。

可能相关:我有几个路径映射到RAM磁盘(来自/etc/fstab ):

 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 tmpfs /var/log/apt tmpfs defaults,noatime 0 0 

但那里似乎没有任何问题:

 Filesystem Size Used Avail Use% Mounted on tmpfs 1.6G 22M 1.6G 2% /run tmpfs 1.6G 132K 1.6G 1% /run/user/1000 tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup tmpfs 7.8G 12M 7.8G 1% /var/tmp tmpfs 7.8G 1.7M 7.8G 1% /var/log tmpfs 7.8G 143M 7.7G 2% /dev/shm tmpfs 7.8G 8.0K 7.8G 1% /var/log/apt tmpfs 7.8G 878M 7.0G 12% /tmp ... 

除了或许

 udev 7.8G 7.8G 0 100% /dev 

还有其他想法吗?

这条线

 udev 7.8G 7.8G 0 100% /dev 

确实是问题的标志。 这个坐骑应该永远不会100%填满。 阅读了高SHMem内存使用情况! 我发现bootchart完全填满了这个。 卸载bootchart并删除/dev/.bootchart一切恢复正常,包括shared内存使用情况:

  total used free shared buff/cache available Mem: 16326212 3258332 7929904 1177272 5137976 10981178 Swap: 0 0 0 

您需要找出填满计算机内存的内容。 我想到的第一件事就是浏览器。 现代浏览器使用疯狂的内存量。

你可以通过smem找出什么使用了多少内存。 这里smem Ubuntu smem打包的例子: https ://packages.ubuntu.com/artful/smem。 它只依赖于pythonpython-matplotlib ,它们可以在Ubuntu 16.x上使用。 所以你应该能够下载smem包并用dpkg -i smem_1.4-2_all.deb安装它。

安装后你可以运行smem ,看看哪个进程正在使用多少内存。

一旦你发现了什么填满了记忆,那么你就可以停止这个过程。 F.ex. 关闭浏览器中的选项卡有帮助。 停止和启动浏览器也可以帮助释放一些内存。

还有一件事 – 你应该启用交换。 交换将扩展您的可用内存。

另一件事 – 因为 – 显然 – 你没有使用交换,然后“GUI开始滞后并变得无响应/无法使用”可能不是由内存填满引起的,而是由于某些进程访问磁盘太多(a在我脑海中运行备份,重建mlocate数据库)或者使用CPU太多了。 您应该能够使用iotopapt-get install iotop )诊断“过多的CPU使用率”和I / O使用率过高。