运维之内存篇

本文介绍了运维人员面对内存快满问题时的解决方案,包括关闭无用进程、清理页缓存和目录项缓存、调整交换空间大小以及创建和配置交换分区。作者呼吁大家共同讨论更优的内存管理方法。
摘要由CSDN通过智能技术生成

最近又遇到一种经常遇到的情况:内存快满的问题。这种情况在日常运维中也是时常会遇到的情况,但解决方法好像除了增加物理内存也没有什么其他好的办法了,其他办法好像也是只能解决一下燃眉之急。本篇仅记录一下自己遇到的一些问题及解决,做运维时间短,如果有更好的办法也希望大家能提出来一起讨论。

1、关掉没有什么用而又占用内存很大的进程

1、可通过top命令,再敲击键盘M,让占用内存较大的进程排到前面
2、执行ps aux --sort=-%mem | head -20,列出占内存前二十的进程

2、清理缓存和缓冲区

[root@VM-8-15-centos ~]# echo 1 > /proc/sys/vm/drop_caches

上述命令的意思是将 1 写入到 drop_caches 中去,其中还可以写入2,3,各模式意义如下:

  • 1:清理页缓存,页缓存用于存储最近访问过的文件内容,以加快对相同文件的后续访问速度。清理页缓存可能会导致后续的文件访问变慢,因为内容需要从磁盘重新读取。
  • 2:理目录项缓存和 inode 缓存,目录项缓存用于存储目录项信息,而 inode 缓存用于存储文件的元数据。清理这些缓存可能会导致文件系统操作变慢,因为相关信息需要从磁盘重新读取。
  • 3:清理页缓存、目录项缓存和 inode 缓存,这通常用于最大程度地释放内存,但同样会导致后续的磁盘访问和文件系统操作变慢。

但是要注意,drop_caches 的使用应该谨慎,因为它可能会导致系统性能下降。

3、调整交换空间大小
交换空间(Swap space)是硬盘上的一部分区域,当物理内存(RAM)不足以容纳所有活动进程时,系统会使用交换空间来存储不活跃的内存页。这样,物理内存就可以为其他更活跃的进程释放空间。

交换空间的用途主要包括:

  1. 提供额外的虚拟内存,使得系统能够运行内存需求较大的应用程序。
  2. 在内存紧张时,通过将不常用的数据交换到硬盘上,来释放物理内存,防止系统因内存不足而崩溃。
  3. 支持系统的休眠功能,因为休眠时系统会将内存内容保存到交换空间,以便快速恢复工作状态。
  4. 通过交换机制,系统可以更有效地管理内存,优化性能。

如果没有配置交换空间,可按以下步骤配置:

1、创建swap分区

fallocate -l 4G /usr/swapfile

2、分配权限

chmod 600 /usr/swapfile 

3、初始化交换文件

mkswap /usr/swapfile

4、开启swap

swapon /usr/swapfile 

5、查看是否配置成功

free -h
# 查看swap行是否有分配有内存

6、使交换空间持久化:编辑/etc/fstab文件,添加一行以便在系统启动时自动激活交换空间

/usr/swapfile swap swap defaults 0 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值