查看当前内存和交换空间使用情况,如何快速查看内存和交换空间使用情况?,如何一键查看内存和交换空间使用情况?
查看内存和交换空间使用情况
free -h # 或者查看详细内存信息(过滤关键指标) cat /proc/meminfo | grep -E 'MemTotal|MemFree|SwapTotal|SwapFree|Buffers|Cached'
典型输出示例:
total used free shared buff/cache available
Mem: 7.7Gi 2.1Gi 3.2Gi 123Mi 2.4Gi 5.1Gi
Swap: 2.0Gi 512Mi 1.5Gi
指标说明:
- buff/cache:被内核缓冲区(Buffers)和页面缓存(Cached)占用的内存
- available:预估可用内存(包含可回收的缓存内存)
交换空间(Swap)配置与管理
创建交换文件(适用于无交换分区的情况)
# 创建指定大小的交换文件(示例为4GB) sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress # 更安全的方式(支持稀疏文件) sudo fallocate -l 4G /swapfile # 设置安全权限(防止非root用户访问) sudo chmod 600 /swapfile # 格式化交换文件 sudo mkswap /swapfile # 启用交换文件 sudo swapon /swapfile # 永久生效配置(系统重启后自动挂载) echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
最佳实践建议:
- 对于传统机械硬盘(HDD),建议交换空间为物理内存的1.5-2倍
- 对于SSD存储,建议交换空间不超过物理内存大小(通常1倍足够)
- 服务器环境建议最小4GB,最大不超过8GB
- 交换文件应创建在高速存储设备上
交换空间操作与调优
基本操作命令
# 查看当前交换空间状态 sudo swapon --show # 临时启用所有交换分区/文件 sudo swapon -a # 完全禁用交换空间 sudo swapoff -a # 仅禁用特定交换文件 sudo swapoff /swapfile
内核参数调优(Swappiness)
vm.swappiness
参数控制内核使用交换空间的倾向性:
值范围 | 行为特征 |
---|---|
0 | 除非绝对必要,否则不使用交换空间 |
1-30 | 轻度使用交换空间(推荐SSD环境) |
30-60 | 平衡策略(默认值60) |
60-100 | 积极使用交换空间 |
调整方法:
# 查看当前值 cat /proc/sys/vm/swappiness # 临时修改(立即生效) sudo sysctl vm.swappiness=30 # 永久修改(需重启或执行sysctl -p) echo 'vm.swappiness=30' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
内存与交换监控工具
实时监控工具
-
vmstat - 基础监控
vmstat 1 5 # 每秒刷新,共输出5次
- 重点关注
si
(swap in)和so
(swap out)列
- 重点关注
-
sar - 历史数据分析(需安装sysstat)
sar -r 1 3 # 内存使用统计 sar -S 1 3 # 交换空间统计 sar -B 1 3 # 分页活动统计
-
高级工具:
# 按内存使用排序进程 top -o %MEM htop --sort-key=PERCENT_MEM # 专业内存分析 smem -s swap -r
关键监控指标
- 内存压力:当可用内存(available)低于总内存10%时需要警惕
- 交换活动:持续的si/so活动可能预示内存不足
- OOM风险:
dmesg | grep oom-killer
检查OOM事件
高级优化技术
Zswap配置(内存压缩交换)
# 编辑GRUB配置(/etc/default/grub) GRUB_CMDLINE_LINUX="zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20" # 更新GRUB并重启 sudo update-grub && sudo reboot
参数说明:
compressor
:推荐lz4(低CPU开销)max_pool_percent
:压缩池最大占比(建议10-30%)
交换空间性能优化
-
分区优化:
# 创建独立交换分区(性能优于交换文件) sudo mkswap /dev/sdXN sudo swapon /dev/sdXN
-
I/O调度器调整(SSD环境):
echo 'none' | sudo tee /sys/block/sdX/queue/scheduler
-
多交换文件负载均衡:
# 创建多个交换文件分散I/O压力 for i in {1..4}; do sudo fallocate -l 1G /swapfile$i sudo mkswap /swapfile$i sudo swapon /swapfile$i done
关键系统文件参考
文件路径 | 作用描述 |
---|---|
/proc/swaps |
当前激活的交换空间列表 |
/proc/meminfo |
详细内存统计信息 |
/proc/vmstat |
虚拟内存子系统统计 |
/sys/kernel/mm/transparent_hugepage/enabled |
透明大页配置 |
/var/log/syslog |
系统日志(含OOM事件) |
-
容量规划:
- 开发环境:物理内存的1-1.5倍
- 生产服务器:4GB固定大小(SSD环境)
- 数据库服务器:考虑禁用交换或设置swappiness=1
-
性能调优:
- SSD存储:优先使用Zswap
- 高负载环境:监控
pgscan_kswapd
指标 - 虚拟机环境:确保balloon驱动已安装
-
故障处理:
# 快速诊断内存问题 dmesg -T | grep -i memory journalctl -b | grep -i oom
-
长期维护:
- 定期检查
/proc/meminfo
中的SwapCached
值 - 使用
vmstat 1
监控长期趋势 - 建立内存使用基线
- 定期检查
注:本文技术内容适用于主流Linux发行版(Ubuntu/CentOS等),部分特性需要内核4.x以上版本支持,所有图片仅为技术说明用途,版权归原作者所有。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!