Linux 查看 CPU 指令:nproc、lscpu 與 RAM、磁碟、OS 資訊
在 Linux 中,CPU 數量用一行 nproc 就能確認,而這個數字算的是插槽、核心還是執行緒,則用 lscpu 確認。在 AlmaLinux 9 伺服器上比較 nproc、lscpu 和 /proc/cpuinfo,三個指令以 CPU(s) 和 processor 等不同名稱輸出了相同的邏輯 CPU 數量。RAM、磁碟和 OS 版本也在同一台伺服器上用 free、df、lsblk 和 uname 確認。
下方輸出中的 CPU 型號、核心數、記憶體與磁碟大小、核心版本都是範例值。每個指令會顯示什麼,先整理在表格中。
| 指令 | 查看的資訊 |
|---|---|
| nproc | 可用的 CPU 數(邏輯核心) |
| lscpu | CPU 型號 · 插槽 · 核心 · 執行緒 |
| free -h | RAM 總量 · 已用量 · 剩餘容量 |
| df -h | 各磁碟(檔案系統)的使用量 |
| lsblk | 磁碟與分割區結構 |
| cat /etc/os-release | 發行版名稱與版本 |
| uname -r | 核心版本 |
1️⃣ Linux 查看 CPU:nproc 與 lscpu
lscpu 的 CPU(s) 是作業系統使用的邏輯 CPU 數量,實體核心數則另外從 Core(s) per socket 這一行讀取。計算方式為插槽數 × 每插槽核心數 × 每核心執行緒數。
如果只需要邏輯 CPU 數量,一行 nproc 就夠了。
nproc4根據 nproc 說明文件,這個值是目前行程可使用的處理單元數量,因此在限制 CPU 使用的環境中,可能會小於線上處理器的數量。
這個 4 是怎麼來的,寫在 lscpu 輸出的開頭。
lscpu | head -n 15Architecture: 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): 1Socket(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 -eCPU 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 yesCPU 0 和 2 共用 CORE 0,CPU 1 和 3 共用 CORE 1。一個核心上有兩個邏輯 CPU 的結構就是超執行緒(SMT)。三個指令用什麼名稱輸出這個結構,可在下方圖表中按指令按鈕比較。
2️⃣ Linux 查看 CPU 資訊:/proc/cpuinfo
lscpu 所彙整數字的來源是 /proc/cpuinfo 檔案。核心為每個邏輯 CPU 寫一組資料,所以在 CPU(s) 為 4 的伺服器上,相同格式的資料會連續出現四次。
cat 指令輸出整個檔案會看到全部四組,像下方這樣用 head 截斷則只會看到第一組。
head -n 27 /proc/cpuinfoprocessor : 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 數量,比較 siblings 和 cpu cores 就知道是否開啟超執行緒。
grep -c processor /proc/cpuinfo4grep -E 'siblings|cpu cores' /proc/cpuinfo | sort -ucpu cores : 2
siblings : 4processor 行有 4 個、siblings 為 4、cpu cores 為 2,所以每個核心都開著兩個執行緒。同一件事也用核心寫在 /sys 中的值確認過。
cat /sys/devices/system/cpu/smt/active1根據核心文件,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 1407free 讀取的來源是 /proc/meminfo。前五行對應 free 的 total、free、available、buff/cache,單位是 kB。
head -n 5 /proc/meminfoMemTotal: 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 squashfsFilesystem 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 7NAME 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-releaseNAME="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-01PRETTY_NAME 行是給人看的名稱,VERSION_ID 是指令碼比較用的版本號。支援結束日也用 SUPPORT_END 行確認過。
如果是 RHEL 系列,用 /etc/redhat-release 一行也會顯示相同版本。
cat /etc/redhat-releaseAlmaLinux release 9.8 (Olive Jaguar)核心版本用 uname -r 一行就能輸出。
uname -r5.14.0-687.10.1.el9_8.x86_64uname -aLinux 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 查看輸出。數值與本文相同,是範例值。
🔢 FAQ & 推薦內容
ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。