Lệnh check CPU Linux: nproc, lscpu và thông tin RAM, ổ đĩa, OS

Môi trường thử nghiệmHọ RHELAlmaLinux 9.8Tài khoản rootKiểm tra ngày 2026-10-29
Lệnh thông tin · thiết lập hệ thốngnproclscpufreedflsblkuname

Trên Linux, bạn kiểm tra số CPU bằng một dòng nproc, còn lscpu cho biết con số đó đếm socket, lõi hay luồng. Khi so sánh nproc, lscpu và /proc/cpuinfo trên một máy chủ AlmaLinux 9, ba lệnh đều in ra cùng một số CPU logic nhưng với tên khác nhau như CPU(s) và processor. RAM, ổ đĩa và phiên bản OS cũng được kiểm tra trên cùng máy chủ bằng free, df, lsblk và uname.

Mẫu CPU, số lõi, dung lượng bộ nhớ và ổ đĩa cùng phiên bản kernel trong các kết quả bên dưới là giá trị ví dụ. Mỗi lệnh hiển thị gì được tóm tắt trước trong bảng.

LệnhNội dung kiểm tra
nprocSố CPU dùng được (lõi logic)
lscpuModel CPU · socket · lõi · luồng
free -hDung lượng RAM tổng · đã dùng · còn trống
df -hDung lượng đã dùng theo từng ổ đĩa (hệ thống tệp)
lsblkCấu trúc ổ đĩa và phân vùng
cat /etc/os-releaseTên và phiên bản bản phân phối
uname -rPhiên bản kernel

1️⃣ Check CPU Linux: nproc và lscpu

CPU(s) trong lscpu là số CPU logic mà hệ điều hành sử dụng, còn số lõi vật lý được đọc riêng ở dòng Core(s) per socket. CPU(s) được tính bằng số socket × số lõi mỗi socket × số luồng mỗi lõi.

Nếu bạn chỉ cần số CPU logic, một dòng nproc là đủ.

nproc
4

Theo tài liệu hướng dẫn của nproc, giá trị này là số đơn vị xử lý mà tiến trình hiện tại được dùng, nên trong môi trường giới hạn việc dùng CPU, nó có thể nhỏ hơn số bộ xử lý đang trực tuyến.

Phần đầu kết quả lscpu cho thấy con số 4 này hình thành thế nào.

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

Nhân Socket(s) 1, Core(s) per socket 2 và Thread(s) per core 2 sẽ được 4 của CPU(s). 0-3 trong On-line CPU(s) list là số thứ tự CPU logic do hệ điều hành gán.

vCPU trong bảng giá AWS EC2 cũng là đơn vị CPU logic này. Theo tài liệu chính thức, EC2 tính một luồng của một lõi CPU là một vCPU. Phiên bản có 2 lõi và 2 luồng mỗi lõi có 4 vCPU, cùng cấu trúc với kết quả lscpu ở trên.

Tùy chọn -e in ra dạng bảng cho biết bốn CPU logic thuộc lõi nào.

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 và 2 dùng chung CORE 0, CPU 1 và 3 dùng chung CORE 1. Cấu trúc hai CPU logic gắn vào một lõi chính là siêu phân luồng (SMT). Trong sơ đồ bên dưới, bạn có thể bấm các nút lệnh để so sánh ba lệnh gọi cấu trúc này bằng tên gì.

🧭 CPU(s) 4 hình thành thế nào
Sơ đồ giải thích
🔍 Lệnh
$ nproclscpucat /proc/cpuinfo
Socket 0Socket(s): 1physical id : 0
Lõi 0Core(s) per socket: 2core id : 0
CPU 0processor : 0
CPU 2processor : 2
Thread(s) per core: 2cpu cores : 2
Lõi 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 đếm các CPU logic mà tiến trình hiện tại được dùng và in ra 4. Lệnh này không chia theo socket và lõi.
lscpu in cùng cấu trúc đó, chia thành Socket(s) 1, Core(s) per socket 2 và Thread(s) per core 2, và tích của ba số, 4, là CPU(s).
/proc/cpuinfo đánh số processor cho từng CPU logic và in ra bốn khối, ghi socket là physical id và lõi là core id. siblings 4 là số CPU logic trong cùng socket, còn cpu cores 2 là số lõi vật lý.

