CentOS系统资源查询指南:如何快速获取CPU核心数与内存大小

CentOS系统资源查询指南:如何快速获取CPU核心数与内存大小
个人名片

🎓作者简介:java领域优质创作者
🌐个人主页码农阿豪
📞工作室:新空间代码工作室(提供各种软件服务)
💌个人邮箱:[[email protected]]
📱个人微信:15279484656
🌐个人导航网站www.forff.top
💡座右铭:总有人要赢。为什么不能是我呢?
  • 专栏导航:
码农阿豪系列专栏导航
面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️
Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻
Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡
全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀

目录

CentOS系统资源查询指南:如何快速获取CPU核心数与内存大小

引言

在Linux服务器管理和性能优化中,了解系统的硬件资源(如CPU核心数、内存大小)是至关重要的。无论是部署应用程序、调试性能瓶颈,还是进行容量规划,掌握这些基本信息都能帮助我们更高效地管理服务器。

CentOS(Community Enterprise Operating System)作为一款广泛使用的企业级Linux发行版,提供了多种命令行工具来查询系统资源。本文将详细介绍如何在CentOS系统中快速、准确地获取CPU核心数和内存大小,并通过实际命令示例和解释帮助读者掌握这些技巧。


1. 查询CPU核心数

CPU核心数直接影响系统的并行计算能力,因此我们需要知道服务器的物理核心数和逻辑核心数(即线程数)。

1.1 使用 lscpu 命令

lscpu 是Linux下最常用的CPU信息查询工具,能够显示详细的CPU架构、核心数、线程数等信息。

lscpu 

输出示例:

Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel Model name: Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz ... 

关键字段解析:

  • CPU(s):逻辑CPU数量(总线程数 = 物理核心数 × 每核线程数)。
  • Thread(s) per core:每个物理核心支持的线程数(超线程技术下通常为2)。
  • Core(s) per socket:每个CPU插槽的物理核心数。
  • Socket(s):物理CPU插槽数量(服务器通常有1或2个)。

计算方式:

  • 总物理核心数 = Socket(s) × Core(s) per socket
    (示例中:1 × 4 = 4 个物理核心)
  • 总逻辑核心数(线程数) = CPU(s)
    (示例中:8 个逻辑线程)

1.2 使用 nproc 命令

如果只需要快速获取逻辑CPU核心数,可以使用 nproc 命令:

nproc 

输出示例:

8 

1.3 使用 /proc/cpuinfo

Linux的 /proc/cpuinfo 文件存储了详细的CPU信息,我们可以用 grep 提取关键数据:

cat /proc/cpuinfo |grep"processor"|wc -l 

这条命令会返回逻辑CPU数量(等同于 nproc)。


2. 查询内存大小

内存大小直接影响系统能运行的进程数量和服务性能,我们可以通过多种方式查询内存信息。

2.1 使用 free 命令

free 是最常用的内存查询工具,可以显示物理内存和交换分区(Swap)的使用情况。

free -h 

输出示例:

 total used free shared buff/cache available Mem: 15G 2.1G 11G 10M 1.8G 13G Swap: 2.0G 0B 2.0G 

关键字段解析:

  • Mem: total:总物理内存(示例中为15GB)。
  • available:系统可用内存(包括缓存和缓冲区)。
  • Swap: total:交换分区大小。

2.2 使用 /proc/meminfo

Linux的 /proc/meminfo 文件记录了详细的内存信息,我们可以直接读取:

cat /proc/meminfo |grep MemTotal 

输出示例:

MemTotal: 16248576 kB # 约15.5GB 

2.3 使用 dmidecode(需root权限)

如果需要查询更详细的硬件信息(如内存插槽、型号等),可以使用 dmidecode

sudo dmidecode -t memory |grep -A5 "Memory Device"

输出示例:

Memory Device Total Width: 64 bits Data Width: 64 bits Size: 8192 MB Form Factor: DIMM Speed: 2400 MHz 

3. 快速汇总系统资源

如果希望一键获取CPU核心数和内存大小,可以使用以下命令组合:

echo"CPU Cores: $(nproc) | Memory: $(free -h |awk'/Mem:/ {print $2}')"

输出示例:

CPU Cores: 8 | Memory: 15G 

4. 进阶查询技巧

4.1 检查NUMA架构(多CPU服务器)

在高端服务器上,CPU和内存可能采用NUMA(Non-Uniform Memory Access)架构,可以使用:

numactl --hardware 

输出示例:

available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 node 0 size: 8192 MB node 1 cpus: 4 5 6 7 node 1 size: 8192 MB 

4.2 检查CPU型号和频率

cat /proc/cpuinfo |grep"model name"|head -n 1

输出示例:

model name : Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz 

5. 常见问题与解决方案

5.1 命令不存在?

