目录
1、内存
(1) 查看内存指令
-
free命令:
free
命令用于显示系统内存使用情况,包括总内存、已使用内存、空闲内存以及缓冲区和缓存的使用情况。
free -h 或者 free -m
该命令以人类可读的方式显示内存大小(以MB或GB为单位),输出示例如下:
total used free shared buffers cached Mem: 7.8G 2.4G 5.3G 342M 112M 1.1G -/+ buffers/cache: 1.2G 6.6G Swap: 2.0G 0B 2.0G
在输出中,"Mem" 行显示了总内存、已使用内存和空闲内存的详细信息。"-/+ buffers/cache" 行显示了实际使用内存和可用内存(不包括缓冲区和缓存)。
-
top命令:
top
命令用于实时监视系统的各种性能指标,包括内存使用情况。启动top
命令后,按下 "M" 键可以按内存使用排序进程列表,以便查看占用内存最多的进程。
top
在 top
命令的输出中,内存使用情况显示在 "Mem" 行中,包括总内存、已使用内存、空闲内存、缓冲区和缓存的使用情况。
-
vmstat命令:
vmstat
命令用于报告虚拟内存的统计信息,包括内存使用情况、交换分区使用情况、进程、IO等。
vmstat
vmstat
命令的输出包含多个字段,其中 "free" 列显示空闲内存的数量,"swpd" 列显示交换分区已使用的数量,"buff" 和 "cache" 列显示缓冲区和缓存的大小。
-
htop命令:
htop
是一个更强大和交互式的进程监视器,可以提供更直观的内存使用情况展示。
(2) 清理缓存
-
使用 sync 命令:
sync
sync 命令用于将内存中的数据立即写入磁盘,并清空文件系统缓冲区。这将导致缓冲区和缓存的数据被刷新到磁盘上,释放相关的内存。
-
使用 drop_caches 参数:
echo 1 > /proc/sys/vm/drop_caches
使用 echo 命令将数字 1 写入 /proc/sys/vm/drop_caches 文件。这将清空缓冲区(buffers)。 如果你想清空缓存(cached),可以使用数字 2 或 3 替代 1:
echo 2 > /proc/sys/vm/drop_caches # 清空缓存 echo 3 > /proc/sys/vm/drop_caches # 清空缓冲区和缓存
注意:清理缓冲区和缓存可能会导致一些性能下降,因为系统需要重新读取磁盘上的数据到缓冲区和缓存中。
这些方法会清理 Linux 系统中的缓冲区和缓存,释放相关的内存。在普通的系统运行中,缓冲区和缓存的占用是正常的,它们可以提高系统性能。通常情况下,不需要频繁地手动清理缓冲区和缓存。只有在特殊情况下,如进行性能测试或遇到内存压力较大的情况时,才需要清理缓冲区和缓存。
(3) swap分区的作用
-
扩展可用内存:Swap 分区允许将部分不常用的内存数据存储到硬盘上,从而释放物理内存供其他进程使用。当系统的物理内存不足时,Swap 分区可以提供额外的可用内存空间。
-
内存回收机制:Swap 分区可以作为一种内存回收机制。当系统内存使用达到一定阈值时,操作系统会将不活跃的内存页面移入 Swap 分区,从而提供更多的空闲物理内存给活跃进程使用。当需要访问 Swap 中的数据时,操作系统会将其移回物理内存。
-
支持休眠和睡眠模式:Swap 分区对于休眠(Hibernate)和睡眠(Suspend)模式的支持至关重要。当系统进入休眠或睡眠状态时,当前的内存状态将被保存到 Swap 分区中,以便在唤醒时恢复到先前的状态。
-
系统稳定性保护:Swap 分区可以帮助系统避免由于内存不足而导致的崩溃和系统错误。当系统的物理内存耗尽时,Linux 内核会尝试将部分内存页面移到 Swap 分区,以避免系统宕机或进程崩溃。
需要注意的是,Swap 分区并不是用于替代物理内存的解决方案。它是一种补充和扩展内存的机制,适用于处理临时的内存压力或提供休眠和睡眠模式的支持。对于性能敏感的应用程序和服务器,应当优先考虑增加物理内存来改善性能,而不是依赖过多的 Swap 分区。合理设置 Swap 分区的大小,以及根据实际需求调整其使用情况,是确保系统正常运行的重要方面。