獲取Oracle的當(dāng)前負(fù)載情況:
武陵源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
查詢sql語(yǔ)句如下:
SELECT?*
FROM?(?SELECT?A.INSTANCE_NUMBER,
A.SNAP_ID,
B.BEGIN_INTERVAL_TIME +?0?BEGIN_TIME,
B.END_INTERVAL_TIME +?0?END_TIME,
ROUND(VALUE?-?LAG(?VALUE,?1?,?'0')
OVER(ORDER?BY?A.INSTANCE_NUMBER, A.SNAP_ID)) "DB TIME"
FROM?(SELECT?B.SNAP_ID,
INSTANCE_NUMBER,
SUM(VALUE?) /?1000000?/?60?VALUE
FROM?DBA_HIST_SYS_TIME_MODEL B
WHERE?B.DBID = (SELECT?DBID?FROM?V$DATABASE)
AND?UPPER?(B.STAT_NAME)?IN?UPPER(('DB TIME'?))
GROUP?BY?B.SNAP_ID, INSTANCE_NUMBER) A,
DBA_HIST_SNAPSHOT B
WHERE?A.SNAP_ID = B.SNAP_ID
AND?B.DBID = (SELECT?DBID?FROM?V$DATABASE)
AND?B.INSTANCE_NUMBER = A.INSTANCE_NUMBER)
WHERE?TO_CHAR(BEGIN_TIME,?'YYYY-MM-DD') = TO_CHAR(SYSDATE?,?'YYYY-MM-DD')
ORDER?BY?BEGIN_TIME;
SQL 結(jié)果:
(1)QPS(每秒Query量)
QPS = Questions(or Queries) / seconds
mysql show global status like 'Question%';
(2)TPS(每秒事務(wù)量)
TPS = (Com_commit + Com_rollback) / seconds
mysql show global status like 'Com_commit';
mysql show global status like 'Com_rollback';
這種問題要回答好要求知識(shí)比較全面。
1 從操作系統(tǒng)層次上看
看CPU 內(nèi)存 swqp(交換分區(qū))等使用率
2 從磁盤上看
主要看磁盤讀寫??梢杂胐d測(cè)磁盤讀寫的速度 也可以在業(yè)務(wù)高峰期檢測(cè)磁盤的速率。
3 從數(shù)據(jù)庫(kù)本身來看。
先要看數(shù)據(jù)庫(kù)各個(gè)參數(shù)的值 。 如sga的大小,process的大小,redo日志的個(gè)數(shù)與大小等這些關(guān)系到性能的參數(shù)是否設(shè)置合理。
長(zhǎng)期觀察的方式就是看各個(gè)時(shí)期的AWR報(bào)告。里面有各種性能指標(biāo),以及按執(zhí)行時(shí)間或資源排列的sql ,以及各種等待時(shí)間的排名。從這里面可以掌握數(shù)據(jù)庫(kù)的長(zhǎng)期的性能變化。
即時(shí)觀察的方式就是利用各種sql 查詢 數(shù)據(jù)庫(kù)在當(dāng)前時(shí)間的各個(gè)性能指標(biāo)(AWR報(bào)告里面的各種指標(biāo)也都是通過sql查詢出來的)
還有對(duì)數(shù)據(jù)庫(kù)整體的一個(gè)檢查:
如 表的大小,表是否需要分區(qū)而沒有分區(qū),索引是否創(chuàng)建,索引是否失效,開發(fā)人員寫的sql是否正確使用到了索引,頻繁使用的sql是否有綁定變量,有頻繁大批量增刪改的表是否存在高水位。。。
額 總之,這個(gè)話題涉及的知識(shí)非常多,盡可能多的學(xué)習(xí)一些東西,祝你好運(yùn)。
參考一下吧
環(huán)境說明:
AIX P740,AIX VERSION 6,16 core 3.55GHZ的CPU,32G MEM,3塊千M網(wǎng)卡BOND。
V7000中端存儲(chǔ) 80G 的CACHE。12塊LOG 盤。最夠多的數(shù)據(jù)盤。
ORACLE 11.2.0.3 單機(jī)非RAC(無DAGAGUARD) 日志文件 數(shù)據(jù)文件放AIX的JFS2文件系統(tǒng),采用CIO方式掛載
近期一直在搞業(yè)務(wù)壓測(cè),提升系統(tǒng)的事務(wù)處理能力。事務(wù)處理量從剛開始的三千到如今的接近一萬(wàn),中間也積累了一些優(yōu)化方法,分享給各位。首先當(dāng)然需要你的系統(tǒng)是處理大并發(fā)事務(wù)的,如果你的系統(tǒng)每秒TPS才一兩百,可能事務(wù)優(yōu)化并不是主要的目的,我的方法對(duì)你也不一定有作用。這里一共包含兩個(gè)部分的優(yōu)化手段,第一部分是常規(guī)的優(yōu)化手段,第二部分是稍微“邪門”點(diǎn)的優(yōu)化手段。
大并發(fā)事務(wù)常規(guī)的優(yōu)化手段:
1)REDO LOG 盤優(yōu)化:如果是放在存儲(chǔ),可以多拿出幾塊盤來做LOG 盤,最基本的常識(shí)盤要做成RAID 10,不能放RAID 5。根據(jù)你盤的情況,可以用6-12塊盤不等。這些 盤專門提供給REDO LOG用,剩余的空間也不能提供給其他盤用,以免影響LOG 盤的IO。由于存儲(chǔ)一般都帶有CACHE,CACHE的大小根據(jù)高低中端的不同,存儲(chǔ)型號(hào)的不同而不同,存儲(chǔ)的CACHE可以說是存儲(chǔ)的靈魂,對(duì)于寫緩沖的效果非常明顯,極大的降低寫LOG盤的時(shí)間。
2)數(shù)據(jù)盤的IO要根據(jù)你系統(tǒng)的情況來,根據(jù)操作系統(tǒng)工具topas -D或iostat -DlRa 1 來看數(shù)據(jù)盤存不存在瓶頸,如果busy比較大,那么需要繼續(xù)添加硬盤來提升IOPS。事務(wù)型的交易系統(tǒng)數(shù)據(jù)盤的繁忙主要是寫臟數(shù)據(jù)造成的(可能你的情況跟我不一樣),一般對(duì)IOPS要求不高。這個(gè)要根據(jù)系統(tǒng)情況來定。IOPS不夠,可以考慮用SSD來提升IOPS,但是存儲(chǔ)對(duì)SSD的支持不太好,最好讓SSD的IO可以打散在存儲(chǔ)的多個(gè)光纖環(huán)路中。
3)ORACLE 的GROUP COMMIT是自動(dòng)、默認(rèn)的行為,這塊其實(shí)不用作優(yōu)化也沒法做優(yōu)化。
4)對(duì)關(guān)鍵業(yè)務(wù)表設(shè)置了CACHE屬性,保證事務(wù)的數(shù)據(jù)都在內(nèi)存里。這一塊的優(yōu)化也非常重要,優(yōu)化效果也非常明顯。ORACLE里可以設(shè)置CACHE表。
當(dāng)時(shí)壓測(cè)是基于P740的一個(gè)小機(jī) V7000的一個(gè)中端存儲(chǔ),做完以上優(yōu)化,TPS可以達(dá)到6000。
非常規(guī)手段的優(yōu)化:
1)由于P740只有物理16core cpu,CPU使用率到了65%,LOAD 接近40。為了LGWR可以任意時(shí)刻獲取CUP資源,設(shè)置了_high_priority_processes 參數(shù),保證LGWR可以隨時(shí)獲得CPU資源,不用排隊(duì)。
2)操作系統(tǒng)級(jí)別設(shè)置dscrctl -n -b -s 1 內(nèi)存預(yù)讀,效果非常明顯,立即可以提升1000 的TPS
3)如果你是萬(wàn)兆網(wǎng)卡,chdev -l hba0 -a cdli_queues=4 -P,加大網(wǎng)卡處理隊(duì)列,效果也非常明顯,可以提升1500 的TPS。事物數(shù)超大的系統(tǒng),網(wǎng)卡往往是瓶頸,優(yōu)化非常必要。即使你的3個(gè)千M網(wǎng)卡處理量還完全沒到瓶頸,可是使用萬(wàn)兆網(wǎng)卡做了這個(gè)優(yōu)化,還是非常的能看到立竿見影的效果。
4)ORACLE的REDO LOG 塊大小設(shè)置為4K.11GR2的版本可以指定REDO LOG的塊大小,一般是磁盤的扇區(qū)大小512字節(jié)。在我的版本11.2.0.3下修改會(huì)報(bào)錯(cuò),說修改值與實(shí)際扇區(qū)大小不匹配。通過修改隱含參數(shù)_disk_sector_size_override為true,可以強(qiáng)制改成功。修改的辦法是在alter database add log file xxxx blocksize 4096。如果拿PL/SQL壓測(cè),采取commit write immediate wait方式提交,優(yōu)化前后的差距接近4倍,非常驚人。但是拿我們的業(yè)務(wù)壓測(cè),只是提升了1500 的TPS,也非常的不錯(cuò)了。
查看的方法和詳細(xì)的操作步驟如下:
1、首先,因?yàn)閛racle在Linux系統(tǒng)下運(yùn)行,所以必須連接到Linux系統(tǒng),如下圖所示,然后進(jìn)入下一步。
2、其次,完成上述步驟后,連接成功,進(jìn)入Oracle控制臺(tái)。
輸入命令“sqlplus / as sysdba”,如下圖所示,然后進(jìn)入下一步。
3、接著,完成上述步驟后,在sql命令行上,輸入以下代碼,如下圖所示,然后進(jìn)入下一步。
4、最后,完成上述步驟后,就可以查看相應(yīng)的結(jié)果了,如下圖所示。這樣,問題就解決了。