คำสั่งตรวจสอบ CPU ของ Linux: nproc, lscpu และข้อมูล RAM·ดิสก์·OS
ใน 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 -h | RAM ทั้งหมด·ที่ใช้·ที่ว่าง |
| df -h | การใช้งานแยกตามดิสก์ (ระบบไฟล์) |
| lsblk | โครงสร้างดิสก์และพาร์ทิชัน |
| cat /etc/os-release | ชื่อและเวอร์ชันของดิสทริบิวชัน |
| uname -r | เวอร์ชันเคอร์เนล |
1️⃣ ตรวจสอบ CPU ของ Linux: nproc และ lscpu
CPU(s) ใน lscpu คือจำนวน 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): 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 -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️⃣ ดูข้อมูล CPU ของ Linux: /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 : 4มีบรรทัด processor 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️⃣ ตรวจขนาด 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/meminfoMemTotal: 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 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 คือตัวเลือกที่เอาระบบไฟล์ 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 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 ในนั้นเมานต์อยู่ที่ราก คู่กับบรรทัด 79G ของ df
5️⃣ ตรวจเวอร์ชัน OS และเคอร์เนลของ Linux: 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-01บรรทัด PRETTY_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 ซึ่งเป็นค่าเดียวกับบรรทัด Architecture ของ lscpu
🔲 ซิมูเลเตอร์ตรวจสอบ CPU ของ Linux
ในซิมูเลเตอร์ด้านล่าง คุณพิมพ์ nproc, lscpu, free, df, lsblk และ uname เองแล้วดูผลลัพธ์ได้ ค่าเป็นค่าตัวอย่างเดียวกับในเนื้อหา
🔢 FAQ & เนื้อหาแนะนำ
Linux · ข้อมูลระบบ
คำสั่ง uptime ของ Linux
คำสั่งที่ดูเวลาทำงานของเซิร์ฟเวอร์และโหลดเฉลี่ย 1, 5 และ 15 นาทีได้ในบรรทัดเดียว
Linux · โหลด
Load Average ของ Linux คืออะไร?
วิธีอ่านค่าโหลดเฉลี่ย 1, 5 และ 15 นาทีที่แสดงใน top และ uptime โดยเทียบกับจำนวนคอร์
Linux · หน่วยความจำ
ตั้งค่าหน่วยความจำสวอป
สองวิธีทำพื้นที่ดิสก์ให้เป็นหน่วยความจำสวอปเผื่อ RAM ไม่พอ
ℹ️ ประกาศเรื่องลิงก์แอฟฟิลิเอต
เนื้อหาของเว็บไซต์นี้มีลิงก์แอฟฟิลิเอต หากผู้เข้าชมซื้อสินค้าหรือบริการผ่านลิงก์เหล่านี้ เว็บไซต์นี้จะได้รับค่าคอมมิชชันจากผู้ขาย ในกระบวนการนี้ ราคาที่ผู้ซื้อจ่าย(ราคาจะลดลงเมื่อมีโปรโมชัน↓)จะไม่สูงขึ้นแต่อย่างใด ราคา ส่วนลด และข้อมูลสต็อกที่แสดงเป็นข้อมูล ณ เวลาที่เขียนและอาจต่างจากความเป็นจริง โปรดตรวจสอบกับผู้ขายอีกครั้งก่อนซื้อ การเลือกและการประเมินสินค้าเขียนตามเกณฑ์ของเราเอง และการได้รับค่าคอมมิชชันหรือไม่ไม่มีผลต่อลำดับการแนะนำหรือเนื้อหาการประเมิน