CentOS系统下快速获取CPU核心数与内存大小的完整指南

 更新时间:2025年07月23日 09:53:54   作者:码农阿豪@新空间  
在Linux服务器管理和性能优化中,了解系统的硬件资源是至关重要的,本文将详细介绍如何在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/8
sudo yum install util-linux procps-ng

# CentOS Stream / Rocky Linux / AlmaLinux
sudo 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核心数和内存大小的多种方法,包括:

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

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

附录:常用命令速查表

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

到此这篇关于CentOS系统下快速获取CPU核心数与内存大小的完整指南的文章就介绍到这了,更多相关CentOS查询系统资源内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux磁盘空间占用率100%的排查方法

    Linux磁盘空间占用率100%的排查方法

    使用 Linux 操作系统时,可能会遇到磁盘空间不足的错误,这种错误通常会导致系统运行缓慢或崩溃,本文将介绍磁盘排查的方法,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • 用DNSPod和Squid打造自己的CDN (六) 编译并安装Squid

    用DNSPod和Squid打造自己的CDN (六) 编译并安装Squid

    这篇文章主要介绍centos下编译并安装Squid的方法,需要的朋友可以参考下
    2013-04-04
  • Linux(CentOS)上配置 SFTP服务器

    Linux(CentOS)上配置 SFTP服务器

    本篇文章主要介绍了Linux(CentOS)上配置 SFTP服务器。相比传统的 ftp 服务,SFTP 显得更加方便、安全,有兴趣的朋友可以了解一下。
    2017-03-03
  • Linux流媒体服务器部署流程

    Linux流媒体服务器部署流程

    文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建
    2025-02-02
  • Ubuntu下开启Apache对.htaccess 的支持

    Ubuntu下开启Apache对.htaccess 的支持

    这篇文章主要介绍了Ubuntu下开启Apache对.htaccess 的支持的方法,已经在xampp开启ModRewrite的方法,非常的实用,推荐给大家,希望大家能够喜欢。
    2015-03-03
  • CentOS7下 yum方式安装Nginx的实现步骤

    CentOS7下 yum方式安装Nginx的实现步骤

    这篇文章主要介绍了CentOS7下 yum方式安装Nginx的实现步骤的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • apache 配置成滚动日志的方法

    apache 配置成滚动日志的方法

    apache默认的日志只是1个文件,随着访问量的加大,该日志文件会越来越大,借助apache的rotatelogs.exe自动生成滚动日志。
    2010-12-12
  • Linux下为PHP添加扩展库的方法

    Linux下为PHP添加扩展库的方法

    我刚刚开始学习lnmp环境,对php编译的参数基本上都不知道,在网上看了很多教程,看到在编译PhP的时候都还了很多参数,也在网上查了这些参数是什么意思,但是却不知道,哪些参数必须要加上,哪些参数不需要加
    2012-09-09
  • centos7.6 安装Tomcat-8.5.39的方法

    centos7.6 安装Tomcat-8.5.39的方法

    这篇文章主要介绍了centos7.6 安装Tomcat-8.5.39的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • ubuntu开机后ROS程序自启动问题

    ubuntu开机后ROS程序自启动问题

    这篇文章主要介绍了ubuntu开机后ROS程序自启动问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论