日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB 从节点 延迟的测试

發布時間:2024/4/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB 从节点 延迟的测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于從節點 延遲的測試:

使用手工設置延遲時間的方法,在兩個數據庫中測試了主從 寫/讀的延遲時間,

主從節點的延遲時間大約 在 0.3秒 。


這個測試比我想象中的要大很多,開始以為延遲也就在10 -30 毫秒左右
或許這個測試只能說: ”延遲0.3秒后,能在從節點中查詢到所插入的數據比例越大“ 更貼切點。

如果是插入后要即刻返回數據的,暫時只能指定從主節點讀取數據。

****************************************************************************************************
??? 測試1: 循環N次,
??????????? 1. 主節點插入_id=i,
??????????? 2.設置延遲時間的長短,
??????????? 3.從節點查詢_id=i ,顯示插入的時間。

??? 測試庫(1主,1從,1仲裁,版本為2.6):
?
??????? 1.不設置延遲的情況下,從節點能查詢到數據的???????? 78/1999
??????? 2.查詢時間向后延遲0.1秒,從節點能查詢到數據的??? 360/499
??????? 3.查詢時間向后延遲0.2秒,從節點能查詢到數據的??? 449/499
??????? 4.查詢時間向后延遲0.3秒,從節點能查詢到數據的??? 473/499

?????? ?
??? 另外一套數據庫環境?? (1主4從,版本為2.6):
???

??????? 1.不設置延遲的情況下,從節點能查詢到數據的???????? 45/999
??????? 2.查詢時間向后延遲0.1秒,從節點能查詢到數據的??? 433/499
??????? 3.查詢時間向后延遲0.2秒,從節點能查詢到數據的??? 492/499
??????? 4.查詢時間向后延遲0.3秒,從節點能查詢到數據的??? 498/499
?? ?


??? 3.2.3 版本集群環境測試(1p+2s)

?????? 1.不設置延遲的情況下,從節點能查詢到數據的???????? 281/500
??????? 2.查詢時間向后延遲0.1秒,從節點能查詢到數據的??? 495/500

?????? 3.0以上的版本,性能確實好了很多了。


<span style="font-size:24px;color:#FF6600;"><strong>后面在更單一的環境中重新測試了一把。 (1p+2s+1a,2g 內存的虛擬環境,mongoDB ver:3.2.7 ).延遲只有0.002 sec.</strong></span>




(473/499 ,499 為循環總數,473為在子節點查詢到剛插入數據的數量)
(以上只測試了單條插入情況,如果主節點更新多條記錄,從節點的延遲可能會更大,因為多條記錄的修改,在從節點是做為多條記錄各自處理的)


?? ?測試2:考慮到測試1可能存在鎖爭用問題:在主庫循環插入數據后,因為日志是同步同步到從節點,而從節點再重現數據時,可能存在鎖問題。

?? ??? ??? ?把測試1中的時間延遲0.X 秒,修改為同庫其它表插入數據后,再回來查看測試表中的數據是否已同步到從節點。
?? ??? ??? ?測試下來看到當其它表數據插入越多(各表插入數據時間消耗只有幾毫秒)。從節點數據重現數據越慢。

?? ??? ??? ?(測試庫中進行測試)

--------------------------------------------------------------------------------------------
測試1 python 腳本:


#primarytst_conn = pymongo.MongoClient(['mongodb://10.0.0.48:27017'])tst_db=tst_conn.test#slavetst_conn2 = pymongo.MongoClient(['mongodb://10.0.0.67:27017'])tst_db2 = tst_conn2.testfor i in range(1,500):#primary insert datatst_db.test01.insert({"_id":i,"date":datetime.datetime.now()})print 'i=%d'%i,datetime.datetime.now()#sleeptime.sleep(0.1)#slave select datacur = tst_db2.test01.find({"_id":i})for row in cur:print 'select secoundary data: ',row["_id"],row["date"]



測試2 腳本:
?? ??? ?#time.sleep(0.1)? 修改為循環在其它表插入一條數據,當循環越大時,從庫數據重現越慢。

?? ??? ?for j in range(2,20):
?? ??? ??? ??? ?tst_db.get_collection('test%s'%str(j).zfill(2)).insert({"_id":i,"date":datetime.datetime.now()})


總結

以上是生活随笔為你收集整理的MongoDB 从节点 延迟的测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。