在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故障排查。如果问题依然存在,可能需要进一步检查硬件状态或联系系统管理员进行深入分析。