在Linux系统中,可以通过以下命令查看CPU和内存信息,如何在Linux系统中一键查看CPU和内存信息?,如何在Linux系统中一键查看CPU和内存信息?
CPU信息全面解析
1 获取CPU基础信息
lscpu
典型输出分析:
Architecture: x86_64 # CPU架构类型 CPU(s): 8 # 逻辑处理器总数(核心×线程) Thread(s) per core: 2 # 每个物理核心的线程数(超线程技术) Core(s) per socket: 4 # 每个CPU插槽的物理核心数 Socket(s): 1 # 物理CPU数量(服务器常为2/4路) Model name: Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz L1d/L1i cache: 32K/32K # 数据/指令一级缓存 L2 cache: 256K # 二级缓存 L3 cache: 16M # 共享三级缓存 NUMA node(s): 1 # 非统一内存访问节点数
核心参数详解:
CPU(s)
:系统总逻辑处理器数 = Socket × Core × ThreadModel name
:包含CPU品牌、型号及基础频率(实际频率可能动态调整)Cache
:现代CPU采用三级缓存结构,L3缓存大小直接影响多核性能NUMA
:服务器多CPU架构的内存访问模式,影响性能优化策略
2 实时监控CPU负载
top -b -n 1 | grep "Cpu(s)" # 非交互式单次采样
高级操作指南:
- 按
1
键:展开显示每个逻辑核心的独立负载 Shift+P
:按CPU使用率降序排列进程Shift+M
:按内存使用量排序f
键:自定义显示字段(可添加PPID、线程数等)W
键:保存当前配置为默认视图
推荐替代工具:
sudo apt install htop # 支持鼠标操作的增强版top htop -d 5 # 每5秒刷新,彩色显示负载分布
3 深度查询CPU参数
# 获取完整CPU信息 cat /proc/cpuinfo # 提取关键信息 grep -E "model name|cpu MHz|cache size|physical id" /proc/cpuinfo | sort | uniq
输出示例:
model name : Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
cpu MHz : 1200.000 # 当前运行频率(动态调整)
cache size : 36608 KB # 三级缓存容量
physical id : 0 # 物理CPU编号
内存监控与优化
1 内存使用全景视图
free -h --si # 使用国际单位制(GB/MB)显示
输出解读:
total used free shared buff/cache available
Mem: 32G 12G 3.2G 1.1G 16G 18G
Swap: 8G 0B 8G
关键指标:
available
:系统真实可用内存 = free + 可回收缓存buff/cache
:包含磁盘缓存(可释放)和页面缓存Swap
:当used持续增长时,需考虑物理内存扩容
2 内存详细参数解析
cat /proc/meminfo | grep -E "MemTotal|MemFree|Buffers|Cached|Active|Inactive|Swap"
重点参数:
MemAvailable
:比free
更准确反映可用内存Active(file)/Inactive(file)
:文件缓存活跃度SwapCached
:被换出但暂存的内存页
3 图形化监控方案
# GNOME桌面环境 gnome-system-monitor --resouce-tab # KDE桌面环境 ksysguard # 跨平台工具 sudo apt install netdata # 实时Web监控面板
专业级监控工具集
工具名称 | 核心功能 | 安装方式 | 典型用法 |
---|---|---|---|
vmstat |
系统整体资源监控 | 系统内置 | vmstat -SM 1 5 |
nmon |
交互式多功能监控 | apt install nmon |
nmon -f -s 5 -c 12 |
glances |
现代化综合监控 | pip3 install glances |
glances --disable-plugin cloud |
dstat |
资源统计可视化 | apt install dstat |
dstat -c -m -d --top-cpu |
高级用法示例:
# 记录CPU历史数据(每10秒采样,持续1小时) sar -u 10 360 -o /var/log/sa/cpu_log # 监控内存泄漏(显示RSS内存变化) valgrind --leak-check=full ./your_program
性能问题诊断手册
1 CPU瓶颈分析
# 查看CPU运行队列 sar -q 1 3 # 检测CPU频率波动 watch -n 1 "cat /proc/cpuinfo | grep 'MHz' | awk '{print $1,$4}'"
常见问题:
- 系统负载高但CPU使用率低 → 可能I/O瓶颈
- 单个核心100% → 检查是否单线程应用
2 内存泄漏排查
# 实时监控内存变化 watch -n 1 "free -h; echo; ps -eo pid,user,%mem,cmd --sort=-%mem | head -n 5" # 检测内存泄漏工具 sudo apt install memtracer
3 综合性能报告
# 生成系统健康报告 sudo apt install sysstat sadf -d /var/log/sa/sa$(date +%d) -- -A | less
生产环境优化建议
-
长期监控策略:
# 每日定时记录性能数据 echo "0 8 * * * /usr/lib/sa/sa1 600 6" | sudo tee -a /etc/crontab
-
自动报警配置:
# 当可用内存<10%时触发警报 alert_mem=$(free | awk '/Mem/{printf("%.0f"), /*100}') [ $alert_mem -lt 10 ] && send_alert "内存不足警告!"
-
内核参数调优:
# 修改/etc/sysctl.conf vm.swappiness = 10 # 减少swap使用倾向 vm.vfs_cache_pressure = 50 # 调整文件缓存回收策略
专家提示:对于数据库服务器,建议配置
vm.dirty_ratio=10
和vm.dirty_background_ratio=5
以优化写入性能。
(本文技术图示来源于公开技术文档,版权归原作者所有)
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!