阿里云MongoDB連接數(shù)滿了测垛?

用云服務(wù)的新手,估計都會遇到這樣的問題:某天去到公司打開MongoChef秧均,發(fā)現(xiàn)阿里云的MongoDB連不上了食侮。

2017-05-06 18:34:18 星期六
結(jié)論:經(jīng)過實踐證明,就是因為中轉(zhuǎn)服務(wù)器與MongoDB服務(wù)的連接沒釋放的原因目胡,只要先斷開rinetd后再重連即可锯七!目前的解決方法是:在阿里云監(jiān)控臺設(shè)置短信通知連接數(shù)快滿,然后登中轉(zhuǎn)服務(wù)器重啟rinted服務(wù)誉己∶际可以優(yōu)化成:設(shè)置腳本,讓中轉(zhuǎn)服務(wù)器每天定時重啟rinted服務(wù)巨双。

<h2>問題排查</h2>

<ul>
<li>網(wǎng)絡(luò)斷了噪猾?</li>
<li>阿里云中轉(zhuǎn)服務(wù)器掛了?</li>
<li>MongoDB連接數(shù)滿了筑累?</li>
</ul>

ping一下百度袱蜡,可以ping通,排除網(wǎng)絡(luò)斷了的bug慢宗。

ssh下阿里云的中轉(zhuǎn)服務(wù)器坪蚁,可以連上,排除阿里云中轉(zhuǎn)服務(wù)器掛了的bug婆廊。

<h2>MongoDB連接數(shù)問題及解決方法</h2>

登上MongoDB控制臺迅细,發(fā)現(xiàn)連接數(shù)滿了巫橄。百度之淘邻,得到一篇阿里云棲的博文<a title="《為什么 MongoDB 連接數(shù)被用滿了?》">《為什么 MongoDB 連接數(shù)被用滿了湘换?》</a>
原來是我之前寫代碼時忘記寫上<code>db.close()</code>宾舅,導致每次連接建立后都沒釋放统阿。

<h2>如何在不重啟阿里云MongoDB的情況下,強制釋放已建立的連接筹我?</h2>

然而改了代碼扶平,第二天有其他操作忘記加了釋放連接的命令,也會導致連接數(shù)滿蔬蕊,那么問題來了结澄,如何在不重啟MongoDB的情況下,強制釋放已建立的連接呢岸夯?

為此提交了阿里云的工單麻献,技術(shù)人員的回復是暫時沒有可以解決的方法。

于是自己<code>google</code>之猜扮,查閱了<code>stackoverflow</code>勉吻,<code>mongodb doc</code>和<code>pymongo</code>的一些資料,獲知了大概以下信息:

<ul>
<li>可以在終端中<code>mongo mongodb://user:password@URL:port/database</code>連接<code>MongoDB</code>旅赢,執(zhí)行<code>db.serverStatus()</code>查看連接信息齿桃,執(zhí)行<code>db.currentOp()</code> 查看當前操作,并可以用<code>db.killOp()</code>殺死操作煮盼。于是當然可以寫代碼殺死所有操作了短纵。但是殺死這些操作,是否連接數(shù)就會減少還沒試驗孕似。</p></li>
<li><p>據(jù)我快速掃描英文文檔踩娘,如果沒錯的話,<code>pymongo</code>和<code>MongoDB</code>的機制已經(jīng)是線程池的喉祭,可能是我插入數(shù)據(jù)的時候數(shù)據(jù)量太大养渴,于是建立太多連接。只要完成操作泛烙,等一段時間理卑,這些線程池中建立的連接自動會被釋放回收。</p></li>
<li><p>在中轉(zhuǎn)服務(wù)器上重啟<code>rinetd</code>服務(wù)蔽氨。假設(shè)有外接進程連接著<code>MongoDB</code>藐唠,并且不進行操作,而且<code>MongoDB</code>不會進行自動釋放鹉究,那么將中轉(zhuǎn)服務(wù)器的中轉(zhuǎn)服務(wù)斷開后宇立,這些連接自然也就被中斷釋放了。作者就是進行這一步之后自赔,使得連接數(shù)從180下降到40多妈嘹。那么問題來了,如果是這個原因绍妨,那么剩下的40多連接數(shù)润脸,是<code>MongoDB</code>在內(nèi)網(wǎng)產(chǎn)生的嗎柬脸?有待進一步研究。

經(jīng)過實踐證明毙驯,就是因為中轉(zhuǎn)服務(wù)器與MongoDB服務(wù)的連接沒釋放的原因倒堕,只要先斷開rinetd后再重連即可!

