คำสั่งตรวจสอบ CPU ของ Linux: nproc, lscpu และข้อมูล RAM·ดิสก์·OS

สภาพแวดล้อมทดสอบตระกูล RHELAlmaLinux 9.8บัญชี rootตรวจสอบเมื่อ 2026-10-29

ใน Linux คุณตรวจจำนวน CPU ได้ด้วย nproc บรรทัดเดียว และดูได้ด้วย lscpu ว่าตัวเลขนั้นนับซ็อกเก็ต คอร์ หรือเธรด เมื่อเทียบ nproc, lscpu และ /proc/cpuinfo บนเซิร์ฟเวอร์ AlmaLinux 9 ทั้งสามคำสั่งแสดงจำนวน CPU เชิงตรรกะเท่ากันแต่ใช้ชื่อต่างกัน เช่น CPU(s) และ processor ส่วน RAM ดิสก์ และเวอร์ชัน OS ก็ตรวจบนเซิร์ฟเวอร์เดียวกันด้วย free, df, lsblk และ uname

รุ่น CPU จำนวนคอร์ ขนาดหน่วยความจำและดิสก์ และเวอร์ชันเคอร์เนลในผลลัพธ์ด้านล่างเป็นค่าตัวอย่าง สิ่งที่แต่ละคำสั่งแสดงสรุปไว้ในตารางก่อน

คำสั่งสิ่งที่ตรวจได้
nprocจำนวน CPU ที่ใช้ได้ (คอร์เชิงตรรกะ)
lscpuรุ่น CPU·ซ็อกเก็ต·คอร์·เธรด
free -hRAM ทั้งหมด·ที่ใช้·ที่ว่าง
df -hการใช้งานแยกตามดิสก์ (ระบบไฟล์)
lsblkโครงสร้างดิสก์และพาร์ทิชัน
cat /etc/os-releaseชื่อและเวอร์ชันของดิสทริบิวชัน
uname -rเวอร์ชันเคอร์เนล

1️⃣ ตรวจสอบ CPU ของ Linux: nproc และ lscpu

CPU(s) ใน lscpu คือจำนวน 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 มาคูณกันจะได้ 4 ของ CPU(s) ส่วน 0-3 ใน On-line CPU(s) list คือหมายเลข CPU เชิงตรรกะที่ระบบปฏิบัติการกำหนด

vCPU ในตารางราคาของ AWS EC2 ก็ใช้หน่วย CPU เชิงตรรกะนี้ ตามเอกสารทางการ EC2 นับหนึ่งเธรดของคอร์ CPU เป็นหนึ่ง vCPU อินสแตนซ์ที่มี 2 คอร์และ 2 เธรดต่อคอร์จึงมี 4 vCPU ซึ่งเป็นโครงสร้างเดียวกับผลลัพธ์ lscpu ด้านบน

ตัวเลือก -e แสดงเป็นตารางว่า CPU เชิงตรรกะทั้งสี่อยู่ในคอร์ใด

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 ใส่หมายเลข processor ให้ CPU เชิงตรรกะแต่ละตัวแล้วแสดงเป็นสี่ชุด โดยเขียนซ็อกเก็ตเป็น physical id และคอร์เป็น core id ส่วน siblings 4 คือจำนวน CPU เชิงตรรกะในซ็อกเก็ตเดียวกัน และ cpu cores 2 คือจำนวนคอร์จริง

2️⃣ ดูข้อมูล CPU ของ Linux: /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 เชิงตรรกะในซ็อกเก็ตเดียวกัน (ถ้าเปิดไฮเปอร์เธรดดิงจะเป็น 2 เท่าของ cpu cores)
  • 🧱 cpu cores
  • ↳ จำนวนคอร์จริงในซ็อกเก็ตเดียวกัน
  • 🆔 core id
  • ↳ หมายเลขคอร์ที่ CPU เชิงตรรกะนี้อยู่
  • ⏱️ cpu MHz
  • ↳ ความเร็วสัญญาณนาฬิกาตอนนี้ (MHz)
  • 🗄️ cache size
  • ↳ ขนาดแคช (ค่าเดียวกับ L3 cache ใน lscpu)
  • 🚩 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️⃣ ตรวจขนาด RAM ของ Linux: 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 คือค่าประมาณของหน่วยความจำที่ใช้เริ่มโปรแกรมใหม่ได้โดยไม่ต้องใช้สวอป

