文檔數(shù)據(jù)庫服務(wù)DDS性能調(diào)優(yōu)主要方法
文檔數(shù)據(jù)庫服務(wù)DDS讀寫性能提升
1、如果數(shù)據(jù)庫有直接報(bào)錯信息Timeout,需要檢查實(shí)例的連接數(shù)是否已達(dá)到上限
檢查方法:通過查看監(jiān)控指標(biāo),查看當(dāng)前活動連接數(shù)是否已經(jīng)達(dá)到當(dāng)前實(shí)例支持的最大連接數(shù)。
解決方案:請參見實(shí)例的連接數(shù)滿導(dǎo)致實(shí)例連接失敗,如何處理。
2、檢查連接方式是否合理
檢查方法:檢查連接實(shí)例時(shí),集群實(shí)例是否同時(shí)連接了多個mongos節(jié)點(diǎn),副本集是否同時(shí)連接了主節(jié)點(diǎn)和備節(jié)點(diǎn)。
解決方案:如果是集群實(shí)例,連接實(shí)例時(shí)建議同時(shí)連接多個mongos節(jié)點(diǎn),這樣可以分擔(dān)負(fù)載并提高可用性;如果是副本集實(shí)例,建議同時(shí)連接主備節(jié)點(diǎn),這樣不僅提升了數(shù)據(jù)讀寫性能,而且避免了在發(fā)生主備節(jié)點(diǎn)切換后,從客戶端寫入數(shù)據(jù)報(bào)錯的問題。
3、分析實(shí)例的監(jiān)控指標(biāo)是否存在異常
檢查方法:通過查看監(jiān)控指標(biāo),觀察CPU使用率、內(nèi)存使用率等使用情況。
解決方案:如果CPU和內(nèi)存指標(biāo)異常,需要檢查客戶端業(yè)務(wù)或者實(shí)例數(shù)據(jù)是否過于集中,造成負(fù)載過高。客戶端業(yè)務(wù)過于集中,則需要客戶端進(jìn)行架構(gòu)優(yōu)化。數(shù)據(jù)過于集中,則需要對數(shù)據(jù)進(jìn)行必要的分片。
4、檢查慢日志是否過多
檢查方法:請參見查看慢日志。
解決方案:請參見慢操作優(yōu)化。
文檔數(shù)據(jù)庫服務(wù)DDS慢請求定位方法
在相同業(yè)務(wù)場景下,架構(gòu)設(shè)計(jì)和庫、集合、索引等設(shè)計(jì)會影響查詢性能,良好的設(shè)計(jì)可以提高查詢性能,反之會出現(xiàn)很多慢請求(執(zhí)行時(shí)間很長的語句),這些慢請求會消耗很多的系統(tǒng)性能,此處要介紹導(dǎo)致慢請求的原因和解決方案。
排查思路
DDS支持在控制臺上查看慢日志信息,針對慢日志中過長的操作需要從執(zhí)行最慢的操作入手,逐個進(jìn)行優(yōu)化。
1、對于操作執(zhí)行時(shí)長超過1s時(shí),對應(yīng)的操作可能會有問題,需要視具體情況分析。
2、對于操作執(zhí)行時(shí)長超過10s時(shí),則需要優(yōu)化對應(yīng)的操作。
優(yōu)化方案
1、對于無索引覆蓋的查詢,則需要根據(jù)查詢條件創(chuàng)建對應(yīng)索引。
2、對于點(diǎn)查可以創(chuàng)建hash索引。
3、對于多字段查詢,單字段重復(fù)度較高的場景,創(chuàng)建復(fù)合索引。
4、對于范圍查找,結(jié)果集有序的查詢,創(chuàng)建升序或者降序索引。
5、對于復(fù)合索引,由于復(fù)合索引是前綴排序查詢,所以查詢條件的順序
文檔數(shù)據(jù)庫服務(wù)DDS內(nèi)存使用率高問題排查
使用文檔數(shù)據(jù)庫時(shí),當(dāng)實(shí)例的內(nèi)存使用率達(dá)到90%,SWAP利用率超過5%時(shí),此時(shí)認(rèn)為實(shí)例的內(nèi)存已達(dá)瓶頸,會導(dǎo)致系統(tǒng)響應(yīng)慢,甚至出現(xiàn)內(nèi)存溢出(OOM)的隱患。此處主要介紹排查解決實(shí)例內(nèi)存使用率高的問題。
查看內(nèi)存使用情況
您可以通過查看監(jiān)控指標(biāo)(內(nèi)存使用率和SWAP利用率),了解實(shí)例內(nèi)存的使用情況。具體操作請參見查看監(jiān)控指標(biāo)。
解決方案
1、控制并發(fā)連接數(shù)。連接數(shù)據(jù)庫時(shí),需要計(jì)算業(yè)務(wù)一共有多少個客戶端, 每個客戶端配置的連接池大小是多少,總的連接數(shù)不宜超過當(dāng)前實(shí)例能承受的最大連接數(shù)的80%。連接太多會導(dǎo)致內(nèi)存和多線程上下文的開銷增加,影響請求處理延時(shí)。
2、建議配置連接池,連接池最大不要超過200。
3、降低單次請求的內(nèi)存開銷,例如通過創(chuàng)建索引減少集合的掃描、內(nèi)存排序等。
4、在連接數(shù)合適的情況下內(nèi)存占?持續(xù)增?,建議升級內(nèi)存配置,避免可能存在內(nèi)存溢出和大量清除緩存而導(dǎo)致系統(tǒng)性能急劇下降。
熱銷云數(shù)據(jù)庫類型
了解更多云數(shù)據(jù)庫請前往云數(shù)據(jù)庫產(chǎn)品總覽,更多活動請前往云數(shù)據(jù)專場
活動對象:華為云電銷客戶及渠道伙伴客戶可參與消費(fèi)滿送活動,其他客戶參與前請咨詢客戶經(jīng)理
活動時(shí)間: 2020年8月12日-2020年9月11日
活動期間,華為云用戶通過活動頁面購買云服務(wù),或使用上云禮包優(yōu)惠券在華為云官網(wǎng)新購云服務(wù),累計(jì)新購實(shí)付付費(fèi)金額達(dá)到一定額度,可兌換相應(yīng)的實(shí)物禮品。活動優(yōu)惠券可在本活動頁面中“上云禮包”等方式獲取,在華為云官網(wǎng)直接購買(未使用年中云鉅惠活動優(yōu)惠券)或參與其他活動的訂單付費(fèi)金額不計(jì)入統(tǒng)計(jì)范圍內(nèi);