Linux 查看 CPU 指令:nproc、lscpu 與 RAM、磁碟、OS 資訊

測試環境RHEL 系列AlmaLinux 9.8root 帳號2026-10-29 確認
系統資訊 · 設定指令nproclscpufreedflsblkuname

在 Linux 中,CPU 數量用一行 nproc 就能確認,而這個數字算的是插槽、核心還是執行緒,則用 lscpu 確認。在 AlmaLinux 9 伺服器上比較 nproc、lscpu 和 /proc/cpuinfo,三個指令以 CPU(s) 和 processor 等不同名稱輸出了相同的邏輯 CPU 數量。RAM、磁碟和 OS 版本也在同一台伺服器上用 free、df、lsblk 和 uname 確認。

下方輸出中的 CPU 型號、核心數、記憶體與磁碟大小、核心版本都是範例值。每個指令會顯示什麼,先整理在表格中。

指令查看的資訊
nproc可用的 CPU 數(邏輯核心)
lscpuCPU 型號 · 插槽 · 核心 · 執行緒
free -hRAM 總量 · 已用量 · 剩餘容量
df -h各磁碟(檔案系統)的使用量
lsblk磁碟與分割區結構
cat /etc/os-release發行版名稱與版本
uname -r核心版本

1️⃣ Linux 查看 CPU:nproc 與 lscpu

lscpu 的 CPU(s) 是作業系統使用的邏輯 CPU 數量,實體核心數則另外從 Core(s) per socket 這一行讀取。計算方式為插槽數 × 每插槽核心數 × 每核心執行緒數。

如果只需要邏輯 CPU 數量,一行 nproc 就夠了。

nproc
4

根據 nproc 說明文件,這個值是目前行程可使用的處理單元數量,因此在限制 CPU 使用的環境中,可能會小於線上處理器的數量。

這個 4 是怎麼來的,寫在 lscpu 輸出的開頭。

lscpu | head -n 15
Architecture:                            x86_64
CPU op-mode(s):                          32-bit, 64-bit
Address sizes:                           46 bits physical, 48 bits virtual
Byte Order:                              Little Endian
CPU(s):                                  4
On-line CPU(s) list:                     0-3
Vendor ID:                               GenuineIntel
BIOS Vendor ID:                          Intel(R) Corporation
Model name:                              Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
BIOS Model name:                         Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
CPU family:                              6
Model:                                   85
Thread(s) per core:                      2
Core(s) per socket:                      2
Socket(s):                               1

Socket(s) 1、Core(s) per socket 2、Thread(s) per core 2 相乘,就是 CPU(s) 的 4。On-line CPU(s) list 中的 0-3 是作業系統給的邏輯 CPU 編號。

AWS EC2 價目表上的 vCPU 也是這個邏輯 CPU 單位。根據官方文件,EC2 把 CPU 核心的一個執行緒算作一個 vCPU。2 個核心、每核心 2 個執行緒的執行個體有 4 個 vCPU,與上方 lscpu 輸出是相同結構。

四個邏輯 CPU 各屬於哪個核心,-e 選項會以表格輸出。

lscpu -e
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
  0    0      0    0 0:0:0:0          yes
  1    0      0    1 1:1:1:0          yes
  2    0      0    0 0:0:0:0          yes
  3    0      0    1 1:1:1:0          yes

CPU 0 和 2 共用 CORE 0,CPU 1 和 3 共用 CORE 1。一個核心上有兩個邏輯 CPU 的結構就是超執行緒(SMT)。三個指令用什麼名稱輸出這個結構,可在下方圖表中按指令按鈕比較。

🧭 CPU(s) 4 的組成結構
說明圖解
🔍 指令
$ nproclscpucat /proc/cpuinfo
插槽 0Socket(s): 1physical id : 0
核心 0Core(s) per socket: 2core id : 0
CPU 0processor : 0
CPU 2processor : 2
Thread(s) per core: 2cpu cores : 2
核心 1Core(s) per socket: 2core id : 1
CPU 1processor : 1
CPU 3processor : 3
Thread(s) per core: 2cpu cores : 2
nproc → 4CPU(s): 4 = 1 × 2 × 2processor 0~3 · siblings : 4
nproc 計算目前行程可使用的邏輯 CPU,輸出 4。不分插槽和核心。
lscpu 把相同結構拆成 Socket(s) 1、Core(s) per socket 2、Thread(s) per core 2 輸出,三者相乘的 4 就是 CPU(s)。
/proc/cpuinfo 為每個邏輯 CPU 加上 processor 編號,輸出四組資料,插槽記為 physical id,核心記為 core id。siblings 4 是同一插槽的邏輯 CPU 數,cpu cores 2 是實體核心數。

