资源不足是CentOS虚拟机常见的性能瓶颈,主要涉及磁盘空间、内存、CPU三大类。以下是针对性的解决步骤:
磁盘空间不足是最常见的资源问题,解决方法需通过扩容物理磁盘+扩展逻辑卷实现:
df -h命令查看各分区使用率,重点关注根分区(/)或/home等常用分区。若使用率超过80%,需扩容。/dev/sdb,使用fdisk /dev/sdb创建新分区(选择“主分区”、默认起始扇区、结束扇区,将分区类型改为“Linux LVM”(代码8e)),保存退出后重启虚拟机。pvcreate /dev/sdb1将新分区初始化为物理卷。vgextend centos /dev/sdb1将物理卷加入现有卷组(默认卷组名为centos)。lvextend -L +50G /dev/mapper/centos-root将逻辑卷扩展50G(可根据需求调整大小)。xfs_growfs /dev/mapper/centos-root扩容;若使用EXT4,使用resize2fs /dev/mapper/centos-root。mkfs.xfs /dev/sdb1)后挂载到新目录(如/data),或替换原有分区(需备份数据)。内存不足会导致系统频繁使用Swap(虚拟内存),降低性能,解决方法包括增加Swap、调整内存分配、优化应用:
dd if=/dev/zero of=/swapfile bs=4M count=4096创建4G Swap文件(count=4096表示4G,可根据需求调整)。mkswap /swapfile将文件格式化为Swap。swapon /swapfile临时启用。/etc/fstab文件,添加/swapfile swap swap defaults 0 0,重启后自动启用。systemctl list-unit-files --type=service查看运行中的服务,停止无用服务(如systemctl stop httpd)。vm.swappiness控制内存回收倾向(0-100,默认60)。值越低,系统越倾向于保留内存。使用sysctl vm.swappiness=30临时调整,编辑/etc/sysctl.conf永久生效。sync && echo 3 > /proc/sys/vm/drop_caches清理页面缓存(不影响正在运行的程序)。CPU不足会导致进程响应慢,解决方法需调整CPU分配、优化进程调度:
top或htop命令(按P键按CPU排序),找出占用高的进程(如PID 1234占用50% CPU)。nice命令启动低优先级进程(如nice -n 10 ./app),或用renice调整运行中进程优先级(如renice +10 -p 1234)。sysstat(yum install sysstat),使用cpustat -c 5查看CPU用户态/内核态占比,cpustat -p 0查看特定核心利用率。vmstat 1查看上下文切换(cs)、CPU空闲率(id)等指标,若cs过高,需优化应用减少上下文切换。/proc/sys/kernel/sched_migration_cost_ns(进程迁移成本,默认1000000纳秒)和/proc/sys/kernel/sched_autogroup_enabled(自动分组,默认1),减少进程迁移带来的开销。taskset命令将进程绑定到特定CPU核心(如taskset -c 0,1 ./app),减少缓存失效。top、df -h、free -h等命令验证资源使用情况,确保问题解决。通过以上方法,可有效解决CentOS虚拟机资源不足问题,提升系统性能。