真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MongoDB的初始化步驟有哪些以及其緩存刷新機(jī)制是什么

MongoDB的初始化步驟有哪些以及其緩存刷新機(jī)制是什么,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、市南ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的市南網(wǎng)站制作公司

當(dāng)內(nèi)存用盡開始往磁盤上刷臟頁的時(shí)候,性能有非常大的波動(dòng),即使調(diào)整了syncdelay也沒有太大改善。在測(cè)試中還出現(xiàn)了一個(gè)莫名其妙的情況:MongoDB會(huì)間歇性地釋放文件系統(tǒng)的cache。下面創(chuàng)新互聯(lián)小編來講解下MongoDB的初始化步驟有哪些?MongoDB數(shù)據(jù)緩存刷新機(jī)制是什么?

MongoDB的初始化步驟有哪些

intmain(intargc,char*argv[],char*envp[])

{

Module::configAll(params);

dataFileSync.go();

initAndListen(cmdLine.port,appsrvPath);

}

顯然,dataFileSync就是我們感興趣的那個(gè)類。dataFileSync類派生自BackgroundJob類,而BackgroundJob主要的功能就是生成一個(gè)后臺(tái)線程并指派任務(wù)。數(shù)據(jù)的刷新是一個(gè)不斷執(zhí)行的后臺(tái)任務(wù),在dataFileSync.run()里面可以找到刷數(shù)據(jù)的相關(guān)代碼:

MongoDB數(shù)據(jù)緩存刷新機(jī)制是什么

voidrun()

{

Date_tstart=jsTime();

intnumFiles=MemoryMappedFile::flushAll(true);

time_flushing=(int)(jsTime()–start);

globalFlushCounters.flushed(time_flushing);

}

從這一段代碼看,MongoDB會(huì)在syncdelay設(shè)定的周期內(nèi),采取同步的形式刷新所有的臟數(shù)據(jù)。再看一下flushAll是怎么刷新所有數(shù)據(jù)的:

intMongoFile::flushAll(boolsync)

{

setseen;

while(true){

auto_ptrf;

{

rwlocklk(mmmutex,false);

for(set::iteratori=mmfiles.begin();i!=mmfiles.end();i++){

MongoFile*mmf=*i;

if(!mmf)

continue;

if(seen.count(mmf))

continue;

f.reset(mmf->prepareFlush());

seen.insert(mmf);

break;

}

}

if(!f.get())

break;

f->flush();

}

returnseen.size();

}

上面這一段代碼實(shí)現(xiàn)的功能很簡(jiǎn)單,就是把mmfiles中所有MongoFile指針?biāo)玫膶?duì)象都flush()一次。不過在執(zhí)行flush()函數(shù)之前,需要先執(zhí)行prepareFlush()確保這個(gè)對(duì)象是可以執(zhí)行flush()函數(shù)的。下面是最后真正執(zhí)行刷新操作的代碼:

voidMemoryMappedFile::flush(boolsync)

{

if(view==0||fd==0)

return;

if(msync(view,len,sync?MS_SYNC:MS_ASYNC))

problem()<<“msync”<   }

關(guān)于MongoDB的初始化步驟有哪些以及其緩存刷新機(jī)制是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


本文題目:MongoDB的初始化步驟有哪些以及其緩存刷新機(jī)制是什么
本文路徑:http://weahome.cn/article/giogjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部