Linux 内存占用总是很高为何依旧很流畅?
Linux 的内存显示经常会出现 90% 多已被使用,但系统依旧很流畅的情况,想知道:
- 有时候 CPU 占用率很低,但内存占用率很高,内存都被怎么用掉了?
- 系统依旧流畅,不会像 Windows 卡成翔,原理在哪里?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Linux 的内存显示经常会出现 90% 多已被使用,但系统依旧很流畅的情况,想知道:
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(11)
关于第一个问题,你可以看看这个 SF 答案,应该说的很清楚了。简单地说,内存并没有真正被用掉,而是被系统缓存起来了,随时可以被释放出来使用。
关于第二个问题,简单回答是 Linux 下面的程序都比较有节操,没有节操的程序已经没人用了。如果 Windows 里面没有那么多的 XX 卫士或 XX 助手的话,仅仅一个裸操作系统加上一些必要的程序,并且使用 SSD,也不会有什么卡顿的感觉。
说明:本回答与题目相关度50%,只是想为 Windows 正名!
谁再说 Windows 卡成翔我跟谁急!
i3 移动低电压版 + 4G内存 + SSD 有图为证:
跑 win8.1 一点都不卡。有人会问,你开了几个程序?
正常情况下,我的任务栏是这样的:
PHPStorm、Chrome都是内存大户,除了 PHPStorm 在新建项目索引文件时会卡一点外,平时并未有任何异常的卡顿,使用极其流畅。如果你的进程中有各类在线视频播放客户端,各种所谓的安全杀毒进程,不卡才怪!
一直以为,Windows是给科学家用的,Mac OS X 是给艺术家用的。我自认为自己艺术修养不够,又驾驭不了 Linux 桌面(在Linux桌面发行版折腾了一年,又退回来了),所以还是选 Windows。但若谁说 Windows 卡成翔我还是会急的,尼玛你自己装一大堆流氓软件还怪 Windows 卡,你让我怎么办?
誰說 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 随时都可以腾出空间 给程序使用
希望能采纳~~
内存本来就是给人用的 内存可回收可再生 干嘛不用?
都是被win上的清理软件给带坏了 非要追求内存占用率小
在Linux中,虽然你看到内存占用很大,实际很大一部分都是cache。你可以使用
free -m
查看内存实际使用情况。
Linux 下内存是被缓存了起来,而不是和win下被程序占用的概念
linux
的内存管理不一样,他会把一些用户估计会用到的东西放在内存里,以提高读取速度,但是如果用户需要这些被占用的内存,会优先让用户使用。。。我从来不用这个卫士那个助手,只用mse和一个轻量级的杀毒引擎。没有ssd照样不卡。
卡的原因是那些流氓软件一启动恨不得子子孙孙全上阵把后台都占满,安卓上也是同理。
题主用的什么系统?