資料庫效能基準的5個問題

2021-04-13 22:05:08 字數 2510 閱讀 3223

資料庫效能基準的5個問題

資料庫已經是絕大多數it應用的核心,各種資料庫看上去很大不同,多層體系結構以及soa的發展,使得應用邏輯的實現前移。資料庫的效能,與其功能相比較,變得越來越重要了。因此,效能是衡量資料庫的非常重要的方面,我們這裡將討論資料庫效能基準的五個常見問題。

1.windows和linux,哪個作業系統的效能基準結果更好?

你可以看到,技術上看來是不分勝負的。因此,你可以按自己意願選擇,或者考慮到培訓成本,可以選擇擁有較多系統管理員的那個作業系統。

圖1 2. 32位還是64位,哪種更好?這會影響作業系統的選擇嗎?

64位unix 伺服器已經有很多年了,但64位的windows作業系統才剛剛變成現實。(windows nt可執行在dec alpha上,但一直沒有真正進入主流。)很長一段時間,amd的athlon-64和opteron處理器一直很出色。直到2023年中intel的二代雙核cpu的出現,它的表現相當讓人驚訝!現在我們可以用更好的**購買這些硬體。我們將能耗和房間製冷都計算到tco中。

與32位相比,64位真的有明顯差異嗎?根據圖表1,回答是否定的。但那是因為64位提供的主要優勢在於增加了可定址記憶體。圖表2將再次顯示tpc-c基準執行的結果,但系統和資料庫可以分配的記憶體的總數量增加了。

圖2 我們有了這些很清楚的結果。這些資料顯示,如果你的伺服器有2gb或少一些的記憶體,在32位和64位的處理下沒有明顯的差別。但當你的伺服器的記憶體增加到超過2gb以後,64位的優勢就會顯示出來.儘管諸如oracle資料庫有32位聯接選項來欺騙資料庫,使之可以訪問稍多的記憶體(知名的巨大記憶體模型),這僅僅只能有一點效果。特大記憶體對系統和資料庫來說,可以不斷實現效能的改進。

一般情況下,伺服器的記憶體大於4gb時,建議使用64位。不過值得注意的是,有時某些型別的硬體(例如驅動器,iscs)和更新的資料庫選項(例如,a**,ocfs)在32位的linux上工作得更好。

3.哪個資料庫擁有最好的效能基準:oracle 10g,sql server 2005 還是mysql 5.0?

這也是乙個有爭議的問題。說到它,僅僅是把經常提到最多的三個資料庫拿來討論。(這裡並不是有意忽略db2-udb,postgresql或所有的其他資料庫)。我們知道資料庫廠商一般是不歡迎公布效能基準資料的,特別是在它們之間的比較情況。儘管如此,我們來討論這個常見的問題。圖表3顯示了在mysql,sql server和oracle資料庫上執行的tpc-c基準的結果。

圖3 碰巧的是我們不必冒任何廠商憤怒的風險,因為效能結果顯示,它們的技術不分勝負。同樣,你可以按照你的意願選擇資料庫,或者是哪個資料庫管理員多就選擇哪乙個。

當然,在這些廠商之間的花費是不同的,但是因為沒有人會按照**購買產品,所以按照這個因素進行比較tpc-c是很困難的。

4.如何確定乙個伺服器所能支援的最大併發oltp使用者數?

這始終是乙個很難回答得問題,因為人們經常想聽到,「dell 1850能處理多少的併發使用者量。」事實上,即使是同一系列的伺服器,有相同的記憶體容量,但是也會由於cpu的數量、cpu的時鐘頻率、cpu的核心數、高速緩衝儲存器的大小等因素導致能力的差異。比較伺服器是很困難的,除非你有看起來幾乎一樣配置的機器。但是你也需要比較相同的網路和磁碟io等情況。假設你那樣做,問題變成你如何分析這樣的基準結果,並準確確定那台伺服器的最大併發使用者負載。圖表4顯示了tpc-c基準的結果,只在一台伺服器上確定拐點(即使用者負載開始對響應時間有負面影響)。

圖4 如果你的終端使用者要求響應時間(最常見的指標)少於2秒,那麼在200個併發使用者這個點你應該停下來。圖4顯示這個伺服器可支援多達250個使用者併發直到響應時間達到無法接受的急驟上公升的點. 在這種情況下,tps比率開始趨於平緩或減少,這個例子中碰巧,這兩個點同時出現。但是並不總是如此明顯;這是因為有時兩個拐點並不一定排列的這麼整齊。當拿不準時,建議通常關注tpc-c或oltp型別事務的響應時間。

5.如何確定乙個伺服器所能支援的最大資料倉儲大小?

這又是乙個很難回答的問題,因為大多數人想聽到是,「處理x千兆位元組的資料需要一台dell 1850。」上文中提到,比較伺服器是不容易的事情,除非你擁有的主機幾乎有一樣的配置,以及一樣的網路和磁碟i/o環境。磁碟i/o在這裡是特別重要的,因為tpc-h結果大部分是由磁碟數量來決定的。如果能比較伺服器,那麼問題就變為如何從基準結果中確定那台指定伺服器的最大資料倉儲的大小。在圖表5中,顯示了基於幾個強大的oracle rac伺服器配置的tpc-h基準的測試結果。這些伺服器訪問分布在多個san和超過100個磁碟上的300gb資料。

圖5 在tpc-h中,值得注意的是,應該同時關注整體執行時和間平均響應時間。tpc-h的詢問是非常複雜的,通常要花數個小時,或好幾天才能完成。

根據圖表6,最好的硬體配置大執行5小時,平均響應時間約4小時。然而,通過幾次執行時間很長的測試,實際的響應時間的變化是很傾斜的。因此,如果你的使用者對於高度複雜的決策支援查詢能接受執行時間在4個小時的,8個節點的集群將可以滿足要求。如果不能接受的話,那麼需要購買更多磁碟,而不是增加更多的伺服器。對於千兆容量的資料倉儲,使用500到1000個磁碟可以達到最佳的效果,這種情況並不少見。

圖5  

資料庫效能基準的5個問題

簡介 資料庫已經是絕大多數it應用的核心,各種資料庫看上去很大不同,多層體系結構以及soa的發展,使得應用邏輯的實現前移。資料庫的效能,與其功能相比較,變得越來越重要了。因此,效能是衡量資料庫的非常重要的方面,我們這裡將討論資料庫效能基準的五個常見問題。1.windows和linux,哪個作業系統的...

sysbench資料庫效能測試基準

背景介紹 我們如何判斷一台資料伺服器的效能呢?sysbench是一種行業基準,它通過各種指標來判斷乙個資料伺服器的負載情況。安裝sysbench curl s sudo bash sudo yum y install sysbench 測試 cpu cpu 測試計算素數,直到某個指定值所需要的時間。...

sysbench進行資料庫效能基準測試

1 建立用於基準測試用的資料庫和資料庫使用者 create database sys test grant all privileges on to zhaoheng localhost identified by 123456 給予使用者所有許可權 2 生成測試資料 進入lua指令碼目錄,預設在 ...