当前位置:首页 > 内存 > 正文

linux进程物理内存高 优化

  • 内存
  • 2024-05-30 11:47:39
  • 2611

一、如何优化Linux系统的内存使用

注意内存使用问题,free是一个非常有用的命令

free-g

Mem:代表物理内存统计

total:代表物理内存总计memory(total=used+free)used:显示分配给cache的总量(包括buffer和cache),但有些cache可能没有被实际使用。free:内存未分配。shared:共享内存,一般系统不会使用,这里不讨论。buffer:系统分配但未使用的缓冲区数量。cache:系统分配但未使用的缓存数量。

-/+buffers/cache:显示物理内存缓存统计

used2:即第一行的used-buffers-cached也是实际使用的内存总量。//used2是第二行free2=buffers1+cached1+free1//free2是第二行,buffers1等第一行是free2:未使用的buffer、cache和未分配内存的数量,这个是当前系统可用的实际内存。

关于性能

buffer和cache的区别

对于应用程序来说,buffer/cache和available是一样的,因为Buffer/cache是​​为了提高文件读取性能当应用程序需要使用内存时,buffer/cache会很快被回收。所以从应用角度来说,可用内存=freememory+buffers+cached系统。

Buffers是指块设备使用的缓冲区大小,它只记录文件系统的元数据和tracking-flightpages。缓存用于缓冲文件。含义:缓冲区用于存储目录内容、权限等。而缓存是直接用来记住我们打开的文件的。如果你想知道它是否真的有效,你可以尝试一下并执行两次#manX命令。

缓存实验:如果在没有应用程序的机器上进行,效果会更明显。请记住,该实验只能进行一次,如果想再次进行,请更改文件名。

#free#manX#free#manX#free

可以比较free后的缓冲区大小。

缓冲区测试:

#free#ls/dev#free

比较两者的大小当然,缓冲区随时都会增长。但是你如果使用ls的话,速度提升会更快。这就是缓冲/缓存之间的区别。

因为Linux使用你暂时不用的内存作为文件和数据缓存来提高系统性能,当你需要的时候系统会自动释放它(与Windows不同,即使你有很多空闲的内存)内存,他还需要访问磁盘上的页面文件)


二、linux占用内存太高,有没有好的解决办法呀?它还取决于服务器配置。
一般来说,有几种可能:
1)有一个程序占用大量CPU来测试(如Java程序锁定错误)
2)有一个程序,占用大量内存,内存实际上不够(这是要添加内存的时候)负载大,内存不够,需要在服务器中插入额外的物理内存。启动到单用户模式以扫描和修复磁盘。
不过,可以手动释放内存:
[root@dbserver01mysql]#cat/proc/sys/vm/drop_caches0>首先,/proc/sys/vm/drop_caches值,默认0
[root@dbserver01mysql]#sync
手动执行sync命令(说明:sync命令运行)如果需要sync子节,停止它,运行sync命令同步命令改进了i-写入所有未写入的系统缓冲区,包括节点、延迟I/O和映射。《这就是你应该如何学习Linux》,一起学习
3
将/proc/sys/vm/drop_caches值设置为3[root@dbserver01mysql]#free-m。