searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

如何在Ubuntu中查看内存使用情况?——天翼云环境下的系统监控实践

2025-11-20 10:00:34
2
0

一、命令行工具:快速精准的监控利器

1. free命令:基础内存概览

作为最基础的内存监控工具,free命令通过简洁的输出展示系统内存状态。在天翼云终端中执行以下命令:

bash
free -h

输出示例:

total        used        free      shared  buff/cache   available
Mem:           15Gi       4.2Gi       6.8Gi       300Mi       4.0Gi       10.2Gi
Swap:          2Gi       0.0Gi       2.0Gi
  • 关键指标解析
    • available:真正可被应用程序使用的内存(含缓存回收空间)
    • buff/cache:内核缓存与缓冲区占用的内存,在内存紧张时会自动释放
    • 天翼云优化建议:当available值持续低于总内存的20%时,需考虑扩容或优化应用内存占用。

2. top命令:实时进程级监控

top命令提供动态更新的系统状态视图,特别适合排查内存泄漏问题:

bash
top
  • 交互操作
    • Shift+M:按内存使用率排序进程
    • Shift+E:切换内存单位(KB/MB/GB)
  • 天翼云典型场景:当发现某个容器进程(如Docker)内存占用异常时,可通过top -p <PID>持续跟踪特定进程。

3. htop:增强版交互监控

相较于tophtop提供更友好的界面与功能:

bash
sudo apt install htop  # 首次安装
htop
  • 核心优势
    • 彩色树状进程视图,直观展示进程层级关系
    • 支持鼠标操作与快捷键(如F6排序、F9终止进程)
    • 天翼云实践:在多容器环境中,可通过htopSetup菜单配置显示容器ID,快速定位异常容器。

4. vmstat:系统级性能诊断

vmstat通过统计虚拟内存活动,帮助识别内存瓶颈根源:

bash
vmstat 1 5  # 每秒刷新1次,共5次
  • 关键输出列
    • si/so:内存交换(Swap)活动频率,持续高于0表明物理内存不足
    • wa:I/O等待时间占比,高值可能暗示磁盘I/O成为性能瓶颈
  • 天翼云优化案例:某企业数据库服务出现响应延迟,通过vmstat发现wa值达30%,最终通过升级云主机SSD存储解决问题。

二、文件系统:深入内核的内存数据源

/proc/meminfo:原始数据宝库

该文件记录了内核层面的详细内存统计:

bash
cat /proc/meminfo | grep -E "MemTotal|MemFree|Buffers|Cached|SwapCached"
  • 天翼云高级应用:结合grepawk脚本,可自动化提取关键指标并生成监控报表。例如:
bash
awk '/MemAvailable/ {print "Available Memory: " $2/1024 " GB"}' /proc/meminfo

三、图形化工具:可视化监控方案

系统监视器(GUI工具)

对于偏好图形界面的用户,Ubuntu自带的系统监视器提供直观的内存视图:

  1. 点击左上角“活动”→搜索“系统监视器”
  2. 切换至“资源”选项卡,查看内存使用趋势图
  • 天翼云适配建议:通过远程桌面协议(如VNC)连接云主机,实现可视化监控。

四、天翼云专属优化策略

1. 内存超配预警机制

结合天翼云监控告警功能,设置自定义阈值(如available_memory < 1GB),当触发告警时自动执行扩容或应用重启脚本。

2. 容器内存限制配置

对于Docker/Kubernetes环境,通过以下参数严格限制容器内存:

bash
docker run -d --memory="2g" --memory-swap="3g" nginx
  • 原理:防止单个容器过度占用主机内存,避免OOM(Out of Memory)导致系统崩溃。

3. Swap空间优化

在内存不足时,合理配置Swap空间可提升系统稳定性:

bash
sudo fallocate -l 4G /swapfile  # 创建4GB交换文件
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
  • 天翼云实践:建议Swap空间设置为物理内存的1-2倍,但需注意频繁Swap会导致性能下降。

五、综合监控方案示例

以下脚本整合了多种工具,实现自动化内存监控与告警:

bash
#!/bin/bash
THRESHOLD=1024  # 可用内存阈值(MB)
CHECK_INTERVAL=60  # 检查间隔(秒)

while true; do
    AVAILABLE=$(free -m | awk '/Mem/{print $7}')
    if [ "$AVAILABLE" -lt "$THRESHOLD" ]; then
        echo "[WARNING] Low memory: $AVAILABLE MB available" | mail -s "Memory Alert" admin@example.com
        # 可替换为天翼云API调用,触发自动扩容
    fi
    sleep $CHECK_INTERVAL
done

结语

在天翼云环境中,掌握多样化的内存监控手段是保障系统稳定运行的关键。从基础的free命令到高级的vmstat分析,从容器级限制到云平台告警集成,开发者可根据实际需求选择合适工具。建议结合天翼云监控服务构建立体化监控体系,实现从实时告警到自动扩缩容的全流程管理,最终达成资源利用率与服务可靠性的平衡。

