solr壓力測(cè)試

個(gè)人專(zhuān)題目錄


默認(rèn)配置下對(duì)solr進(jìn)行數(shù)據(jù)插入壓力測(cè)試:

以書(shū)為例 對(duì)書(shū)籍的類(lèi)型,url,名稱(chēng),介紹進(jìn)行索引,其中url及類(lèi)型不進(jìn)行分

采用數(shù)據(jù):

每次從四個(gè)之間隨機(jī)取出一個(gè)。

開(kāi)啟20個(gè)線(xiàn)程 每個(gè)線(xiàn)程插入100次文檔 每次插入都做提交

服務(wù)器資源占用:

每次提交用時(shí)4.5s左右。

且最終由異常拋出:Error opening new searcher. exceeded limit of maxWarmingSearchers=2

原因:

 Solr每次提交時(shí),都會(huì)新打開(kāi)一個(gè)searcher,打開(kāi)searcher花費(fèi)時(shí)間可能較長(zhǎng),在這打開(kāi)的過(guò)程中,假如又有新的提交,又會(huì)導(dǎo)致打開(kāi)新searcher, 當(dāng)這些新的searcher(未準(zhǔn)備好的)的數(shù)量超過(guò)SolrConfigXml 中配置maxWarmingSearchers時(shí),就會(huì)報(bào)該錯(cuò)誤。

maxWarmingSearchers配置的是同時(shí)可以存在的、未準(zhǔn)備好的searcher的個(gè)數(shù)。

解決方法有兩種:

1、把maxWarmingSearchers配置大一點(diǎn)。(需要系統(tǒng)有足夠的RAM和CPU等,比較危險(xiǎn))

2、較少提交的頻率(推薦)

修改為100次文檔添加完成后提交:第一次執(zhí)行,時(shí)間為7s左右且有異常拋出

Error opening new searcher. exceeded limit of maxWarmingSearchers=2

第二次執(zhí)行,時(shí)間為4.5s,仍存在異常。

第三次執(zhí)行,時(shí)間為4s 異常消失。

將maxWarmingSearchers修改為4,重啟服務(wù)

執(zhí)行 每個(gè)提交 時(shí)間為3s左右,且無(wú)異常拋出

修改為每次添加完立刻commit執(zhí)行程序查看對(duì)服務(wù)器資源占用情況

此時(shí)資源占用:

峰值接近150% 一般維持在 35% - 50%左右。

每次提交時(shí)間分布于 1 - 3s,且有異常拋出

Error opening new searcher. exceeded limit of maxWarmingSearchers=4, try again later.

維持maxWarmingSearchers=4,將線(xiàn)程數(shù)降為10。線(xiàn)程每插入1000條提交一次,循環(huán)10次:

Cpu 占用維持于 35%-50%之間 內(nèi)存占用在8%左右

分析日志 每次commit 用時(shí)2.5s左右,且運(yùn)行期沒(méi)有異常拋出

進(jìn)行數(shù)據(jù)讀取壓力測(cè)試:

同時(shí)進(jìn)行10個(gè)線(xiàn)程寫(xiě)入,10個(gè)線(xiàn)程查詢(xún),

響應(yīng)很快,查看日志,每次響應(yīng)時(shí)間在20ms左右。

同時(shí)進(jìn)行10個(gè)線(xiàn)程寫(xiě)入,100個(gè)線(xiàn)程查詢(xún),

響應(yīng)很快,查看日志,每次響應(yīng)時(shí)間在25ms左右。

保持當(dāng)前條件,將查詢(xún)線(xiàn)程提高到500

查詢(xún)期間cpu占用瞬時(shí)變大,每次響應(yīng)分布在 200-500ms,峰值出現(xiàn)800s

整個(gè)請(qǐng)求用時(shí)5s左右(http請(qǐng)求的發(fā)送與響應(yīng)時(shí)間也在內(nèi))。

同時(shí)進(jìn)行10個(gè)線(xiàn)程寫(xiě)入,1000個(gè)線(xiàn)程查詢(xún),

此時(shí)服務(wù)器端cpu占用巨大,內(nèi)存尚可,可以看出solr對(duì)cpu依賴(lài)較為嚴(yán)重。

每次查詢(xún)響應(yīng)時(shí)間800ms左右,峰值出現(xiàn)1.5s,較之前有明顯下降約為之前20倍。但無(wú)異常拋出。

模擬一千個(gè)用戶(hù)對(duì)solr進(jìn)行不停地查詢(xún):

服務(wù)器資源占用巨大cpu接近400%,solr查詢(xún)響應(yīng)隨時(shí)間增加而下降,最后穩(wěn)定在800ms左右,偶爾緩存命中出現(xiàn)10ms。

總結(jié)

單solr節(jié)點(diǎn)下數(shù)據(jù)寫(xiě)入應(yīng)該以100-1000(或者更大具體看文檔大小決定)個(gè)文檔提交一次,10線(xiàn)程頻繁寫(xiě)入maxWarmingSearchers=4較為穩(wěn)定。

具體應(yīng)用中,大批量數(shù)據(jù)導(dǎo)入應(yīng)該使用內(nèi)置數(shù)據(jù)導(dǎo)入組件。平時(shí)小批量數(shù)據(jù)添加應(yīng)采用定時(shí)批量添加的方式。

Solr數(shù)據(jù)讀取對(duì)cpu 占用較大,內(nèi)存占用一般,可以嘗試加大緩存,提高緩存命中率,以減少響應(yīng)時(shí)間和服務(wù)器資源占用。

http://www.cnblogs.com/guozk/p/3498831.html 配置定義

http://blog.csdn.net/clj198606061111/article/details/21325239 緩存優(yōu)化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容