2️⃣ Linux 查看 CPU 資訊:/proc/cpuinfo

lscpu 所彙整數字的來源是 /proc/cpuinfo 檔案。核心為每個邏輯 CPU 寫一組資料,所以在 CPU(s) 為 4 的伺服器上,相同格式的資料會連續出現四次。

cat 指令輸出整個檔案會看到全部四組,像下方這樣用 head 截斷則只會看到第一組。

head -n 27 /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 85
model name	: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
stepping	: 4
microcode	: 0x2007006
cpu MHz		: 2394.374
cache size	: 28160 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_stale_data retbleed gds bhi spectre_v2_user its
bogomips	: 4788.74
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

常看的欄位有以下十個。

  • 🔢 processor
  • ↳ 邏輯 CPU 編號(從 0 開始)
  • 🏷️ model name
  • ↳ CPU 型號名稱
  • 🧩 physical id
  • ↳ 這顆 CPU 所屬的插槽編號
  • 👥 siblings
  • ↳ 同一插槽中的邏輯 CPU 數(有超執行緒時是 cpu cores 的 2 倍)
  • 🧱 cpu cores
  • ↳ 同一插槽中的實體核心數
  • 🆔 core id
  • ↳ 這個邏輯 CPU 所屬的核心編號
  • ⏱️ cpu MHz
  • ↳ 目前時脈(MHz)
  • 🗄️ cache size
  • ↳ 快取大小(與 lscpu 的 L3 cache 相同的值)
  • 🚩 flags
  • ↳ CPU 支援的功能與指令集(ht、avx2、aes 等)
  • 📐 address sizes
  • ↳ 實體位址與虛擬位址的位元數

數 processor 行就知道 CPU 數量,比較 siblings 和 cpu cores 就知道是否開啟超執行緒。

grep -c processor /proc/cpuinfo
4
grep -E 'siblings|cpu cores' /proc/cpuinfo | sort -u
cpu cores	: 2
siblings	: 4

processor 行有 4 個、siblings 為 4、cpu cores 為 2,所以每個核心都開著兩個執行緒。同一件事也用核心寫在 /sys 中的值確認過。

cat /sys/devices/system/cpu/smt/active
1

根據核心文件,1 表示 SMT 已啟用且同胞 CPU 在線上。若已停用則顯示 0。

如果只需要 CPU 型號名稱,就把 model name 行集中起來。

grep 'model name' /proc/cpuinfo | uniq -c
      4 model name	: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz

開頭的 4 表示同一行出現了四次,所以一行就能同時看到型號名稱和邏輯 CPU 數。

3️⃣ Linux 查看 RAM 容量:free 與 /proc/meminfo

RAM 容量用 free 指令確認。加上 -h 選項會以 Gi、Mi 單位顯示。

free -h
               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       4.1Gi       775Mi       112Mi       2.8Gi       3.3Gi
Swap:          2.0Gi       640Mi       1.4Gi

可用記憶體要看 available 欄。即使 free 欄很小,Linux 也會把多餘的記憶體拿來當檔案快取(buff/cache),程式需要時再立刻釋放。

像上方輸出那樣,free 欄是 775Mi 時,available 也可能是 3.3Gi。根據 free 說明文件,available 是不使用 swap 就能啟動新程式的記憶體估計值。

在指令碼中做計算時,用 -m 選項較合適,會以 MiB 為單位輸出整數。

free -m
               total        used        free      shared  buff/cache   available
Mem:            7867        4219         775         112        2873        3400
Swap:           2047         640        1407

free 讀取的來源是 /proc/meminfo。前五行對應 free 的 total、free、available、buff/cache,單位是 kB。

head -n 5 /proc/meminfo
MemTotal:        8055808 kB
MemFree:          793600 kB
MemAvailable:    3481600 kB
Buffers:              32 kB
Cached:          2856960 kB

把 MemTotal 8055808 kB 除以 1024,就會得到與 free -m 的 7867 相同的值。

4️⃣ Linux 查看磁碟容量:df 與 lsblk