關(guān)于<code>rinetd</code>爆价,祥見<a title="《通過公網(wǎng)連接云數(shù)據(jù)庫 MongoDB--ECS Linux 篇》">《通過公網(wǎng)連接云數(shù)據(jù)庫 MongoDB--ECS Linux 篇》</a></p></li>
</ul>

<h2>利用復制集(replica set)設(shè)計讀壓力分散垦巴,即低級的負載均衡</h2>

<p>讓只有讀操作的api連接到secondary(從)數(shù)據(jù)庫上,primary(主)數(shù)據(jù)庫只連接需要進行讀寫的api铭段,就可以分散讀壓力魂那,使得primary(主)數(shù)據(jù)庫不會那么快滿連接數(shù)。
當然稠项,對代碼的優(yōu)化是必須的涯雅,如果資金充沛,那么提高<code>MongoDB</code>的硬件配置是最好不過的的展运。

<h2>小結(jié)</h2>

數(shù)據(jù)庫技術(shù)(包括傳統(tǒng)型如MySQL和大數(shù)據(jù)型MongoDB活逆、Hadoop)是大數(shù)據(jù)時代的核心技術(shù),不管是VR拗胜、物聯(lián)網(wǎng)蔗候、人工智能還是數(shù)據(jù)挖掘,都離不開數(shù)據(jù)埂软。打算在修煉python的同時锈遥,繼續(xù)看《MongoDB 實戰(zhàn)》,在工作中總結(jié)經(jīng)驗勘畔,深入了解底層機制所灸,并且學下MySQL等傳統(tǒng)數(shù)據(jù)庫,假以時日炫七,才能在數(shù)據(jù)庫領(lǐng)域有所進展爬立。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市万哪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奕巍,老刑警劉巖的止,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡剩檀,警方通過查閱死者的電腦和手機旺芽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門采章,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悯舟,“玉大人,你說我怎么就攤上這事奋救》刺瑁” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狡汉。 經(jīng)常有香客問我闽颇,道長进萄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮援雇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚕涤。我一直安慰自己铣猩,他們只是感情好达皿,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布峦椰。 她就那樣靜靜地躺著汤功,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拂封。 梳的紋絲不亂的頭發(fā)上鹦蠕,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天钟病,我揣著相機與錄音肠阱,去河邊找鬼。 笑死走趋,一個胖子當著我的面吹牛噪伊,可吹牛的內(nèi)容都是我干的鉴吹。 我是一名探鬼主播姨伟,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼技扼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起窍箍,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎魔招,沒想到半個月后办斑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杆逗,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡罪郊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年靶累,在試婚紗的時候發(fā)現(xiàn)自己被綠了癣疟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睛挚。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扎狱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出床牧,到底是詐尸還是另有隱情戈咳,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站猎唁,受9級特大地震影響诫隅,放射性物質(zhì)發(fā)生泄漏帐偎。R本人自食惡果不足惜削樊,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一漫贞、第九天 我趴在偏房一處隱蔽的房頂上張望迅脐。 院中可真熱鬧谴蔑,春花似錦、人聲如沸肯适。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纬凤。三九已至撩嚼,卻和暖如春挖帘,著一層夾襖步出監(jiān)牢的瞬間拇舀,已是汗流浹背骄崩。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脱惰,地道東北人源请。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像良蛮,于是被迫代替她去往敵國和親决瞳。 傳聞我的和親對象是個殘疾皇子皮胡,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理锌杀,服務(wù)發(fā)現(xiàn)糕再,斷路器,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • 背景: 閱讀新聞 12C CDB模式下RMAN備份與恢復 [日期:2016-11-29] 來源:Linux社區(qū) 作...
    陽屯okyepd閱讀 3,403評論 0 7
  • 那一年 似乎很久以前 你就在那里 等我 如惴惴小鹿 那一天 一條條簡訊 是我的整個世界 那一天 目光觸及處 是你深...
    褚鳶兒閱讀 366評論 14 10
  • 11:00 上午到北湖校區(qū)開會,領(lǐng)導對我的工作做了調(diào)整捺癞。把東葛校區(qū)最難管的16級12班轉(zhuǎn)給我构挤,讓他們原來的...
    晨曦曉林閱讀 180評論 0 0
  • 最近唐础,很自信矾飞。 人吶洒沦,一旦自信了申眼,真是胃口也好了括尸,睡覺也睡得香了濒翻,就算天要塌了肴焊,都會想到有高個子的人頂著似嗤,照樣不愁...
    賴床的熊二閱讀 524評論 0 0