如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

因为访问量持续增长,苏南大叔的博客最近迁移到了新的服务器。刚刚装好系统环境后,看到宝塔面板显示可用内存的情况之后。瞬间就泪奔了,看着着还剩下的可用内存值...,真心是难以接受了,毕竟连常用软件软件,都还没有安装呢... 通过查看系统进程,发现真正占用内存的程序其实并没有几个,那么centos的内存都去哪里了呢?

本文讲述的内容是:centos如何查看内存等资源使用情况? centos内存优化方案是什么? 本文的测试环境为:centos7.4宝塔面板5.5.4,服务器内存4g

使用free -m查看内存使用

centoslinux)下,如何查看内存使用情况呢?我们可以使用下条命令来查看内存使用情况。

free -m

centos如何查看内存等资源使用情况?centos内存优化方案 - 001

centos如何查看内存等资源使用情况?centos内存优化方案(图12-1)

但是直觉告诉我们,这个值是有问题的,因为确实可用内存太少了。

使用top查看cpu及内存使用情况

而苏南大叔使用top命令,查看程序所占用的内存值列表的时候。却没有看到那么大的内存占用值。

top

centos如何查看内存等资源使用情况?centos内存优化方案 - 002

centos如何查看内存等资源使用情况?centos内存优化方案(图12-2)

在宝塔面板的首页,我们也看到了类似的结果返回图表。

centos如何查看内存等资源使用情况?centos内存优化方案 - 000

centos如何查看内存等资源使用情况?centos内存优化方案(图12-3)

临时解决方案

本条内容说是临时方案,说的就是效果不是太好,但是也是有效果的。大家看看就ok,不推荐使用。本条目主要功效就是临时释放内存。操作的命令,在下面两组里面任选两组即可。

sync
echo 3 > /proc/sys/vm/drop_caches
sysctl -w vm.drop_caches=3

centos如何查看内存等资源使用情况?centos内存优化方案 - 003

centos如何查看内存等资源使用情况?centos内存优化方案(图12-4)

我们可以通过下面的两组命令中的任意一组,来查看设置的效果。

sysctl -a | grep drop_caches
cat /proc/sys/vm/drop_caches

centos如何查看内存等资源使用情况?centos内存优化方案 - 009

centos如何查看内存等资源使用情况?centos内存优化方案(图12-5)

当我们看到值为3的时候,就是清理内存的命令了。但是,这个值会自动重置为0。又恢复回去,并且内存清理的效果,也是当时有效,并不持久。

centos如何查看内存等资源使用情况?centos内存优化方案 - 006

centos如何查看内存等资源使用情况?centos内存优化方案(图12-6)

下面的截图中,我们可以看到free -m的对比结果。

centos如何查看内存等资源使用情况?centos内存优化方案 - 004

centos如何查看内存等资源使用情况?centos内存优化方案(图12-7)

centos如何查看内存等资源使用情况?centos内存优化方案 - 005

centos如何查看内存等资源使用情况?centos内存优化方案(图12-8)

centos如何查看内存等资源使用情况?centos内存优化方案 - 008

centos如何查看内存等资源使用情况?centos内存优化方案(图12-9)

永久解决方案

上述结果中,已经使用的内存中,只有少部分是已经安装的软件所使用的,大部分的内存是被linux的内存特殊机制占用了。就是对于所使用过的文件,都要放到内存区中保存,随时准备下一次读取。这个内存的占用是有一定范围的,而且下次会被读取到的概率,苏南大叔也表示怀疑。当然,这个是操作系统级别的概念,苏南大叔不能做出正确的判断。

但是为了得到更多的内存剩余可用值,苏南大叔觉得控制一下系统这种特殊的内存占用机制。这个系统值就是vm.min_free_kbytes,一般这个值都比较小,导致内存看起来,占用率都很高。大家需要修改这个值。这个值的位置,也存在于路径/proc/sys/vm/min_free_kbytes文件中,我们可以这样查看相关值。

当然,也可以通过下面的命令查看这个min_free_kbytes系统值,这个值除以1024就是我们平时所说的单位

sysctl -a | grep free_kbytes

centos如何查看内存等资源使用情况?centos内存优化方案 - 014

centos如何查看内存等资源使用情况?centos内存优化方案(图12-10)

我们可以使用下面的命令修改这个min_free_kbytes系统值,下面命令的值是1G,注意,千万要根据你自己的服务器内存情况,设置一个合适的值,否则,系统会奔溃的,当然强制重启后,这个值会自动修复为正常值。

sysctl -w vm.min_free_kbytes=1048576

centos如何查看内存等资源使用情况?centos内存优化方案 - 016

centos如何查看内存等资源使用情况?centos内存优化方案(图12-11)

我们可以修改,配置文件/etc/sysctl.conf,配置文件内容为:

vm.min_free_kbytes=1048576

修改这个值的话,和上面的命令行修改的效果是一致的。使用sysctl -a | grep free_kbytes都可以看到,最终生效了。重启系统之后,可以通过cat /proc/sys/vm/min_free_kbytes,看最终的生效值。

其他配置值

通过上述方式,可以配置很多系统项目,以下是一些可以修改的相关设置项目。如果您有兴趣,可以具体修改试试看。不过,要做好『系统不能进入』的最坏可能性打算哦。因为这些项目的值,都是根据不同的系统情况调整的,没有标准答案。如果你不确定你正在干什么,建议不要修改。否则,系统会崩溃.... 你懂的。

vm.dirty_ratio = 5
vm.dirty_background_ratio = 5
vm.dirty_writeback_centisecs = 100
vm.dirty_expire_centisecs = 300
vm.drop_caches = 3
vm.swappiness = 100
vm.vfs_cache_pressure = 200

centos如何查看内存等资源使用情况?centos内存优化方案 - 030

centos如何查看内存等资源使用情况?centos内存优化方案(图12-12)

总结

写入配置的方法有三种:

  • 系统命令sysctl -w
  • 修改/proc/sys/vm/下的对应文件值。
  • 修改总的设置文件/etc/sysctl.conf

查看相关设置的方法对应也有三种:

  • 系统命令是:sysctl -a
  • 查看对应文件:/proc/sys/vm/*
  • 查看对应文件:/etc/sysctl.conf

本文叙述的内容,操作起来都有一定的危险性,大家请谨慎操作。更多centos的经验文章,请点击这里查看。https://newsn.net/tag/centos/

  【centos】秘籍文章入口,仅传授于有缘之人  centos    宝塔面板

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/centos-memory-ctrl.html
上一篇好文:如何安装chrome插件adblockplus
下一篇好文:jfinalcms环境安装及调试准备

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~