2️⃣ Xem thông tin CPU Linux: /proc/cpuinfo

Nguồn của các con số mà lscpu tóm tắt là tệp /proc/cpuinfo. Kernel ghi mỗi CPU logic một khối, nên trên máy chủ có CPU(s) là 4, cùng một dạng khối lặp lại bốn lần liên tiếp.

Lệnh cat in toàn bộ tệp sẽ thấy đủ bốn khối, còn nếu cắt bằng head như bên dưới thì chỉ thấy khối đầu tiên.

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:

Đây là mười trường bạn sẽ xem thường xuyên nhất.

  • 🔢 processor
  • ↳ Số thứ tự CPU logic (bắt đầu từ 0)
  • 🏷️ model name
  • ↳ Tên mẫu CPU
  • 🧩 physical id
  • ↳ Số socket chứa CPU này
  • 👥 siblings
  • ↳ Số CPU logic trong cùng socket (gấp 2 lần cpu cores nếu có siêu phân luồng)
  • 🧱 cpu cores
  • ↳ Số lõi vật lý trong cùng socket
  • 🆔 core id
  • ↳ Số lõi chứa CPU logic này
  • ⏱️ cpu MHz
  • ↳ Xung nhịp hiện tại (MHz)
  • 🗄️ cache size
  • ↳ Dung lượng bộ nhớ đệm (cùng giá trị với L3 cache trong lscpu)
  • 🚩 flags
  • ↳ Tính năng và tập lệnh mà CPU hỗ trợ (ht, avx2, aes, v.v.)
  • 📐 address sizes
  • ↳ Số bit của địa chỉ vật lý và địa chỉ ảo

Đếm các dòng processor sẽ ra số CPU, còn so sánh siblings với cpu cores sẽ biết siêu phân luồng có bật hay không.

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

Có 4 dòng processor, siblings là 4 và cpu cores là 2, nên mỗi lõi đang chạy hai luồng. Điều này cũng đã được xác nhận bằng giá trị kernel ghi trong /sys.

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

Theo tài liệu kernel, 1 nghĩa là SMT đang bật và các CPU anh em đang trực tuyến. Nếu tắt thì hiện 0.

Nếu bạn chỉ cần tên mẫu CPU, hãy gom các dòng model name.

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

Số 4 ở đầu nghĩa là cùng một dòng xuất hiện bốn lần, nên trong một dòng bạn thấy cả tên mẫu lẫn số CPU logic.

3️⃣ Kiểm tra dung lượng RAM Linux: free và /proc/meminfo

Dung lượng RAM được kiểm tra bằng lệnh free. Thêm tùy chọn -h thì giá trị hiển thị theo đơn vị Gi và 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

Bộ nhớ còn dùng được đọc ở cột available. Dù cột free nhỏ, Linux vẫn lấp bộ nhớ thừa bằng bộ đệm tệp (buff/cache) rồi giải phóng ngay khi chương trình cần.

Như kết quả ở trên, cột free có thể là 775Mi trong khi available là 3.3Gi. Theo tài liệu hướng dẫn của free, available là ước tính bộ nhớ có thể dùng để khởi động chương trình mới mà không cần swap.

Khi dùng để tính toán trong script, tùy chọn -m là phù hợp. Kết quả là số nguyên theo MiB.

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

Nguồn mà free đọc là /proc/meminfo. Năm dòng đầu tương ứng với total, free, available và buff/cache của free, đơn vị là kB.

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

Chia MemTotal 8055808 kB cho 1024 sẽ được cùng giá trị với 7867 trong free -m.

4️⃣ Kiểm tra dung lượng ổ đĩa Linux: df và lsblk

