1. 程式人生 > >數據庫基準測試中應該避免的錯誤

數據庫基準測試中應該避免的錯誤

區域 增長 長時間 方便 重啟 速度 性能 方法 測試數據

基準測試可以說是唯一方便有效的、可以學習系統在給定工作負載下會發生什麽的方法。可見基準測試的重要性,在設計基準測試前,我們要了解一下基準測試的常見錯誤,防止自己在測試中犯這些錯誤。

數據庫基準測試中常見錯誤:

  • 使用真實數據的子集而不是全集:例如真實情況下,應用需要處理100G的數據,然而在測試時,只有1G數據;或者只使用當前數據進行測試,卻希望模擬未來業務大幅增長後的情況。
  • 使用錯誤的數據分布:例如使用均勻分布的數據測試,而系統真實數據有很多熱點區域(隨機生成的測試數據通常無法模擬真實的數據分布)
  • 使用不真實的分布參數:例如假定所有用戶的個人信息都會被平均地讀取。
  • 在多用戶場景下,只做單用戶測試。
  • 在單服務器上測試分布式應用。
  • 與真實用戶行為不匹配。例如Web頁面中的“思考時間”。真實用戶在請求到一個頁面後,會閱讀一段時間,而不是不停頓的一個接一個點擊相關鏈接。
  • 反復執行同一個查詢。真實的查詢都是不盡相同的,這可能會導致緩存命中率降低。而反復執行同一個查詢在某種程度上,會全部或者部分緩存結果。
  • 沒有檢查錯誤:如果測試的結果無法得到合理的解釋,比如一個本應很慢的查詢突然變快了,就應該檢查是否有錯誤產生。否則可能只是測試了MySQL檢測語法錯誤的速度了。基準測試完成後,一定要檢查一下錯誤日誌,這應該時基本要求。
  • 忽略了系統預熱(warm up)的過程。例如系統重啟後馬上進行測試。有時候需要了解系統重啟需要多長時間才能達到正常的性能容量,要特別留意預熱的時長。反過來說,如果要想分析正常的性能,需要註意,若基準測試在重啟後馬上啟動,則緩存時冷的,還沒有數據,這時即使測試的壓力相同,得到的結果也和緩存已經裝滿數據時時不同的。
  • 使用默認的服務器配置
  • 測試時間太短。基準測試需要持續一段時間。

數據庫基準測試中應該避免的錯誤