如果 lscpufree 不可用,可能是缺少依赖包,可以安装:

# CentOS 7/8sudo yum install util-linux procps-ng # CentOS Stream / Rocky Linux / AlmaLinuxsudo dnf install util-linux procps-ng 

5.2 虚拟化环境下的资源查询

在云服务器(如AWS、阿里云)上,lscpu 可能显示的是虚拟化后的CPU核心数,实际资源可能受限于云服务商配额。可以使用:

# 检查cgroup限制(容器/K8s环境)cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us cat /sys/fs/cgroup/memory/memory.limit_in_bytes 

6. 总结

本文介绍了在CentOS系统中查询CPU核心数和内存大小的多种方法,包括:

  1. CPU查询:lscpunproc/proc/cpuinfo
  2. 内存查询:free/proc/meminfodmidecode
  3. 快速汇总:echo "CPU: $(nproc) | Memory: $(free -h)"
  4. 进阶技巧:NUMA架构、CPU型号检查

掌握这些命令后,你可以快速评估服务器硬件资源,优化应用部署,提高系统管理效率。


附录:常用命令速查表

用途命令
查询逻辑CPU核心数nproc
查询详细CPU信息lscpu
查询物理内存free -h
查询内存详细信息cat /proc/meminfo
一键获取CPU和内存`echo "CPU: $(nproc)

希望这篇指南能帮助你更高效地管理CentOS服务器! 🚀

Read more

【Linux】Ubuntu 与 CentOS 选择指南:两大主流 Linux 发行版的优劣势对比

【Linux】Ubuntu 与 CentOS 选择指南:两大主流 Linux 发行版的优劣势对比

【Linux】Ubuntu 与 CentOS 选择指南:两大主流 Linux 发行版的优劣势对比 * 摘要 * 一、引言:为何要在 Ubuntu 和 CentOS 之间选择? * 二、出身与血统:Debian vs. Red Hat * 三、核心差异深度对比 * 3.1 软件包管理:APT vs. DNF * 3.2 发布周期与稳定性 * 3.3 软件生态与可用性 * 3.4 社区与商业支持 * 3.5 安全性与 SELinux * 四、如何选择:场景化决策指南 * 场景一:桌面用户、初学者和开发者 * 场景二:

By Ne0inhk
Flutter 组件 okay 的适配 鸿蒙Harmony 实战 - 驾驭类型化结果包装、实现鸿蒙端函数式异常处理与逻辑自愈架构方案

Flutter 组件 okay 的适配 鸿蒙Harmony 实战 - 驾驭类型化结果包装、实现鸿蒙端函数式异常处理与逻辑自愈架构方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 okay 的适配 鸿蒙Harmony 实战 - 驾驭类型化结果包装、实现鸿蒙端函数式异常处理与逻辑自愈架构方案 前言 在鸿蒙(OpenHarmony)生态的分布式事务处理、金融支付核心链路以及对系统鲁棒性有极致要求的复杂业务逻辑开发中,“错误的精确支配”是工程质量的最后一道防线。面对一个可能因断网、鉴权失效或数据格式错误而失败的 API 调用。如果仅仅依靠原始的 try-catch 捕获所有 Exception。那么不仅会导致业务逻辑代码中充斥着大量的跳转噪音、使代码流程变得支离破碎。更会因为无法在类型层面强制开发者处理异常逻辑,引发严重的运行时“空指针引发的崩溃”事故方案。 我们需要一种“显式包装、类型受控”的逻辑处理艺术。 okay 是一套专注于引入 Rust/Swift 风格的 Result 类型(或者称为 Ok/Err 模式)

By Ne0inhk
OpenClaw保姆级安装教程:windows&ubuntu

OpenClaw保姆级安装教程:windows&ubuntu

这次给大家带来了OpenClaw安装全流程,从Node.js环境准备到完整OpenClaw安装配置。无论是Ubuntu还是Windows,都能按照本指南快速完成OpenClaw安装并成功运行。 一、Ubuntu 环境安装教程 对于很多开发者来说,Linux 环境是运行服务器和后台服务的首选。如果你目前还没有安装 Ubuntu 系统,或者对 Linux 环境还比较陌生,完全不用担心。你可以先去阅读一下《安装篇–Ubuntu24.04.2详细安装教程》这篇文章,跟着教程把基础的操作系统环境搭建好之后,再回到这里继续往下进行。 在 Ubuntu 中,我将全程使用命令行来完成安装。 第一步:部署 Node.js 基础运行环境 OpenClaw 对 Node.js 的版本有一定要求,为了保证最佳的兼容性和性能,我们这里强烈推荐安装Node.js 22.x版本。 首先,我们需要下载并执行 NodeSource 提供的官方安装配置脚本,它会自动帮我们配置好软件源:

By Ne0inhk