最常見的問題,就是頁面vm存在bug。當頁面被大量訪問時,velocity log里每次都打印出vm的錯誤日志。假定每條日志為200bytes,每秒的訪問量為30,一秒的日志量就為200*30=6,000bytes。約為 5.86K。以這樣的速度計算,一分鐘就會達到351.6K。隨著時間的推移,日志量是相當可怕的。如果vm上有多處錯誤,日志量將更加恐怖。
模版的bug是功能問題,本身是不會影響系統性能的。但是當log達到一定量之后,比如單個文件1G,影響的效果就比較明顯了。為了這么大的文件再繼續往里寫,是會消耗服務器資源的。
怎么辦?
方法有兩個:第一、屏蔽velocity log;第二、不屏蔽,利用技術手段定時刪除velocity log。下面分別介紹一下。
一、屏蔽velocity log
最干脆的辦法。屏蔽之后該log就不再打印了,但需要系統開發人員的配合。
二、不屏蔽,利用crontab定時刪除velocity log
第一種方法固然很好,但需要外部人員配合,而且如果該vm的bug是由于壓力引起,不打印日志就沒辦法看到錯誤了。
crontab是一個很方便的在linux上定時循環執行某個任務的程序。利用它,可以定時將velocity log置空,將其控制在一定大小范圍內。
先寫一個置空log的shell腳本,然后再通過crontab調用,每隔5分鐘執行一次。示例腳本如下:
***********************************************
cleanLog.sh –放置在/home/admin目錄下
echo “” > Path/appName-velocity.log — Path為該應用的log路徑,appName為該應用的應用名
***********************************************
crontab –admin的crontab
*/5 * * * * sh /home/admin/cleanLog.sh –實現每5分鐘執行一次cleanLog.sh腳本
***********************************************
這兩種方式都能有效的減小大量/超大量log對性能測試結果的影響。當然也各有利弊,請酌情使用。
除了vm的bug會大量記錄錯誤日志外,apache的訪問日志有時候也是非常非?植赖。如果你想減小影響,不妨也試試上述兩種方法。
文章來源于領測軟件測試網 http://www.kjueaiud.com/