大數據“復活”記
787
2025-03-31
GaussDB (DWS) 集群管理系列:日志壓縮與回收相關問題排查
【功能原理介紹】
參考博客CM功能介紹:日志壓縮與回收
【確定功能是否開啟】
參考博客 CM功能介紹:日志壓縮與回收
【參數調整】
確保日志壓縮功能開關已打開并生效
首先參考CM功能介紹:日志壓縮與回收,確保日志壓縮功能開關已打開并生效,確保日志壓縮功能開關已打開并生效,確保日志壓縮功能開關已打開并生效。
參數檢查
參考CM功能介紹:日志壓縮與回收中“配置參數”章節,檢查cm配置。
如果log_max_size = 1024,并且日志所在磁盤的容量超過100GB,則可通過下面命令將該參數調大(注意是4095不是4096!):
# 8.1以及之后版本 gs_guc reload -Z cm -c "log_max_size = 4095" # 8.1之前版本 gs_guc set -Z cmagent -N all -I all -c "log_max_size = 4095" gs_ssh -c "ps ux | grep -v grep | grep cm_agent | awk '{print $2}' | xargs kill -9"
【日志文件壓縮檢查】
確保日志壓縮功能開關已打開并生效
首先參考CM功能介紹:日志壓縮與回收,確保日志壓縮功能開關已打開并生效,確保日志壓縮功能開關已打開并生效,確保日志壓縮功能開關已打開并生效。
檢查日志盤的傾斜率
執行gs_ssh -c "df -h"檢查$GAUSSLOG路徑所在磁盤的使用率是否傾斜。如果有使用率明顯偏高的節點,則登陸并執行后續檢查;否則在任意節點上均可執行后續檢查。
檢查空間較大的目錄
進入$GAUSSLOG目錄,執行du -sh *查看占用磁盤較多的目錄,例如輸出:
說明gs_profile目錄占用空間較大。
檢查gs_profile目錄
如果gs_profile目錄較大,則進入并統計是否存在較多日志文件。
該目錄具有類似下面的結構:
如果日志文件較多,并且日志切分非常頻繁,則可執行下面命令關閉gs_profile下日志的生成:
# plog_merge_age主要用于OBS/IO等相關的性能日志 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "plog_merge_age = 0"
關閉后,手動執行清理即可:
find . -name "*.prf" -o -name "*.prf.gz" | xargs rm -f
檢查pg_audit目錄
如果pg_audit目錄較大以至于磁盤使用率超過80%以上,則聯系華為工程師處理。
檢查om目錄
本小節清理的方法,可增加crontab任務的方式定期清理(一般每月執行一次即可)。
內核8.1.1以及之后的版本,如果出現上面情況,請聯系華為工程師。
檢查om目錄下是否存在較多未壓縮的日志文件,例如(忽略下圖的文件大小):
如果存在上圖中gs_checkperf和gs_local文件較多且未壓縮的情況,則參考下面命令分別將其清理:
# 時間戳從新到舊的方式列出gs_checkperf開頭文件 | 從第二行開始打印 | 獲取文件名 | 刪除 # 清理gs_checkperf*.log和gs_checkperf*.log.gz ls -hlt gs_checkperf*.log | awk 'NR>1{print
# 時間戳從新到舊的方式列出gs_checkperf開頭文件 | 從第二行開始打印 | 獲取文件名 | 刪除 # 清理gs_checkperf*.log和gs_checkperf*.log.gz ls -hlt gs_checkperf*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f ls -hlt gs_checkperf*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f # 清理gs_local*.log和gs_local*.log.gz ls -hlt gs_local*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f ls -hlt gs_local*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f
}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f ls -hlt gs_checkperf*.log.gz | awk 'NR>1{print# 時間戳從新到舊的方式列出gs_checkperf開頭文件 | 從第二行開始打印 | 獲取文件名 | 刪除 # 清理gs_checkperf*.log和gs_checkperf*.log.gz ls -hlt gs_checkperf*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f ls -hlt gs_checkperf*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f # 清理gs_local*.log和gs_local*.log.gz ls -hlt gs_local*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f ls -hlt gs_local*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f
}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f # 清理gs_local*.log和gs_local*.log.gz ls -hlt gs_local*.log | awk 'NR>1{print# 時間戳從新到舊的方式列出gs_checkperf開頭文件 | 從第二行開始打印 | 獲取文件名 | 刪除 # 清理gs_checkperf*.log和gs_checkperf*.log.gz ls -hlt gs_checkperf*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f ls -hlt gs_checkperf*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f # 清理gs_local*.log和gs_local*.log.gz ls -hlt gs_local*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f ls -hlt gs_local*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f
}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f ls -hlt gs_local*.log.gz | awk 'NR>1{print# 時間戳從新到舊的方式列出gs_checkperf開頭文件 | 從第二行開始打印 | 獲取文件名 | 刪除 # 清理gs_checkperf*.log和gs_checkperf*.log.gz ls -hlt gs_checkperf*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f ls -hlt gs_checkperf*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_checkperf/gs_checkperf/g' | xargs rm -f # 清理gs_local*.log和gs_local*.log.gz ls -hlt gs_local*.log | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f ls -hlt gs_local*.log.gz | awk 'NR>1{print $0}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f
}' | sed 's/^.*gs_local/gs_local/g' | xargs rm -f上圖中gs_om日志也有類似情況,可參考清理。
如果snas_cm_cmd.log文件特別大,則可將其清空(不能刪除!不能刪除!不能刪除!):
cat /dev/null > snas_cm_cmd.log
【日志文件數檢查】
進入$GAUSSLOG目錄,使用如下命令統計日志文件數:
find . -name "*.log" -o -name "*.gz" | wc -l
如果統計結果超過20000,請聯系華為工程師。
EI企業智能 Gauss AP 數據倉庫服務 GaussDB(DWS)
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。