技术解析

Linux 内存占用
0
2021-07-01 17:57:12
idczone

xx oo gg

也网上查了查 linux 的内存管理, cache 会很大

但这是我 dd 克隆的 ubuntu16.04, 原先的系统开机最多占用 1G+的内存, 到了克隆的系统上开机就占用 8G+而且刚开始系统卡出翔, 这是为什么呢?

[注: 原先 ssd256G+8G, 新机器机械 512G+12G]


卡是 ssd 换成了 hdd 的原因吧,和内存没关系

变化也就是机器变了, 可能吧, 用上一会内存就下来了, 但忍受不了开机后那十分钟的等待(卡死), 有好的建议吗?

卡出翔是 HDD 的锅吧,内存里面 3.5G 是 cache ,真正占用没有那么多

Active , inactive 说明都是用户态程序占用的,就不能看看是哪个进程吗 ps -ao rss,pid,comm |sort -n

Linux 发行版默认会在 SSD 和 HDD 使用不同的 IO 调度器


RSS PID COMMAND
768 10041 sort
1520 10040 ps
3936 8748 sudo
5440 8758 gpgv
5696 8756 http
5748 8755 http
13852 9136 store
24716 8749 aptitude

很好理解吧。机械硬盘比较慢,当然 cache 越大越好啊,凑够了一起写进去。 ssd 比较快,就随用随写了。

cache 并不算使用了的内存,系统只是把空闲内存当 cache 用了而已,真的不够用的时候会刷回磁盘。所以不用在意这个。

可是以前的 14.04 用的 hdd 没有出现这种情况, 现在卡的开机十分钟内都不能用了

他能识别 ssd 和 hdd 然后做优化啊?第一次知道 linux 这么智能。。。

去 htop 里看看到底哪个程序占用了内存就知道了

就这几个吗,再看 ps -eo rss,pid,comm |sort -n



感谢, 系统恢复正常了
我也没明白怎么就好了(困扰了一周), 打开.bash_history 一个一个的看, 确实没做什么
1. 无非就是把 /etc/fstab 中 swap 的 uuid 修正了 [由于原先系统是 hdd+ssd, 我将 swap 放在 hdd 的, 系统放在 ssd, 所以 dd 过来 swap 的 uuid 是错误的]
2. 运行了系统 3 个小时 [这是上周末装上起最长的一次]
.......难道是新系统要适应几个小时???

终于开始适应这具身体了~

我来回答一记, 不对的地方请各位拍砖:
在 Linux 上不用担心 buff/cache 过大, 因为这是系统在尽量充分利用内存. 如果你的应用程序需要分配内存而有没有足够的空闲内存, 它会把 buff/cache 释放, 把内存分给应用程序, 因此 buff/cache 占用内存不是问题, 不需要担心.
Linux 的设计观念是, 尽量充分利用系统资源, 包括内存.

话糙理不糙,佩服

Ubuntu 16.04 新出了後臺系統自動更新安全補丁,說不定是這個東西的鍋。可能是你上面提到的 aptitude 。

硬盘配置不同的电脑最好是新安装系统,不要 DD

你清楚配置一个新的 linux 系统需要几周吗?

这样看你的 Linux 基础怎么样了,如果你玩过 Gentoo 或 LFS 那用别的 Linux 发行版就容易多了


可是我自己的电脑上似乎根本不会被释放......经常出现内存不够程序崩溃的情况(虚拟机 ide 等).....一检查全是被 buff cache 占了.....而且也清不掉......

都 12G 内存了,还配个机械硬盘,您老人家真是有趣

公司的电脑不可以吗

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服