Linux下/var/spool/clientmqueue空間不足的解決

jeanron100發表於2015-10-07
今天收到一封報警郵件,內容如下:
------------------------------------

報警內容: Free disk space is less than 15% on volume /var
------------------------------------
報警級別: PROBLEM
------------------------------------
監控專案: Free disk space on /var (percentage)10 %
------------------------------------
報警時間:2015.10.07-09:56:24

這條報警郵件的資訊已經很清楚了,是/var目錄下的空間不足了,我們來看一看是怎麼回事。
首先到目錄下檢視df -h的時候,空間剩餘9%,說明這個空間還在不斷的收縮中。
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.8G  908M  6.5G  13% /
/dev/sda6             7.8G  6.7G  746M  91% /var
/dev/sda5             7.8G  2.0G  5.5G  27% /usr
/dev/sda1             122M   12M  104M  10% /boot
tmpfs                  48G   36K   48G   1% /dev/shm
/dev/shm               48G   36K   48G   1% /tmp
/dev/sda7             497G  391G   81G  83% /home
然後在/var/spool/clientmqueue下發現了大量的檔案,絕大部分的空間消耗都在這兒。
隨便拿出一條來看看到底是什麼內容。發現是一個指令碼在檢查listener的日誌。
# more dfs32Ct1KE012443
Start: 20140402205501
checking listener listener ...OK
checking listener listener_1525 ...OK
checking listener listener_1528 ...OK
checking listener listener_1523 ...OK
checking listener listener_1522 ...OK
End: 20140402205516
進一步進行驗證,拿出最新的5個檔案,檢視檔案內容也是如此。
clientmqueue]# ls -lrt|tail -5
-rw-rw---- 1 oracle smmsp   228 Oct  7 10:02 dft97221Lc010415
-rw-rw---- 1 oracle smmsp   919 Oct  7 10:03 qft97231cW026036
-rw-rw---- 1 oracle smmsp   228 Oct  7 10:03 dft97231cW026036
-rw-rw---- 1 oracle smmsp   919 Oct  7 10:04 qft97241rm007778
-rw-rw---- 1 oracle smmsp   228 Oct  7 10:04 dft97241rm007778
clientmqueue]# more dft97241rm007778
Start: 20151007100401
checking listener listener ...OK
checking listener listener_1525 ...OK
checking listener listener_1528 ...OK
checking listener listener_1523 ...OK
checking listener listener_1522 ...OK
End: 20151007100416
說明基本可以說明是因為檢查listener的指令碼產生了大量的日誌檔案。
因為這種日誌檔案對我們確實沒有太多的用處,可以考慮刪除,當然直接刪除還是會報錯誤的,可以慢慢分批刪除 ls|xargs -n 10 rm
刪除後空間馬上釋放出來了。釋放了近6G的檔案。
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.8G  908M  6.5G  13% /
/dev/sda6             7.8G  1.1G  6.4G  15% /var
/dev/sda5             7.8G  2.0G  5.5G  27% /usr
/dev/sda1             122M   12M  104M  10% /boot
tmpfs                  48G   36K   48G   1% /dev/shm
/dev/shm               48G   36K   48G   1% /tmp
/dev/sda7             497G  391G   81G  83% /home

問題現在解決了,我們來看看問題是怎麼回事,對於crontab 中設定的job如果有輸出內容,這些內容會以mail的形式傳送給對應的cron job使用者,如果這個時候sendmail沒有啟動就會在這個路徑下產生這些日誌檔案。
首先抓取了最新的檔案內容。可以看到檔案生成的頻率很高,幾乎是每分鐘一個檔案。
clientmqueue]# ll
total 64
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:08 dft97281ag005351
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:09 dft97292uQ011260
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:12 dft972C1Xg025752
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:13 dft972D11d025507
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:14 dft972E1IS008404
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:15 dft972F1Oi023669
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:16 dft972G1Xr006590
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:17 dft972H1I8022068
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:08 qft97281ag005351
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:09 qft97292uQ011260
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:12 qft972C1Xg025752
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:13 qft972D11d025507
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:14 qft972E1IS008404
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:15 qft972F1Oi023669
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:16 qft972G1Xr006590
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:17 qft972H1I8022068
檢視crontab -l可以看到,檢查指令碼執行的頻率還是很高的。
2-9,12-29,31-59 * * * * . $HOME/.xxxxprofile;$HOME/dbadmin/scripts/lsnr_check.sh
對於listener的檢查,其實不需要這麼頻繁的監控,可以適當把頻率放慢一些,根據普遍的機器設定還是一個小時2次檢查。比如這樣設定:
9,39 * * * * . $HOME/.xxxxprofile;bash $HOME/dbadmin/scripts/lsnr_check.sh 
日誌檔案清除了,日誌檔案的生成頻率也降低了,但是問題還是指標沒有治本。
對於這些檢查日誌,可以當做一個後臺任務,不需要每次檢查都生成大量的日誌,一種方式就是直接遮蔽日誌,比如設定為下面的形式。
9,39 * * * * . $HOME/.xxxxprofile;bash $HOME/dbadmin/scripts/lsnr_check.sh > /dev/null 2>&1
這樣這個問題的解決就告一段落了,可見一個很細小的變化經過長年累月的積累就會成為一個明顯的問題,監控中的設定頻率過高反而可能有潛在的問題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1813438/,如需轉載,請註明出處,否則將追究法律責任。

相關文章