内存管理 - Linux 内存占用总是很高为何依旧很流畅?
阿神
阿神 2017-04-17 12:01:47
0
11
1215

Linux 的内存显示经常会出现 90% 多已被使用,但系统依旧很流畅的情况,想知道:

  1. 有时候 CPU 占用率很低,但内存占用率很高,内存都被怎么用掉了?
  2. 系统依旧流畅,不会像 Windows 卡成翔,原理在哪里?
阿神
阿神

闭关修行中......

全部回复(11)
小葫芦

关于第一个问题,你可以看看这个 SF 答案,应该说的很清楚了。简单地说,内存并没有真正被用掉,而是被系统缓存起来了,随时可以被释放出来使用。

关于第二个问题,简单回答是 Linux 下面的程序都比较有节操,没有节操的程序已经没人用了。如果 Windows 里面没有那么多的 XX 卫士或 XX 助手的话,仅仅一个裸操作系统加上一些必要的程序,并且使用 SSD,也不会有什么卡顿的感觉。

阿神

谁说 Windows 会卡?我在虚拟机里用Windows,内存CPU 显存都很紧张,内存只能分到4G,CPU 只有分到两个核心四线程,显存只有分到768M,开Chrone 玩3D 游戏,从未觉卡(曾经那个游戏把我旧电脑2G内存占满了,然后没内存,崩溃!)

内存占用高会卡的原因是,被迫使用虚拟内存,也就是与硬盘交换空间,硬盘,持续 IO,卡死你。

而并不是说内存占用高一定会卡。只要不使用虚拟内存,比如即时回收了占用的空间,就不会卡。

就算使用虚拟内存,你硬盘足够快,也没问题。 PCIe SSD 试试?

你看 iOS,根本没有虚拟内存,物理内存 1G,卡吗?只是经常丢失之前看过的网页要重新加载罢了。


另外,关于装 XX卫士 卡成翔的原因,是 XX卫士 inline hook 了系统关键函数,KiFastCallEntry,这个函数太关键了,以至于XX卫士的响应速度成为了系统响应速度的上限。据说,有些安装只要几分钟的软件,在 Hook 了 KiFastCallEntry 之后,要长达几个小时之久!

这也是为什么XX不完美支持Win7 x64的原因——PatchGuard导致XX难以像以前一样无法无天。

大家讲道理

如果你用一个命令行跑服务的系统去比一个桌面系统,显然这是不公平的
如果你看看ubuntu那个桌面什么流畅度 再看看windows桌面什么流畅度 我们再谈下面的话题

黄舟

Linux会借用空闲的内存当作磁盘缓存, 磁盘数据缓存会让linux运行的更快,它永远不会从程序中拿出内存,它没有任何缺点,只是会混淆新手,如果你的应用程序需要更多的内存,他们会回收一部分用作磁盘数据缓存的物理内存,返回给应用程序,这个过程不需要启动交换,磁盘缓存(Disk caching)是不能禁用的

举个简单例子

如果真要和windows比,其剩余的内存大小为 buffers/cache = 685544kb (680m左右)
程序使用内存大小 330m左右

而不是 使用了 900M 剩余100M

buffer里 73m用作块设备做缓存(记录文件系统的metadata和tracking in flight pages )
cached 里 510m 用作缓存文件

buffer和cached 随时都可以腾出空间 给程序使用

希望能采纳~~

洪涛

说明:本回答与题目相关度50%,只是想为 Windows 正名!


谁再说 Windows 卡成翔我跟谁急!

i3 移动低电压版 4G内存 SSD 有图为证:

跑 win8.1 一点都不卡。有人会问,你开了几个程序?
正常情况下,我的任务栏是这样的:

PHPStorm、Chrome都是内存大户,除了 PHPStorm 在新建项目索引文件时会卡一点外,平时并未有任何异常的卡顿,使用极其流畅。如果你的进程中有各类在线视频播放客户端,各种所谓的安全杀毒进程,不卡才怪!

一直以为,Windows是给科学家用的,Mac OS X 是给艺术家用的。我自认为自己艺术修养不够,又驾驭不了 Linux 桌面(在Linux桌面发行版折腾了一年,又退回来了),所以还是选 Windows。但若谁说 Windows 卡成翔我还是会急的,尼玛你自己装一大堆流氓软件还怪 Windows 卡,你让我怎么办?

大家讲道理

内存本来就是给人用的 内存可回收可再生 干嘛不用?
都是被win上的清理软件给带坏了 非要追求内存占用率小

阿神

在Linux中,虽然你看到内存占用很大,实际很大一部分都是cache。你可以使用

free -m

查看内存实际使用情况。

巴扎黑

Linux 下内存是被缓存了起来,而不是和win下被程序占用的概念

迷茫

linux的内存管理不一样,他会把一些用户估计会用到的东西放在内存里,以提高读取速度,但是如果用户需要这些被占用的内存,会优先让用户使用。。。

刘奇

我从来不用这个卫士那个助手,只用mse和一个轻量级的杀毒引擎。没有ssd照样不卡。
卡的原因是那些流氓软件一启动恨不得子子孙孙全上阵把后台都占满,安卓上也是同理。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板