centos如何查看内存等资源使用情况?centos内存优化方案
发布于 作者:苏南大叔 来源:程序如此灵动~因为访问量持续增长,苏南大叔的博客最近迁移到了新的服务器。刚刚装好系统环境后,看到宝塔面板显示可用内存的情况之后。瞬间就泪奔了,看着着还剩下的可用内存值...,真心是难以接受了,毕竟连常用软件软件,都还没有安装呢... 通过查看系统进程,发现真正占用内存的程序其实并没有几个,那么centos
的内存都去哪里了呢?
本文讲述的内容是:centos如何查看内存等资源使用情况? centos内存优化方案是什么? 本文的测试环境为:centos7.4
,宝塔面板5.5.4
,服务器内存4g
。
使用free -m
查看内存使用
在centos
(linux
)下,如何查看内存使用情况呢?我们可以使用下条命令来查看内存使用情况。
free -m
但是直觉告诉我们,这个值是有问题的,因为确实可用内存太少了。
使用top
查看cpu及内存使用情况
而苏南大叔使用top
命令,查看程序所占用的内存值列表的时候。却没有看到那么大的内存占用值。
top
在宝塔面板的首页,我们也看到了类似的结果返回图表。
临时解决方案
本条内容说是临时方案,说的就是效果不是太好,但是也是有效果的。大家看看就ok,不推荐使用。本条目主要功效就是临时释放内存。操作的命令,在下面两组里面任选两组即可。
sync
echo 3 > /proc/sys/vm/drop_caches
sysctl -w vm.drop_caches=3
我们可以通过下面的两组命令中的任意一组,来查看设置的效果。
sysctl -a | grep drop_caches
cat /proc/sys/vm/drop_caches
当我们看到值为3的时候,就是清理内存的命令了。但是,这个值会自动重置为0。又恢复回去,并且内存清理的效果,也是当时有效,并不持久。
下面的截图中,我们可以看到free -m
的对比结果。
永久解决方案
上述结果中,已经使用的内存中,只有少部分是已经安装的软件所使用的,大部分的内存是被linux的内存特殊机制占用了。就是对于所使用过的文件,都要放到内存区中保存,随时准备下一次读取。这个内存的占用是有一定范围的,而且下次会被读取到的概率,苏南大叔也表示怀疑。当然,这个是操作系统级别的概念,苏南大叔不能做出正确的判断。
但是为了得到更多的内存剩余可用值,苏南大叔觉得控制一下系统这种特殊的内存占用机制。这个系统值就是vm.min_free_kbytes
,一般这个值都比较小,导致内存看起来,占用率都很高。大家需要修改这个值。这个值的位置,也存在于路径/proc/sys/vm/min_free_kbytes
文件中,我们可以这样查看相关值。
当然,也可以通过下面的命令查看这个min_free_kbytes
系统值,这个值除以1024就是我们平时所说的单位兆
。
sysctl -a | grep free_kbytes
我们可以使用下面的命令修改这个min_free_kbytes
系统值,下面命令的值是1G,注意,千万要根据你自己的服务器内存情况,设置一个合适的值,否则,系统会奔溃的,当然强制重启后,这个值会自动修复为正常值。
sysctl -w vm.min_free_kbytes=1048576
我们可以修改,配置文件/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
总结
写入配置的方法有三种:
- 系统命令
sysctl -w
- 修改
/proc/sys/vm/
下的对应文件值 - 修改总的设置文件
/etc/sysctl.conf
查看相关设置的方法对应也有三种:
- 系统命令是:
sysctl -a
- 查看对应文件:
/proc/sys/vm/*
- 查看对应文件:
/etc/sysctl.conf
本文叙述的内容,操作起来都有一定的危险性,大家请谨慎操作。更多centos
的经验文章,请点击这里查看:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。