df 指令輸出已掛載檔案系統的容量和使用量,所以不適合用來查看未掛載的磁碟或分割區結構。這時請用 lsblk。

df -h -x squashfs
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           1.6G  154M  1.5G  10% /run
efivarfs        128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/nvme0n1p4   79G   10G   69G  13% /
/dev/nvme0n1p3  960M  269M  692M  28% /boot
/dev/nvme0n1p2  200M  7.7M  193M   4% /boot/efi
tmpfs           787M  8.0K  787M   1% /run/user/0

-x squashfs 是把 snap 套件以唯讀方式掛載的 loop 檔案系統從清單中排除的選項。根(/)檔案系統在 79G 中用了 10G,為 13%;devtmpfs 和 tmpfs 是建立在記憶體上的檔案系統,所以不算進磁碟容量。

若要連檔案系統類型一起看,就加上 -T;指定路徑時,只會顯示該路徑所屬檔案系統的那一行。

df -hT /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/nvme0n1p4 xfs    79G   10G   69G  13% /

根目錄是 xfs。磁碟和分割區怎麼切分,用 lsblk 查看。加上 -e 7 會排除 snap 等 loop 裝置,只留下實際的磁碟。

lsblk -e 7
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0    80G  0 disk
├─nvme0n1p1 259:1    0     1M  0 part
├─nvme0n1p2 259:2    0   200M  0 part /boot/efi
├─nvme0n1p3 259:3    0     1G  0 part /boot
└─nvme0n1p4 259:4    0  78.8G  0 part /

一顆磁碟 nvme0n1 分成四個分割區,其中 nvme0n1p4 掛載在根目錄,對應 df 的 79G 那一行。

5️⃣ Linux 查看 OS 版本與核心:os-release 與 uname

讀完 CPU、記憶體和磁碟的數字後,也一併確認這台伺服器跑的是哪個發行版和核心。發行版名稱、版本和支援結束日都在 /etc/os-release 這一個檔案裡。

cat /etc/os-release
NAME="AlmaLinux"
VERSION="9.8 (Olive Jaguar)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.8"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.8 (Olive Jaguar)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
ALMALINUX_MANTISBT_PROJECT_VERSION="9.8"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.8"
SUPPORT_END=2032-06-01

PRETTY_NAME 行是給人看的名稱,VERSION_ID 是指令碼比較用的版本號。支援結束日也用 SUPPORT_END 行確認過。

如果是 RHEL 系列,用 /etc/redhat-release 一行也會顯示相同版本。

cat /etc/redhat-release
AlmaLinux release 9.8 (Olive Jaguar)

核心版本用 uname -r 一行就能輸出。

uname -r
5.14.0-687.10.1.el9_8.x86_64
uname -a
Linux server 5.14.0-687.10.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 2 10:15:42 EDT 2026 x86_64 x86_64 x86_64 GNU/Linux

加上 -a 會在一行中顯示核心名稱、主機名稱、核心版本、建置日期和架構。其中 x86_64 是 CPU 架構,與 lscpu 的 Architecture 行相同。

🔲 Linux 查看 CPU 模擬器

在下方模擬器中,你可以自己輸入 nproc、lscpu、free、df、lsblk、uname 查看輸出。數值與本文相同,是範例值。

Linux 查看 CPU 模擬器AlmaLinux 9.8
[root@server work]#
用鍵盤 ↑↓ 鍵可叫出先前輸入過的指令。

🔢 FAQ & 推薦內容

有可能。根據 nproc 說明文件,nproc 輸出的是目前行程可使用的處理單元數量,因此在限制行程可用 CPU 的環境中,會小於線上處理器的數量。已安裝處理器的總數用 nproc [--all] 確認。在測試的伺服器上,兩個值相同。

free 欄是沒有分配給任何東西的空閒記憶體。根據 free 說明文件,available 是不使用 swap 就能啟動新程式的記憶體估計值。它是把可釋放的頁面快取和可回收的 slab 記憶體加起來計算的,所以判斷剩餘記憶體時要看 available。

lscpu 的 Thread(s) per core 為 2 時,表示每個核心開著兩個邏輯 CPU。在 /proc/cpuinfo 中 siblings 是 cpu cores 的兩倍,/sys/devices/system/cpu/smt/active 檔案的值為 1。在同一台伺服器上確認三者都顯示啟用的值。

ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Prove your humanity: 0   +   9   =