在CentOS系統中,Swap(交換分區)故障排查可以通過以下步驟進行:
free -h
命令查看當前Swap分區使用情況,包括總大小、已使用、空閑、緩存和可用內存等信息。swapon --show
命令查看所有啟用的Swap分區及其詳細信息。#!/bin/bash
for DIR in $(find /proc/ -maxdepth 1 -type d | egrep "/proc/[0-9]"); do
PID=$(echo $DIR | cut -d / -f 3)
PROGNAME=$(ps -p $PID -o comm --no-headers)
for SWAP in $(grep Swap $DIR/smaps 2>/dev/null | awk '{print $2}'); do
let SUM=$SUM+$SWAP
done
done
echo "PID\tPID - Swap used: $SUM"
echo "Overall swap used: $SUM"
將上述腳本保存為 check_swap.sh
,然后用 sudo ./check_swap.sh
執行即可查看所有進程的Swap使用情況。
cat /proc/sys/vm/swappiness
根據系統內存大小和業務需求,可以調整Swappiness值。例如,將Swappiness值設置為10:
sysctl vm.swappiness=10
要使設置永久生效,需要修改 /etc/sysctl.conf
文件,添加以下內容:
vm.swappiness = 10
dd if=/dev/zero of=/swapfile bs=1M count=16384
將文件設置為分區文件:
mkswap /swapfile
修改swap文件權限:
chmod 600 /swapfile
啟用swap分區:
swapon /swapfile
設置開機時自啟用swap分區:
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
journalctl
命令查看系統日志。ps
命令查看進程狀態。df
命令檢查磁盤空間使用情況。netstat
或 ss
命令檢查網絡連接和監聽端口。systemctl
命令檢查系統服務的狀態。通過以上步驟,可以有效地進行CentOS系統的Swap故障排查。如果問題依然存在,可能需要進一步檢查硬件狀態或聯系系統管理員進行深入分析。