ถ้าจะใช้คำนวณในสคริปต์ ตัวเลือก -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 ห้าบรรทัดแรกตรงกับ total, free, available และ buff/cache ของ free และใช้หน่วย 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 จะได้ค่าเดียวกับ 7867 ใน free -m

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 คือตัวเลือกที่เอาระบบไฟล์ loop ที่แพ็กเกจ snap เมานต์แบบอ่านอย่างเดียวออกจากรายการ ระบบไฟล์ราก (/) ใช้ 10G จาก 79G หรือ 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 แล้วอุปกรณ์ loop อย่าง snap จะหายไป เหลือแต่ดิสก์จริง

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 ในนั้นเมานต์อยู่ที่ราก คู่กับบรรทัด 79G ของ df

5️⃣ ตรวจเวอร์ชัน OS และเคอร์เนลของ Linux: 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 ซึ่งเป็นค่าเดียวกับบรรทัด Architecture ของ lscpu

🔲 ซิมูเลเตอร์ตรวจสอบ CPU ของ Linux

ในซิมูเลเตอร์ด้านล่าง คุณพิมพ์ nproc, lscpu, free, df, lsblk และ uname เองแล้วดูผลลัพธ์ได้ ค่าเป็นค่าตัวอย่างเดียวกับในเนื้อหา

ซิมูเลเตอร์ตรวจสอบ CPU ของ LinuxAlmaLinux 9.8
[root@server work]#
ใช้ปุ่ม ↑↓ บนแป้นพิมพ์เพื่อเรียกคำสั่งที่พิมพ์ไว้ก่อนหน้ากลับมา

🔢 FAQ & เนื้อหาแนะนำ

ได้ ตามคู่มือของ nproc คำสั่ง nproc แสดงจำนวนหน่วยประมวลผลที่โปรเซสปัจจุบันใช้ได้ ในสภาพแวดล้อมที่จำกัด CPU ที่โปรเซสใช้ได้ ค่าจึงน้อยกว่าจำนวนโปรเซสเซอร์ที่ออนไลน์อยู่ จำนวนโปรเซสเซอร์ที่ติดตั้งทั้งหมดตรวจได้ด้วย nproc [--all] บนเซิร์ฟเวอร์ที่ทดสอบ สองค่านี้ออกมาเท่ากัน

คอลัมน์ free คือหน่วยความจำว่างที่ยังไม่ถูกจัดสรรให้อะไรเลย ส่วน available ตามคู่มือของ free คือค่าประมาณของหน่วยความจำที่ใช้เริ่มโปรแกรมใหม่ได้โดยไม่ต้องใช้สวอป คำนวณจากการรวมแคชเพจที่คืนได้และหน่วยความจำ slab ที่เรียกคืนได้ ดังนั้นเวลาประเมินหน่วยความจำที่เหลือให้ดู available

ถ้า Thread(s) per core ใน lscpu เป็น 2 แสดงว่าแต่ละคอร์เปิด CPU เชิงตรรกะสองตัว ใน /proc/cpuinfo ค่า siblings จะเป็นสองเท่าของ cpu cores และค่าในไฟล์ /sys/devices/system/cpu/smt/active เป็น 1 ทั้งสามอย่างแสดงค่าที่เปิดอยู่บนเซิร์ฟเวอร์เดียวกัน

ℹ️ ประกาศเรื่องลิงก์แอฟฟิลิเอต
เนื้อหาของเว็บไซต์นี้มีลิงก์แอฟฟิลิเอต หากผู้เข้าชมซื้อสินค้าหรือบริการผ่านลิงก์เหล่านี้ เว็บไซต์นี้จะได้รับค่าคอมมิชชันจากผู้ขาย ในกระบวนการนี้ ราคาที่ผู้ซื้อจ่าย(ราคาจะลดลงเมื่อมีโปรโมชัน↓)จะไม่สูงขึ้นแต่อย่างใด ราคา ส่วนลด และข้อมูลสต็อกที่แสดงเป็นข้อมูล ณ เวลาที่เขียนและอาจต่างจากความเป็นจริง โปรดตรวจสอบกับผู้ขายอีกครั้งก่อนซื้อ การเลือกและการประเมินสินค้าเขียนตามเกณฑ์ของเราเอง และการได้รับค่าคอมมิชชันหรือไม่ไม่มีผลต่อลำดับการแนะนำหรือเนื้อหาการประเมิน

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

Prove your humanity: 6   +   1   =