硬體(Hardware)
- 硬體硬體UbuntuWindowsCPURAM磁碟
伺服器變慢,第一件事就是看 CPU、記憶體、磁碟哪個先滿。這頁按 Ubuntu 和 Windows 分兩區,收查硬體狀態的指令:CPU 使用率、RAM、磁碟用量與規格,Ubuntu 區另外有磁碟分割與掛載的操作。指令都是可以直接貼的,多數附輸出範例,方便對照判讀。
Ubuntu
CPU 使用率
top -bn1 | head -20
top -bn1 以 batch 模式跑一次並輸出;head -20 只取前 20 行,方便腳本或速查。
mpstat 1 1
mpstat(需安裝 sysstat)每秒取樣一次、共 1 次,輸出整體與各 CPU 使用率。
輸出範例(top 的 CPU 行):
%Cpu(s): 2.3 us, 1.0 sy, 0.0 ni, 96.5 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
us 使用者、sy 系統、id 閒置;id 高表示 CPU 負載低。
記憶體(RAM)
free -h
-h 以人類可讀單位(GiB、MiB)顯示;列出 total、used、free、shared、buff/cache、available。
cat /proc/meminfo | head -10
讀取核心提供的記憶體資訊,可看到 MemTotal、MemFree、Buffers、Cached 等細項。
輸出範例(free -h):
total used free shared buff/cache available
Mem: 7.7Gi 2.1Gi 3.2Gi 100Mi 2.4Gi 5.2Gi
Swap: 2.0Gi 0.0Gi 2.0Gi
available 才是實際可給新程式用的記憶體(含可回收的 cache)。
磁碟使用量
df -h
-h 以人類可讀單位(G、M)顯示每個掛載點的總量、已用、可用、使用率與掛載路徑。
df -h /
只顯示根目錄所在磁碟,適合腳本判斷根碟是否快滿。
輸出範例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 45G 50G 48% /
tmpfs 3.9G 1.2M 3.9G 1% /dev/shm
Avail 是未保留給 root 的可用空間;Use% 為使用率。
硬體規格
Linux
lscpu
顯示架構、型號、核心數、執行緒數、快取、頻率等。
cat /proc/cpuinfo | grep -E "model name|cores|siblings"
只取型號與核心相關欄位;model name 可能重複(每邏輯核心一行),看一行即可。
輸出範例(lscpu 節錄):
Architecture: x86_64
Model name: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
CPU(s): 8
Thread(s) per core: 1
Core(s) per socket: 8
磁碟分割與掛載
Disk Flow
# 1. 查看狀態
sudo lsblk
sudo parted /dev/sda print
# 2. 分割(parted)
sudo parted /dev/sda mklabel gpt
sudo parted /dev/sda mkpart primary 0% 35%
sudo parted /dev/sda mkpart primary 35% 85%
sudo parted /dev/sda mkpart primary 85% 95%
sudo parted /dev/sda mkpart primary 95% 100%
sudo partprobe /dev/sda
lsblk | grep sda
# 3. 格式化 ext4
sudo mkfs.ext4 -L <label1> /dev/sda1
sudo mkfs.ext4 -L <label2> /dev/sda2
sudo mkfs.ext4 -L <label3> /dev/sda3
sudo mkfs.ext4 -L <label4> /dev/sda4
# 4. 掛載點
sudo mkdir -p <mount_base>/{<mount1>,<mount2>,<mount3>,<mount4>}
# 5. UUID
sudo blkid /dev/sda1
# ... sda2, sda3, sda4
# 6. /etc/fstab(UUID 掛載,ext4 defaults,noatime 0 2)
sudo vi /etc/fstab
sudo systemctl daemon-reload
# 7. 掛載並檢查
sudo mount -a
df -h | grep /data/
lsblk
Disk
直接格式化整個硬碟
sudo mkfs.ext4 /dev/[disk-name]
建立掛載點 / 掛載 / 取消掛載
sudo mkdir <mount_point>
sudo mount /dev/<disk> <mount_point>
sudo umount <mount_point>
sudo umount <mount_base>/*
編輯 fstab
sudo cp /etc/fstab /etc/fstab.backup
sudo vi /etc/fstab
GPU
sudo lshw -c display
腳本:產生 fstab 條目
#!/bin/bash
declare -A mounts=(
["/dev/sda1"]="<mount_base>/<mount1>"
["/dev/sda2"]="<mount_base>/<mount2>"
["/dev/sda3"]="<mount_base>/<mount3>"
["/dev/sda4"]="<mount_base>/<mount4>"
)
echo "# 資料碟掛載配置"
for device in "${!mounts[@]}"; do
uuid=$(sudo blkid -s UUID -o value "$device")
if [ -n "$uuid" ]; then
echo "UUID=$uuid ${mounts[$device]} ext4 defaults,noatime 0 2"
fi
done
Windows
CPU 使用率
Get-Counter '\Processor(_Total)\% Processor Time' -SampleInterval 1 -MaxSamples 1
取「整體處理器時間百分比」一次;數值 0–100,愈高表示 CPU 愈忙。
Get-CimInstance Win32_Processor | Select-Object LoadPercentage
LoadPercentage 為當下 CPU 負載百分比,不需取樣間隔。
輸出範例:
Timestamp CounterSamples
--------- --------------
3/12/2026 10:00:00 AM \\<hostname>\processor(_total)\% processor time : <value>
記憶體(RAM)
Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory | ForEach-Object { [PSCustomObject]@{ TotalMB = [math]::Round($_.TotalVisibleMemorySize/1024,2); FreeMB = [math]::Round($_.FreePhysicalMemory/1024,2) } }
TotalVisibleMemorySize、FreePhysicalMemory 單位為 KB,除以 1024 得到 MB。
systeminfo | findstr /C:"Memory"
用系統內建 systeminfo 過濾記憶體相關行,不需 PowerShell 模組。
輸出範例(systeminfo):
Total Physical Memory: 16,384 MB
Available Physical Memory: 8,192 MB
輸出範例(Get-CimInstance):
TotalMB FreeMB
------- ------
16384 8192
磁碟使用量
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{N='Used(GB)';E={[math]::Round($_.Used/1GB,2)}}, @{N='Free(GB)';E={[math]::Round($_.Free/1GB,2)}}
列出本機磁碟(C、D…)的已用與可用空間,單位為 GB。
Get-Volume | Where-Object { $_.DriveLetter } | Select-Object DriveLetter, FileSystemLabel, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}}, @{N='FreeGB';E={[math]::Round($_.SizeRemaining/1GB,2)}}
以磁碟區為單位,顯示代號、標籤、總容量與剩餘空間。
輸出範例:
Name Used(GB) Free(GB)
---- --------- --------
C 120.5 80.2
D 200.0 150.3
硬體規格
Windows
Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed
Name 為型號,NumberOfCores 實體核心數,NumberOfLogicalProcessors 邏輯處理器數,MaxClockSpeed 最大頻率(MHz)。
Get-CimInstance Win32_Processor | Format-List Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed
以清單格式顯示,方便複製型號。
輸出範例:
Name : Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
NumberOfCores : 8
NumberOfLogicalProcessors : 8
MaxClockSpeed : 3600