Linux下/var/spool/clientmqueue空间不足的解决
生活随笔
收集整理的這篇文章主要介紹了
Linux下/var/spool/clientmqueue空间不足的解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天收到一封報警郵件,內容如下:
------------------------------------
首先到目錄下查看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
這樣這個問題的解決就告一段落了,可見一個很細小的變化經過長年累月的積累就會成為一個明顯的問題,監控中的設置頻率過高反而可能有潛在的問題。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生
------------------------------------
報警內容: Free disk space is less than 15% on volume /var
------------------------------------
報警級別: PROBLEM
------------------------------------
監控項目: Free disk space on /var (percentage):10 %
------------------------------------
報警時間:2015.10.07-09:56:24
首先到目錄下查看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
這樣這個問題的解決就告一段落了,可見一個很細小的變化經過長年累月的積累就會成為一個明顯的問題,監控中的設置頻率過高反而可能有潛在的問題。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生
總結
以上是生活随笔為你收集整理的Linux下/var/spool/clientmqueue空间不足的解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Property #39;sqlSess
- 下一篇: 第一次作业:项目范围管理论文的提纲