首頁 > 軟體

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

2020-06-16 17:51:41

今天收到一封報警郵件,內容如下:
------------------------------------

報警內容: 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
這樣這個問題的解決就告一段落了,可見一個很細小的變化經過長年累月的積累就會成為一個明顯的問題,監控中的設定頻率過高反而可能有潛在的問題。

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-10/123957.htm


IT145.com E-mail:sddin#qq.com