Lệnh df in dung lượng và mức sử dụng của các hệ thống tệp đã gắn kết, nên không phù hợp để xem ổ đĩa chưa gắn kết hay cấu trúc phân vùng. Khi đó hãy dùng 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 là tùy chọn loại khỏi danh sách các hệ thống tệp loop mà gói snap gắn kết ở chế độ chỉ đọc. Hệ thống tệp gốc (/) dùng 10G trên 79G, tức 13%, còn devtmpfs và tmpfs là hệ thống tệp tạo trên bộ nhớ nên được loại khỏi phép tính dung lượng ổ đĩa.

Muốn xem cả loại hệ thống tệp thì thêm -T; nếu chỉ định một đường dẫn, chỉ hiện một dòng của hệ thống tệp chứa đường dẫn đó.

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

Thư mục gốc dùng xfs. Ổ đĩa và phân vùng được chia thế nào thì xem bằng lsblk. Thêm -e 7 sẽ loại các thiết bị loop như snap, chỉ còn lại ổ đĩa thật.

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 /

Một ổ đĩa nvme0n1 được chia thành bốn phân vùng, trong đó nvme0n1p4 được gắn kết vào thư mục gốc, khớp với dòng 79G của df.

5️⃣ Kiểm tra phiên bản OS và kernel Linux: os-release và uname

Đọc xong các con số về CPU, bộ nhớ và ổ đĩa, hãy kiểm tra luôn máy chủ đang chạy trên bản phân phối và kernel nào. Tên bản phân phối, phiên bản và ngày hết hỗ trợ đều nằm trong một tệp là /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

Dòng PRETTY_NAME là tên cho người đọc, còn VERSION_ID là số phiên bản mà script dùng để so sánh. Ngày hết hỗ trợ cũng được kiểm tra qua dòng SUPPORT_END.

Với hệ thống họ RHEL, /etc/redhat-release cũng cho ra cùng phiên bản trong một dòng.

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

Phiên bản kernel: uname -r in ra trong một dòng.

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

Thêm -a thì tên kernel, tên máy chủ, phiên bản kernel, ngày build và kiến trúc hiện trên một dòng. Trong đó x86_64 là kiến trúc CPU, cùng giá trị với dòng Architecture của lscpu.

🔲 Trình mô phỏng check CPU Linux

Trong trình mô phỏng bên dưới, bạn có thể tự gõ nproc, lscpu, free, df, lsblk và uname để xem kết quả. Các giá trị là giá trị ví dụ giống trong bài.

Trình mô phỏng check CPU LinuxAlmaLinux 9.8
[root@server work]#
Dùng phím ↑↓ trên bàn phím để gọi lại các lệnh đã gõ trước đó.

🔢 FAQ & nội dung đề xuất

Có thể. Theo tài liệu hướng dẫn của nproc, nproc in ra số đơn vị xử lý mà tiến trình hiện tại được dùng, nên trong môi trường giới hạn các CPU mà tiến trình được dùng, con số này nhỏ hơn số bộ xử lý đang trực tuyến. Tổng số bộ xử lý đã cài được kiểm tra bằng nproc [--all]. Trên máy chủ thử nghiệm, hai giá trị bằng nhau.

Cột free là bộ nhớ trống chưa được cấp cho bất cứ thứ gì. Theo tài liệu hướng dẫn của free, available là ước tính bộ nhớ có thể dùng để khởi động chương trình mới mà không cần swap. Giá trị này được tính bằng cách cộng bộ đệm trang có thể giải phóng và bộ nhớ slab có thể thu hồi, nên khi đánh giá bộ nhớ còn trống, hãy xem available.

Nếu Thread(s) per core trong lscpu là 2, mỗi lõi đang chạy hai CPU logic. Trong /proc/cpuinfo, siblings gấp đôi cpu cores, và giá trị của tệp /sys/devices/system/cpu/smt/active là 1. Cả ba đều cho giá trị bật trên cùng máy chủ.

ℹ️ Thông báo tiếp thị liên kết
Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Prove your humanity: 10   +   5   =