linux占用内存太高,有没有好的解决办法呀?

linux占用内存太高,有没有好的解决办法呀?,第1张

且体的还得看服务器的配置。

一般有如下几种可能:

1) 有程序占用大量CPU,使用top命令来检查(看看是否有java程序锁死之类的故障)

2) 有程序占用大量内存,使得内存真正不够用了(这个才是真正需要加内存的时候),比如由于MySQL在较大负载下运行容量为GB级别的数据库导致内存不够用,需要给服务器插入更多物理内存

3) 磁盘系统读写故障,IO吞吐错误造成CPU负载上升,需要光盘引导进入单用户模式扫描修复磁盘。

但也可以手动进行内存释放,具体 *** 作如下:

[root@dbserver01 mysql]# cat /proc/sys/vm/drop_caches0

首先,/proc/sys/vm/drop_caches的值,默认为0

[root@dbserver01 mysql]# sync

手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件) 《Linux就该这么学》 一起学习。

[root@dbserver01 mysql]# echo 3 >/proc/sys/vm/drop_caches

[root@dbserver01 mysql]# cat /proc/sys/vm/drop_caches

3

将/proc/sys/vm/drop_caches值设为3 [root@dbserver01 mysql]# free -m

1. 使用top 查看内存的占用情况,然后键入"M"命令根据内存的占用情况降序排列("P"是CPU占用情况降序排列)

2.关闭掉不需要的进程,

3.再使用top查看内存占用情况,发觉内存占用率已经降下来了,但是free -h却还有100G被占用(内存总共128G),vmstat发现是cache 占用了大量内存。

4. 使用 echo 1 >/proc/sys/vm/drop_caches 释放缓存

常用的释放缓存的命令如下

To free pagecache:仅清除页面缓存(PageCache)

echo 1 >/proc/sys/vm/drop_caches

To free dentries and inodes:清除目录项和inode

echo 2 >/proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:清除页面缓存,目录项和inode

echo 3 >/proc/sys/vm/drop_caches

5.再使用free -h 查看内存使用情况,发现内存使用情况已经正常了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7683443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存