0条评论
0 / 1000
窝补药上班啊
1346文章数
6粉丝数
窝补药上班啊
1346 文章 | 6 粉丝
原创

如何在Ubuntu中查看内存使用情况?——天翼云环境下的系统监控实践

2025-11-20 10:00:34
2
0

一、命令行工具:快速精准的监控利器

1. free命令:基础内存概览

作为最基础的内存监控工具,free命令通过简洁的输出展示系统内存状态。在天翼云终端中执行以下命令:

bash
free -h

输出示例:

total        used        free      shared  buff/cache   available
Mem:           15Gi       4.2Gi       6.8Gi       300Mi       4.0Gi       10.2Gi
Swap:          2Gi       0.0Gi       2.0Gi
  • 关键指标解析
    • available:真正可被应用程序使用的内存(含缓存回收空间)
    • buff/cache:内核缓存与缓冲区占用的内存,在内存紧张时会自动释放
    • 天翼云优化建议:当available值持续低于总内存的20%时,需考虑扩容或优化应用内存占用。

2. top命令:实时进程级监控

top命令提供动态更新的系统状态视图,特别适合排查内存泄漏问题:

bash
top
  • 交互操作
    • Shift+M:按内存使用率排序进程
    • Shift+E:切换内存单位(KB/MB/GB)
  • 天翼云典型场景:当发现某个容器进程(如Docker)内存占用异常时,可通过top -p <PID>持续跟踪特定进程。

3. htop:增强版交互监控

相较于tophtop提供更友好的界面与功能:

bash
sudo apt install htop  # 首次安装
htop
  • 核心优势
    • 彩色树状进程视图,直观展示进程层级关系
    • 支持鼠标操作与快捷键(如F6排序、F9终止进程)
    • 天翼云实践:在多容器环境中,可通过htopSetup菜单配置显示容器ID,快速定位异常容器。

4. vmstat:系统级性能诊断

vmstat通过统计虚拟内存活动,帮助识别内存瓶颈根源:

bash
vmstat 1 5  # 每秒刷新1次,共5次
  • 关键输出列
    • si/so:内存交换(Swap)活动频率,持续高于0表明物理内存不足
    • wa:I/O等待时间占比,高值可能暗示磁盘I/O成为性能瓶颈
  • 天翼云优化案例:某企业数据库服务出现响应延迟,通过vmstat发现wa值达30%,最终通过升级云主机SSD存储解决问题。

二、文件系统:深入内核的内存数据源

/proc/meminfo:原始数据宝库

该文件记录了内核层面的详细内存统计:

bash
cat /proc/meminfo | grep -E "MemTotal|MemFree|Buffers|Cached|SwapCached"
  • 天翼云高级应用:结合grepawk脚本,可自动化提取关键指标并生成监控报表。例如:
bash
awk '/MemAvailable/ {print "Available Memory: " $2/1024 " GB"}' /proc/meminfo

三、图形化工具:可视化监控方案

系统监视器(GUI工具)

对于偏好图形界面的用户,Ubuntu自带的系统监视器提供直观的内存视图:

  1. 点击左上角“活动”→搜索“系统监视器”
  2. 切换至“资源”选项卡,查看内存使用趋势图
  • 天翼云适配建议:通过远程桌面协议(如VNC)连接云主机,实现可视化监控。

四、天翼云专属优化策略

1. 内存超配预警机制

结合天翼云监控告警功能,设置自定义阈值(如available_memory < 1GB),当触发告警时自动执行扩容或应用重启脚本。

2. 容器内存限制配置

对于Docker/Kubernetes环境,通过以下参数严格限制容器内存:

bash
docker run -d --memory="2g" --memory-swap="3g" nginx
  • 原理:防止单个容器过度占用主机内存,避免OOM(Out of Memory)导致系统崩溃。

3. Swap空间优化

在内存不足时,合理配置Swap空间可提升系统稳定性:

bash
sudo fallocate -l 4G /swapfile  # 创建4GB交换文件
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
  • 天翼云实践:建议Swap空间设置为物理内存的1-2倍,但需注意频繁Swap会导致性能下降。

五、综合监控方案示例

以下脚本整合了多种工具,实现自动化内存监控与告警:

bash
#!/bin/bash
THRESHOLD=1024  # 可用内存阈值(MB)
CHECK_INTERVAL=60  # 检查间隔(秒)

while true; do
    AVAILABLE=$(free -m | awk '/Mem/{print $7}')
    if [ "$AVAILABLE" -lt "$THRESHOLD" ]; then
        echo "[WARNING] Low memory: $AVAILABLE MB available" | mail -s "Memory Alert" admin@example.com
        # 可替换为天翼云API调用,触发自动扩容
    fi
    sleep $CHECK_INTERVAL
done

结语

在天翼云环境中,掌握多样化的内存监控手段是保障系统稳定运行的关键。从基础的free命令到高级的vmstat分析,从容器级限制到云平台告警集成,开发者可根据实际需求选择合适工具。建议结合天翼云监控服务构建立体化监控体系,实现从实时告警到自动扩缩容的全流程管理,最终达成资源利用率与服务可靠性的平衡。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0