Linux磁碟滿了以及負載過高解決辦法
阿新 • • 發佈:2019-02-11
原文地址:http://blog.csdn.net/zheshijieyouwo/article/details/76944845
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,一個是總共能建立多少檔案,一個是總共能建立多大的檔案。