欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Linux磁盘满了以及负载过高问题的解决办法

程序员文章站 2022-04-03 17:46:05
1.磁盘满了 如果一台机器磁盘满了,首先我们需要确定其位置,命令为 df(或者df -h) //显示结果 Filesystem 512-blocks Used A...

1.磁盘满了

如果一台机器磁盘满了,首先我们需要确定其位置,命令为

 df(或者df -h)
//显示结果
Filesystem    512-blocks      Used Available Capacity  iused    ifree %iused  Mounted on
/dev/disk0s2   488555536 124047536 363996000    26% 15569940 45499500   25%   /
devfs                361       361         0   100%      626        0  100%   /dev
map -hosts             0         0         0   100%        0        0  100%   /net

找到那一块盘满了以后,使用命令du一级一级的查找,确定最大文件。

    du -h --max-depth=1 | grep 'G' | sort -n

如果是日志文件过大需要删除时候,使用日志切割,保留最新日志。

//指定分割后文件行数
split -l 300 largelog newlog
//指定分割后文件大小
 split -b 10m largelog newlog

2.负载过高

使用uptime命令查看机器负载。

uptime
//输出
up 1 day, 23:14, 2 users, load averages: 1.69 2.21 2.09

平均负载表示1、5、15分钟进程队列中的平均进程数量。一般单核大于3的话负载就算高了。查看linux多少cpu与核的命令如下:

 #查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
#查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

然后使用top命令查看每个进程占用CPU,内存情况。top显示时候使用“M”进程会按内存使用排序,按“P”会按CPU使用排序。

如果没有进程占用大量CPU,内存资源的话,可能就是某个进程阻塞了。使用ps -ef, 看到哪个进程会卡住,然后去/proc/中找到这个进程对应的文件,看是否能正常打开。

找到以后杀死这个进程或者重启机器。

3.can’t lock /etc/passwd;try again later

首先查看是在/etc下否存在lock文件,

$cd /etc  
$ls *.lock  
$ rm -f *.lock //删除文件锁  

没有的话,使用df -i看是否 inode满了,如果是

查找每个文件下的文件数目

for i in ./*; do echo $i; find $i | wc -l |sort -n ; done

找到后删除没用的小文件。

建议去/var/spool/postfix/maildrop去看看。

科普一下df -i与df -h,一个是总共能创建多少文件,一个是总共能创建多大的文件。