1. 程式人生 > >Linux磁碟滿了以及負載過高解決辦法

Linux磁碟滿了以及負載過高解決辦法

原文地址: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

  1. 首先檢視是在/etc下否存在lock檔案,
$cd /etc  
$ls *.lock  
$ rm -f *.lock //刪除檔案鎖  
  1. 沒有的話,使用df -i看是否 inode滿了,如果是 
    查詢每個檔案下的檔案數目
for i in ./*; do echo $i; find $i | wc -l |sort -n ; done

找到後刪除沒用的小檔案。 
建議去/var/spool/postfix/maildrop去看看。

科普一下df -i與df -h,一個是總共能建立多少檔案,一個是總共能建立多大的檔案。