Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÍòÒÚ¼¶Êý¾Ý¿â MongoDB ¼¯ÈºÐÔÄÜÊýÊ®±¶ÌáÉý¼°»ú·¿¶à»îÈÝÔÖʵ¼ù
 
×÷ÕߣºÑîÑÇÖÞ
  2878  次浏览      27
2021-6-4 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËÍÆ¹ã¾­Ñé·ÖÏí¡¢»ú·¿¶à»îʵÏÖ¡¢ÐÔÄÜÓÅ»¯°¸Àý¡¢³É±¾ÓÅ»¯°¸ÀýµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×Ôinfoq£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

·ÖÏíÖ÷ÌâÒ»£ºÈçºÎ°Ñ mongodb ´ÓÌÔÌ­±ßÔµ±äΪ¹«Ë¾Ö÷Á÷Êý¾Ý¿â£¿

±³¾°£º

Èëְǰ¶à¸ö´óÊý¾ÝÁ¿ÒµÎñʹÓà mongodb£¬Ê¹ÓÃÖо­³£³¬Ê±¶¶¶¯

¶à¸öºËÐÄÒµÎñÈÌÊܲ»Á˶¶¶¯µÄÍ´¿à£¬×¼±¸Ç¨ÒÆ»Ø mysql¡£

mongodb ¿Ú±®²î£¬ÐÂÒµÎñÏëÓò»¸ÒÓá£

ÈëÖ° 1 ¸öÔ£¬ÒµÎñÇ¨ÒÆ mongodb µ½¹«Ë¾ÆäËûÊý¾Ý¿â£¬mongodb ×ܼ¯ÈºÊý¼õÉÙ 15%

ÎÒ×öÁËʲô£¿

ÓÅ»¯¼¯Èº£¬½â¾ö¼¯Èº¶¶¶¯ÎÊÌâ

ÄÚ²¿·ÖÏíÐÔÄÜÓÅ»¯·½·¨

¸øÖصãÒµÎñ·ÖÏí mongodb Ô­Àí

³ÉÁ¢ mongodb Óû§Èº

ÒµÎñÍ´µãÎÊÌâ¼°Æä½â¾ö·½°¸ÊµÊ±Óû§ÈºÍ¬²½

ÈëÖ° 2 Ôºó£¬mongodb ¹«Ë¾ÄÚ²¿×´Ì¬£º

×¼±¸Ç¨×ߵĺËÐÄÒµÎñ¼ÌÐøÊ¹Óà mongodb

´óÊý¾ÝÁ¿ÒµÎñ¿ªÊ¼Ç¨ÒƵ½ mongodb

Ô½À´Ô½¶à²¿ÃÅ¿ªÊ¼Ê¹Óà mongodb

ÈëÖ° 1 Äêºó£¬mongodb Ïà¹ØÊý¾ÝÔö³¤£º

×ܼ¯ÈºÊýÔö³¤±ÈÀý£º> 700%

×ÜÊý¾ÝÁ¿Ôö³¤±ÈÀý£º> 2000%

¶ÁдÁ÷Á¿Ôö³¤±ÈÀý£º> 550%

mongodb Óû§ÈºÓû§ÊýÔö³¤±ÈÀý£º> 800%

×ܽ᣺

mongodb Ó®µÃÓû§ÐÅÈÎÔ­Òò×ܽ᣺¿Ú±®

·ÖÏíÖ÷Ìâ¶þ£ºµ±Ç°¹úÄÚ¶Ô mongodb Îó½â(¶ªÊý¾Ý¡¢²»°²È«¡¢ÄÑά»¤)£¿

ÒµÎñ½ÓÈë¹ý³ÌÖо­³£×ÉѯµÄ¼¸¸öÎÊÌ⣺

Îó½âÒ».¶ªÊý¾Ý

Îó½â¶þ.²»°²È«£¬ÍøÉÏÒ»¶Ñ˵ mongodb ±»ºÚ¿Í¹¥»÷£¬½ØÍ¼Ò»¶ÑÐÂÎÅ

Îó½âÈý. DBA ÍÂ²Û mongodb Ì«ÄÑά»¤

Îó½âÔ­Òò£º

mongodb ±¾ÉíºÜÓÅÐ㣬µ«ÊǺܶà DBA ºÍÏàÓ¦¿ª·¢°Ñ¿Ø²»×¡

¹úÄÚϵͳÐÔ·ÖÎö mongodb ÄÚºËʵÏÖÔ­ÀíÏà¹Ø×ÊÁÏǷȱ

ÍøÂçÉç»áÒÔ¶ï´«¶ï£¬DBA »òÕßÏà¹Ø¿ª·¢×ÔÉí°Ñ¿Ø²»×¡ÑݱäΪ mongodb µÄ¹ø

·ÖÏíÖ÷ÌâÈý£ºmongodb »ú·¿¶à»î·½°¸-ʵÏֳɱ¾¡¢ÐÔÄÜ¡¢Ò»ÖÂÐÔ"Èý·áÊÕ"

ÉçÇø mongodb Ë«Ïòͬ²½·½°¸(·ÅÆú¸Ã·½°¸)

·ÅÆú¸Ã·½°¸Ô­Òò£º

Êý¾ÝÁ½·Ý¡¢¼¯ÈºÁ½·Ý¡¢ÎïÀí³É±¾¸ß¡£Èý»ú·¿¡¢Îå»ú·¿µÈ¸ü¶à»ú·¿¶à»î£¬³É±¾¼°¸´ÔÓÐÔ¸ü¸ß¡£

´æÔÚÒ»ÖÂÐÔÎÊÌ⣬Á½µØ¼¯ÈºÊý¾Ý²»Ò»Ö£¬balance Çé¿öÏÂÓÈΪͻ³ö

ÓÉÓÚÈËÁ¦Ô­Òò£¬Èç¹û¿ªÔ´Í¬²½¹¤¾ß³öÏÖÎÊÌâ°Ñ¿Ø²»ÔÚ¡£

·½°¸Ò»£ºÍ¬³ÇÈý»ú·¿¶à»î·½°¸(1mongod+1mongod+1mongod ·½Ê½)

ÿ¸ö»ú·¿´úÀíÖÁÉÙ²¿Êð 2 ¸ö£¬±£Ö¤ÒµÎñ·ÃÎÊ´úÀí¸ß¿ÉÓÃ

Èç¹ûij»ú·¿Òì³££¬²¢ÇҸûú·¿½ÚµãΪÖ÷½Úµã£¬½èÖú mongodb ÌìÈ»µÄ¸ß¿ÉÓûúÖÆ£¬ÆäËû»ú·¿ 2 ¸ö mongod ʵÀý»á×Ô¶¯Ñ¡¾ÙÒ»¸öнڵãΪÖ÷½Úµã¡£

¿Í»§¶ËÅäÖà nearest ¾Í½ü·ÃÎÊ£¬±£Ö¤¶Á×ß±¾»ú·¿½Úµã¡£

±×¶Ë£ºÈç¹ûÊÇÒìµØ»ú·¿£¬B »ú·¿ºÍ C »ú·¿Ð´´æÔÚ¿ç»ú·¿Ð´³¡¾°¡£Èç¹û A B C Ϊͬ³Ç»ú·¿£¬ÔòûÓøñ׶ˣ¬Í¬³Ç»ú·¿Ê±ÑÓ¿ÉÒÔºöÂÔ¡£

·½°¸¶þ£ºÍ¬³ÇÁ½»ú·¿¶à»î·½°¸£¨2mongod+2mongod+1arbiter ģʽ£©

ÿ¸ö»ú·¿´úÀíÖÁÉÙ²¿Êð 2 ¸ö£¬±£Ö¤ÒµÎñ·ÃÎÊ´úÀí¸ß¿ÉÓÃ

Èç¹û»ú·¿ A ¹Òµô£¬Ôò»áÔÚ B »ú·¿ mongod ÖÐÖØÐÂÑ¡¾ÙÒ»¸öеÄÖ÷½Úµã¡£arbiter Ñ¡¾Ù½Úµã²»ÏûºÄ×ÊÔ´

¿Í»§¶ËÅäÖà nearest ²ÎÊý£¬±£Ö¤¶Á×ß±¾»ú·¿½Úµã

±×¶Ë£ºÈç¹ûÊÇÒìµØ»ú·¿£¬B »ú·¿ºÍ C »ú·¿Ð´´æÔÚ¿ç»ú·¿Ð´³¡¾°¡£Èç¹û A B Ϊͬ³Ç»ú·¿£¬ÔòûÓøñ׶ˣ¬Í¬³Ç»ú·¿Ê±ÑÓ¿ÉÒÔºöÂÔ¡£

·½°¸Èý£ºÒìµØÈý»ú·¿¶à»î·½°¸(1mongod+1mongod+1mongod ·½Ê½)-½â¾ö¿ç»ú·¿Ð´

ÿ¸ö»ú·¿´úÀíͨ¹ý´ò±êÇ©µÄ·½Ê½£¬´úÀíת·¢Êý¾Ýµ½Ö÷½ÚµãÔÚ±¾»ú·¿µÄ·ÖƬÉÏÈ¥¡£

A »ú·¿Êý¾Ýͨ¹ý±êǩʶ±ðת·¢µ½·ÖƬ shard-1£¬B »ú·¿Êý¾Ýת·¢µ½·ÖƬ shard-2£¬C »ú·¿Êý¾Ýת·¢µ½·ÖƬ shard-3¡£

·ÖÏíÖ÷ÌâËÄ£ºmongodb Ïß³ÌÄ£ÐÍÆ¿¾±¼°ÆäÓÅ»¯·½·¨

mongodb ĬÈÏÏß³ÌÄ£ÐÍ(Ò»¸öÁ´½ÓÒ»¸öÏß³Ì)

˵Ã÷£º

listener Ï̸߳ºÔð½ÓÊÜËùÓеĿͻ§¶ËÁ´½Ó

listener Ïß³Ìÿ½ÓÊÕµ½Ò»¸öеĿͻ§¶ËÁ´½Ó¾Í´´½¨Ò»¸öỊ̈߳¬¸ÃÏß³ÌÖ»¸ºÔð´¦Àí¸ÃÁ´½ÓÇëÇó´¦Àí¡£

¸ÃÍøÂçÏß³ÌÄ£ÐÍȱÏÝ£º

Ò»¸öÁ´½Ó´´½¨Ò»¸öỊ̈߳¬Èç¹û 10 Íò¸öÁ´½Ó£¬ÄÇô¾ÍÐèÒª 10 Íò¸öỊ̈߳¬ÏµÍ³¸ºÔð¡¢ÄÚ´æÏûºÄÒ²»áºÜ¶à

µ±Á´½Ó¹Ø±ÕµÄʱºò£¬Ïß³ÌÏú»Ù£¬Æµ·±µÄÏ̴߳´½¨ºÍÏûºÄ½øÒ»²½Ôö¼Óϵͳ¸ºÔØ

µäÐͰ¸Àý£º

mysql ĬÈÏ·½Ê½¡¢mongodb ͬ²½Ïß³ÌÄ£ÐÍÅäÖã¬ÊÊÓÃÓÚÇëÇó´¦Àí±È½ÏºÄʱµÄ³¡¾°£¬ÈçÊý¾Ý¿â·þÎñ

mongodb ĬÈÏÏß³ÌÄ£ÐÍ(¶¯Ì¬Ïß³ÌÄ£ÐÍ£ºµ¥¶ÓÁз½Ê½)

˵Ã÷£º

¸ÃÄ£ÐͰÑÒ»´ÎÇëÇóת»»Îª¶à¸öÈÎÎñ£ºmongodb Êý¾Ý¶Á²Ù×÷(ÍøÂç IO)¡¢db ²ãÊý¾Ý·ÃÎÊ(´ÅÅÌ IO)¡£

ÈÎÎñÈë¶Óµ½È«¾Ö¶ÓÁУ¬Ï̳߳ØÖеÄÏ̴߳ӶÓÁÐÖлñÈ¡ÈÎÎñÖ´ÐС£

ͬһ¸öÇëÇó·ÃÎʱ»²ð·ÖΪ¶à¸öÈÎÎñ£¬´ó²¿·ÖÇé¿öÏÂͨ¹ýµÝ¹éµ÷ÓÃͬһ¸öÇëÇóµÄ¶à¸öÈÎÎñ»áÓÉͬһ¸öÏ̴߳¦Àí£»¡£

µ±ÈÎÎñÌ«¶à£¬ÏµÍ³Ñ¹Á¦´óµÄʱºò£¬Ï̳߳ØÖÐÏß³ÌÊý¶¯Ì¬Ôö¼Ó£»µ±ÈÎÎñ¼õÉÙ£¬ÏµÍ³Ñ¹Á¦¼õÉÙµÄʱºò£¬Ï̳߳ØÖÐÏß³ÌÊý¶¯Ì¬¼õÉÙ£»

¸ÃÍøÂçÏß³ÌÄ£ÐÍȱÏÝ£º

Ï̳߳ػñÈ¡ÈÎÎñÖ´ÐУ¬ÓÐÈ«¾ÖËø¾ºÕù£¬ÕâÀï¾Í»á³ÉΪϵͳƿ¾±

µäÐͰ¸Àý£º

mongodb ¶¯Ì¬ adaptive Ïß³ÌÄ£ÐÍ£¬ÊÊÓÃÓÚÇëÇó´¦Àí±È½ÏºÄʱµÄ³¡¾°£¬ÈçÊý¾Ý¿â·þÎñ

mongodb ÓÅ»¯ºóÏß³ÌÄ£ÐÍ(¶¯Ì¬Ïß³ÌÄ£ÐÍ-¶à¶ÓÁз½Ê½)

˵Ã÷£º

°ÑÒ»¸öÈ«¾Ö¶ÓÁвð·ÖΪ¶à¸ö¶ÓÁУ¬ÈÎÎñÈë¶ÓµÄʱºò°´ÕÕ session Á´½Ó hash É¢Áе½¸÷×ԵĶÓÁУ¬¹¤×÷Ï̻߳ñÈ¡»ñÈ¡ÈÎÎñµÄʱºò£¬Í¬Àíͨ¹ýͬÑùµÄ hash Ë㷨ȥ¶ÔÓ¦µÄ¶ÓÁлñÈ¡ÈÎÎñ£¬Í¨¹ýÕâÖÖ·½Ê½¼õÉÙËø¾ºÕù£¬Í¬Ê±ÌáÉýÕûÌåÐÔÄÜ¡£

µäÐͰ¸Àý£º

mongodb Äں˶à¶ÓÁÐ adaptive Ïß³ÌÄ£ÐÍÓÅ»¯£¬Ìض¨³¡¾°ÐÔÄÜÓкܺõÄÌáÉý£¬ÊÊÓÃÓÚÇëÇó´¦Àí±È½ÏºÄʱµÄ³¡¾°£¬ÈçÊý¾Ý¿â·þÎñ¡£

·ÖÏíÖ÷ÌâÎ壺²¢ÐÐÇ¨ÒÆ-¼¯ÈºÀ©ÈÝËÙÂÊ N ±¶ÌáÉýÓÅ»¯Êµ¼ù

²¢ÐÐÇ¨ÒÆ-¼¯ÈºÀ©ÈÝËÙÂÊ N ±¶ÌáÉýÓÅ»¯Êµ¼ù(¸ß°æ±¾)

²¢ÐÐÇ¨ÒÆ¹ý³Ì£¨¼ÙÉèÐèÒªÇ¨ÒÆµÄ±íÃûΪ£ºtest£¬ ´Ó 3 ½ÚµãÀ©Èݵ½ 6 ½Úµã£©£º

ѡȡÐèÒªÇ¨ÒÆµÄ¿é£¬¼ÙÉèÔ´¼¯ÈºÓÐ M ·ÖƬ£¬À©ÈÝÐÂÔö N ·ÖƬ£¬ÔòÒ»°ãÇé¿öÐèÒªÇ¨ÒÆµÄ¿é=min(M,N)

Ç¨ÒÆ²½Ö裺1. configServer-master Ñ¡³öÐèÒªÇ¨ÒÆµÄ¿é£»2. config.locks ±íÖÐ id=test ÕâÌõ¼Ç¼ÉÏËø£»3.֪ͨÐèÒªÇ¨ÒÆµÄÔ´·ÖƬ¿ªÊ¼Ç¨ÒÆ£»4.Ç¨ÒÆÍê³ÉºóÑÓʱ 10s£¬Öظ´ 1-4 ²½ÖèʵÏÖ³ÖÐøÐÔ chunk Êý¾ÝÇ¨ÒÆ

²¢ÐÐÇ¨ÒÆ²½Ö裺

˵Ã÷£º¼ÙÉèÐèÒªÇ¨ÒÆµÄ±íÃûΪ test£¬ Ô´·ÖƬÊý M£¬À©ÈݺóÐÂÔö·ÖƬÊý N

configServer-master Ñ¡³öÐèÒªÇ¨ÒÆµÄ¿é£¬Ò»°ã S=min(M, N)£¬Ò²¾ÍÊÇ M ºÍ N ÖеÄ×îСֵ£»

config.locks ±íÖлñÈ¡ id=test ÕâÌõ¼Ç¼¶ÔÓ¦µÄ·Ö²¼Ê½Ëø£»

Ò첽֪ͨÐèÒªÇ¨ÒÆµÄ S ¸öÔ´·ÖƬ¿ªÊ¼Ç¨ÒÆ£»

µÈ´ý S ¸ö chunk Ç¨ÒÆÍê³É

Ç¨ÒÆÍê³ÉºóÑÓʱ 10 Ãë

ÖØ¸´²½Öè 1-5

²¢ÐÐÇ¨ÒÆÆ¿¾±£º

»ñÈ¡·Ö²¼Ê½ËøÊ±¼äÌ«³¤£¬Ô­Òò£ºconfig.locks ±íÖÐ id=test ±íµÄ·Ö²¼Ê½Ëø¿ÉÄܱ»ÆäËû²Ù×÷Ëø×¡

configServer Ò첽֪ͨԴ·ÖƬÖÐµÄ S ¸ö·ÖƬͬʱ¿ªÊ¼Ç¨ÒÆÊý¾Ýµ½Ä¿µÄ·ÖƬ£¬ÈÎÒ»¸ö chunk Ç¨ÒÆÂý»áÍÏÀÛÕû¸öÇ¨ÒÆ¹ý³Ì¡£

±¾Åú´ÎÈ·ÈÏÇ¨ÒÆÍê³Éºó£¬»¹ÐèÒªÑÓʱ 10s£»Ò»°ã SSD ·þÎñÆ÷£¬Ò»¸ö chunk Ç¨ÒÆ¶¼ÔÚ¼¸°Ù ms ÄÚÍê³É¡£

ÓÅ»¯·½·¨£º

±ÜÃâÆäËû²Ù×÷Õ¼Ó÷ֲ¼Ê½Ëø£¬ÀýÈç splite ÎÒÃÇ¿ÉÒÔ¹Ø±Õ autoSplite ¹¦ÄÜ£¬»òÕßµ÷´ó chunksize

configServer ²¢ÐÐÇ¨ÒÆ²»°Ñ¶à¸ö·ÖƬµÄ²¢ÐÐÇ¨ÒÆ·Åµ½Í¬Ò»¸öÂß¼­£¬¶øÊǷŵ½¸÷×ÔµÄÂß¼­¡£

ÑÓʱ·Åµ½¸÷×Ô·ÖÆ¬Ç¨ÒÆÂß¼­ÀïÃæ¿ØÖÆ£¬²»ÊÜÈ«¾ÖÑÓʱ¿ØÖÆ

·ÖƬÑÓʱ¿ÉÅäÖã¬Ö§³Öʵʱ¶¯Ì¬ÃüÁîÐе÷Õû

·ÖÏíÖ÷ÌâÁù:ÐÔÄÜÓÅ»¯°¸Àý

°¸Àý 1.ǧÒÚ¼¶Êý¾ÝÁ¿ mongodb ¼¯ÈºÐÔÄÜÊý±¶ÌáÉýÓÅ»¯Êµ¼ù-±³¾°

ÒµÎñ±³¾°£º

ºËÐÄÔªÊý¾Ý

Êý¾ÝÁ¿Ç§ÒÚ¼¶

ǰÆÚд¶à¶ÁÉÙ£¬ºóÆÚ¶Á¶àдÉÙ

¸ß·åÆÚ¶ÁдÁ÷Á¿°ÙÍò¼¶

ʱÑÓÃô¸Ð

Êý¾ÝÔö³¤¿ì£¬²»¶¨ÆÚÀ©ÈÝ

ͬ³Ç¶à»î¼¯Èº

ÓÅ»¯²ßÂÔ 1£º²¿Êð¼°Ê¹Ó÷½Ê½ÓÅ»¯

Ô¤·ÖƬ£¬Ð´Èë¸ºÔØ¾ùºâ¡£

WriteConcern£º{ w: "majority"}£¬Ð´´ó²¿·Ö½Úµã³É¹¦²Å·µ»Ø¿Í»§¶Ë OK

¶Áд·ÖÀ룬¶Á´ÓÓÅÏÈ¡£

enableMajorityReadConcern ¹Ø±Õ£¬ÓÐÐÔÄÜËðºÄ¡£

ÓÅ»¯²ßÂÔ 2£º´æ´¢ÒýÇæ cache ÌÔÌ­²ßÂÔÓÅ»¯

wiredtiger ´æ´¢ÒýÇæ cache ÌÔÌ­²ßÂÔÏà¹ØµÄ¼¸¸öÅäÖÃÈçÏÂ:

wiredtiger ´æ´¢ÒýÇæ cache ÌÔÌ­²ßÂÔÓÅ»¯ºóÅäÖÃ:

eviction_target: 75%£¬eviction_trigger£º97%£¬eviction_dirty_target: %3£¬eviction_dirty_trigger£º25%£¬evict.threads_min£º4£¬evict.threads_max£º16

×ÜÌå˼Ï룺evict Ï߳̾¡ÔçÌÔÌ­ÔàÒ³ page µ½´ÅÅÌ£¬Ôö¼Ó evict ÌÔÌ­Ïß³ÌÊý¼Ó¿ìÔàÊý¾ÝÌÔÌ­£¬±ÜÃâÓû§ÇëÇóÏ߳̽øÐÐÔàÊý¾ÝÌÔÌ­¡£

ÓÅ»¯²ßÂÔ 3£º´æ´¢ÒýÇæ checkpoint ÓÅ»¯

´æ´¢ÒýÇæ checkpoint ¼ì²âµã£¬°Ñµ±Ç°´æ´¢ÒýÇæÔàÊý¾ÝÈ«²¿¼Ç¼µ½´ÅÅÌ¡£´¥·¢Ìõ¼þÈçÏÂ:

¹Ì¶¨ÖÜÆÚ×öÒ»´Î checkpoint ¿ìÕÕ£¬Ä¬ÈÏ 60s

ÔöÁ¿ journal ÈÕÖ¾´ïµ½ 2G

ÉÙ²¿·ÖʵÀý´æÔÚÈçÏÂÏÖÏó£ºÒ»»á¶ù´ÅÅÌ IO ¼¸ºõ¿ÕÏÐ 0%£¬Ò»»á¶ù´ÅÅÌ IO ¶ÌÔÝÐÔ 100%¡£½øÐÐÈçÏÂÓÅ»¯ºó¿ÉÒÔ»º½â¸ÃÎÊÌâ:

checkpoint=(wait=30,log_size=1GB)

¸ÃÓÅ»¯×ÜÌå˼·£ºËõ¶Ì checkpoint ÖÜÆÚ£¬¼õÉÙ checkpoint ÆÚ¼ä»ýѹµÄÔàÊý¾Ý£¬»º½â´ÅÅÌ IO ¸ßÎÊÌâ¡£

ÒÅÁôÎÊÌ⣺SSD ÅÌÖ»Óм«ÉÙÊý½ÚµãÓиÃÎÊÌ⣬ԭÒòδ֪£¬ºóÐø¼ÌÐø¸ú×Ù¡£

Æ¿¾±µã£º

´úÀí»º´æËùÓпͻ§¶ËµÄÁ´½ÓÐÅÏ¢µ½ÄÚ´æÖУ¬²¢¶¨ÆÚ¸üе½ config ¿âµÄ system.sessions ±íÖС£

´óÁ÷Á¿´óÊý¾ÝÁ¿¼¯Èº¿Í»§¶ËÁ´½ÓÖڶ࣬´óÁ¿¸üРsessions ±í£¬×îÖÕÖ÷·ÖƬÐÔÄÜϽµÒýÆðÕû¸ö¼¯ÈºÐÔÄÜ˲¼äÊý±¶Ï½µ¡£

ÓÅ»¯·½·¨£º

config ¿âµÄ system.sessions ±íÆôÓÃ·ÖÆ¬¹¦ÄÜ¡£

mongos ¶¨ÆÚ¸üÐÂÓÅ»¯ÎªÉ¢Áе½²»Í¬Ê±¼äµã½øÐиüС£

ÓÅ»¯²ßÂÔ 4£º

sharding ¼¯Èº system.session ÓÅ»¯

¸ÃÓÅ»¯×ÜÌå˼·£º

֮ǰ´úÀí¼¯ÖÐʽ¸üе¥¸ö·ÖƬ£¬ÓÅ»¯ÎªÉ¢Áе½²»Í¬Ê±¼äµã¸üжà¸ö·ÖƬ¡£

¸ÃÓÅ»¯ºó system.sessions ±í¸üÐÂÒýÆðµÄ˲¼äÐÔÄÜÊý±¶½µµÍºÍ´óÁ¿ÂýÈÕÖ¾ÎÊÌâµÃµ½Á˽â¾ö¡£

ÓÅ»¯²ßÂÔ 5£ºtcmalloc ÄÚ´æÓÅ»¯

db.serverStatus().tcmalloc ¼à¿Ø·¢ÏÖ²¿·Ö mongod ʵÀý pageheap¡¢ÄÚ´æË鯬µÈÏûºÄ¹ý¸ß¡£Í¨¹ýϵͳµ÷Ó÷ÖÎöµÃ³ö£ºÄÚ´æË鯬ÂÊ¡¢pageheap ¹ý¸ß£¬»áÒýÆð·ÖÅäÄÚ´æ¹ý³Ì±äÂý£¬ÒýÆð¼¯ÈºÐÔÄÜÑÏÖØÏ½µ¡£

¸ÃÓÅ»¯×ÜÌå˼·£º

½èÖú gperftools Èý·½¿âÖÐ tcmalloc ÄÚ´æ¹ÜÀíÄ£¿é£¬ÊµÊ±¶¯Ì¬µ÷Õû tcmalloc ÄÚ´æ Release Rate£¬¾¡ÔçÊÍ·ÅÄڴ棬±ÜÃâ´æ´¢ÒýÇæ»ñÈ¡ cache ¹ý³Ì×èÈû±äÂý¡£

°¸Àý 2.ÍòÒÚ¼¶Êý¾ÝÁ¿ mongodb ¼¯ÈºÐÔÄÜÊý±¶ÌáÉýÓÅ»¯Êµ¼ù

ÒµÎñ±³¾°£º

¼¯Èº´æ´¢ÀëÏßÊý¾Ý

¼¯Èº×ÜÊý¾ÝÁ¿ÍòÒÚ¼¶

ǰÆÚÖ÷ҪΪÊý¾ÝдÈ룬ҪÇóÍòÒÚ¼¶Êý¾Ý¼¸ÖÜÄÚ¾¡¿ìÈ«²¿Ð´È뼯Ⱥ

ºóÆÚÖ÷ÒªÊǶÁÁ÷Á¿£¬µ¥´Î²éѯÊý¾ÝÌõÊý±È½Ï¶à£¬ÒªÇó¿ìËÙ·µ»Ø

ÿ¸ôÒ»¶¨Ê±¼äÖÜÆÚ(ÖÜΪµ¥Î»)»áÓгÖÐøÐÔ´óÁ¿Ð´Èë

ÓÅ»¯²ßÂÔ 1£º»ù´¡ÐÔÓÅ»¯

·ÖÏíÖ÷ÌâÁùÖжÁд·ÖÀë¡¢Ô¤·ÖƬ¡¢wiredtiger ´æ´¢ÒýÇæÓÅ»¯¡¢session ÓÅ»¯¡¢tcmalloc ʹÓÃÓÅ»¯µÈ»ù´¡ÐÔÓÅ»¯²ßÂÔͬÑùÊÊÓÃÓڸü¯Èº£¬¾ßÌåÏê¼û¡¶·ÖÏíÖ÷ÌâÁù:°ÙÍò¼¶¸ß²¢·¢¶Áд/ǧÒÚ¼¶Êý¾ÝÁ¿ mongodb ¼¯ÈºÐÔÄÜÊý±¶ÌáÉýÓÅ»¯Êµ¼ù¡·

ÓÅ»¯²ßÂÔ 2£º´æ´¢Ä£ÐÍÓÅ»¯Ç°×´¿ö

ÓÅ»¯Ç°Êý¾ÝÄ£ÐͽṹÈçÏ£º

1.{
2. "_id": ObjectId("5fh2ebd18856960dbac31abc"),
3. "characteristic": "xxxx",
4. "key1": "***",
5. ......
6. "keyn": "***",
7.}

ÒÔÉÏΪµ¥ÌõÊý¾ÝµÄÊý¾ÝÄ£ÐÍ£¬¸Ã¼¯Èº×ÜÊý¾ÝÁ¿ÍòÒÚ¼¶¡£

ÊýÊ®ÍòÌõÊý¾ÝÓµÓÐͬÑùµÄ characteristic ÌØÐÔ£¬×ÜÌØÐÔÊý×ܼÆÊý°ÙÍò¸ö¡£

Ò»´ÎÐÔ²éѯÊýÊ®¸ö characteristic ºÜÂý¡£

Æ¿¾±µã£º Ò»´ÎÐÔ²éѯÊýÊ®¸ö characteristic ÌØÕ÷Ìõ¼þµÄÊý¾Ý£¬Ã¿¸öÌØÕ÷ÓµÓÐÊý°ÙÍòÊý¾Ý£¬Ò»´Î²éѯ×ܼÆÇ§ÍòÐÐÊý¾Ý¡£ÓÉÓÚÊý¾ÝÁ¿ºÜ´ó£¬Ã¿ÐÐÊý¾Ý¼¸ºõÈ«ÔÚ´ÅÅÌ£¬Ò»´Î²éѯÐèҪǧÍò´Î IO ²Ù×÷£¬²éѯ³ÉΪƿ¾±¡£

ÓÅ»¯²ßÂÔ 2£ºµÚÒ»ÂÖÊý¾Ý´æ´¢Ä£ÐÍÓÅ»¯£º

1.{
2. "_id": ObjectId("5f29ebd18856960dbac31abc"),
3. "characteristic": "xxxx"
4. "group": [
5. {
6. "key1": "***"
7. ......
8. "keyn": "***"
9. }, #¸ÃcharacteristicϵÚÒ»ÌõÊý¾Ý
10. ......
11. {
12. "key1": "***"
13. ......
14. "keyn": "***"
15. } #¸ÃcharacteristicϵÚnÌõÊý¾Ý
16. ]
17.}

¸ÃÊý¾ÝÄ£ÐͰÑÏàͬ characteristic ÌØÐÔµÄÊýÊ®ÍòÊý¾ÝºÏ²¢µ½ÎªÒ»ÌõÊý¾Ý£¬¼õÉÙ´ÅÅÌ IO ²Ù×÷£¬Õû¸ö¶ÁÐÔÄÜ»áÓнü°Ù±¶ÌáÉý¡£

Æ¿¾±µã£º¸ÃÂÖÓÅ»¯½â¾öÁ˶ÁÆ¿¾±£¬È´ÒýÈëÁËеÄдƿ¾±¡£

ͨ¹ý $addToSet ·½Ê½Ïò group Êý×éÖÐÈ¥ÖØ×·¼ÓÊý¾Ý£¬Êý¾Ý³¤¶ÈÔ½À´Ô½³¤£¬´ÅÅÌ IO ѹÁ¦Ô½À´Ô½´ó¡¢Ð´ÐÔÄܳÉΪÐÂµÄÆ¿¾±¡£

ÓÅ»¯²ßÂÔ 2£ºµÚ¶þÂÖÊý¾Ý´æ´¢Ä£ÐÍÓÅ»¯£º

1.{
2. "_id": ObjectId("5f29ebd18856960dbac31abc"),
3. "characteristic": "xxxx",
4. "hashNum": num,
5. "group": [
6. {
7. "key1": "***",
8. ......
9. "keyn": "***",
10. }, #¸ÃcharacteristicϵÚÒ»ÌõÊý¾Ý
11. ......
12. {
13. "key1": "***",
14. ......
15. "keyn": "***",
16. } #¸ÃcharacteristicϵÚnÌõÊý¾Ý
17. ]
}

ÈçÉÏ£¬°Ñͬһ¸ö characteristic ÌØÕ÷µÄÊýÊ®Íò/Êý°ÙÍòÊý¾ÝÉ¢ÁÐΪ 500 ·Ý£¬ÕâÑùºÏ²¢ºó group Êý×éÖÐÒ²¾ÍÖ»°üº¬Êý°ÙÌõÊý¾ÝÐÅÏ¢£¬ÕâÑùºÏ²¢ºóµ¥ÌõÊý¾Ý¹ý´ó¡¢mongodb µ¥ÌõÊý¾Ý 64M ÏÞÖÆÎÊÌâ¡¢´ÅÅÌ IO ¹ý¸ßµÈÆ¿¾±ÎÊÌâ¶¼¿ÉÒԵõ½½â¾ö¡£

×ÜÌåÊý¾ÝÄ£ÐÍÓÅ»¯Ë¼Â·£ºÍ¨¹ýºÏÀíµÄÊý¾ÝºÏ²¢²Ù×÷À´¼õÉÙÍøÂç IO¡¢´ÅÅÌ IO¡¢mongodb Äں˴¦Àíʱ¼ä£¬×îÖÕʹ¶ÁºÍд´ïµ½Æ½ºâ¡£

·ÖÏíÖ÷ÌâÆß£º³É±¾½ÚÊ¡-¼Çij·þÎñǧÒÚ¼¶Êý¾ÝÇ¨ÒÆ mongodb£¬°Ų̀ SSD ·þÎñÆ÷½ÚÊ¡ÓÅ»¯Êµ¼ù

³É±¾½ÚÊ¡-ǧÒÚ¼¶Êý¾ÝÇ¨ÒÆ mongodb£¬°Ų̀ SSD ·þÎñÆ÷½ÚÊ¡ÓÅ»¯Êµ¼ù

Ç¨ÒÆ±³¾°£º

ÐèÒªÇ¨ÒÆµÄÊý¾ÝÁ¿ÊýǧÒÚ¼¶

Ô´¼¯Èº´ÅÅ̽ôÕÅ£¬ÒµÎñдÈë¿ì£¬ÐèÒª¿ìËÙÍê³ÉÊý¾ÝÇ¨ÒÆ

Ô´¼¯ÈºÊý¾Ý´æ´¢ÓÚ¸ß io ssd ·þÎñÆ÷

ÒµÎñ¶ÔÐÔÄÜû̫¸ßÒªÇó

Ä¿µÄ mongodb ¼¯Èº²ÉÓÃµÍ io ´óÈÝÁ¿ sata ÅÌ

Ç¨ÒÆÄѵ㣺

ÈçºÎ¿ìËÙÍê³ÉÊý¾ÝÇ¨ÒÆ£¿

Æ¿¾±µã£º

ÓÉÓÚÄ¿µÄ¼¯ÈºÎªµÍ io ´óÈÝÁ¿ sata ÅÌ£¬Ç¨ÒÆÌ«Âý£¬Ô´¼¯Èº´ÅÅÌÓÐдÂú·çÏÕ

ÓÅ»¯²ßÂÔ£º

ͬ²½Êý¾Ýµ½´óÈÝÁ¿ SSD ÖÐת¼¯Èº

¿½±´ÖÐת¼¯ÈºÊý¾Ýµ½Ä¿±ê´óÈÝÁ¿ SATA ÅÌ·þÎñÆ÷

¼ÓÔØÊý¾Ý

³É±¾½ÚÊ¡£º

mongodb ĬÈ쵀 snappy ѹËõË㷨ѹËõ±ÈԼΪ 2.2-3.5 ±¶

zlib ѹËõË㷨ѹËõ±ÈԼΪ 4.5-7.5 ±¶(±¾´ÎÇ¨ÒÆ²ÉÓà zlib ¸ßѹËõËã·¨)

ǧÒÚ¼¶Êý¾ÝÇ¨ÒÆ mongodb ÊÕÒæ£º

Ô´¼¯Èº´ÅÅÌÏûºÄ:Ä¿µÄ¼¯Èº´ÅÅÌÏûºÄ= 8:1(¼´Ê¹Ä¿µÄ mongo ¼¯ÈºÒ²Óà SSD ·þÎñÆ÷£¬³É±¾Ò²¿ÉÒÔ½ÚÊ¡Æß±¶)

Ô´¼¯ÈºÎïÀí×ÊÔ´£º°Ų̀ SSD ·þÎñÆ÷

Ä¿µÄ mongodb ¼¯Èº×ÊÔ´ÏûºÄ£º6 ̨ SATA ÅÌ·þÎñÆ÷

·ÖÏíÖ÷Ìâ°Ë£ºÕ¹Íû-ÈçºÎʵÏÖ mongodb Óë SQL ÈÚºÏ

ÎÊÌâ±³¾°£º

Ëæ×Å mongodb-4.2 °æ±¾ÖжԷֲ¼Ê½ÊÂÎñµÄÖ§³Ö£¬ÒÔ¼° mongodb-4.4 °æ±¾²úÆ·¹æ»®Â·Ïßͼ¿ÉÒÔ¿´³ö£¬mongodb ³ýÁ˱£³Ö nosql ÌØÐÔÍ⣬»¹ÔÚ³¯×Å newSql ·½ÏòǰÐС£µ«ÊÇÔÚʵ¼ÊÒµÎñ½ÓÈëÖз¢ÏÖÒÔÏÂÏÖÏó:

¿ª·¢Ï°¹ßÁË SQL£¬×ª mongodb Óï·¨¸÷ÖÖ²»Ï°¹ß¡£

ÔËÓªºÍÊý¾Ý·ÖÎö¸ÚλÈËÔ±Ö»»áд SQL£¬²»»á mongo Óï¾ä¡£

ÎÒÃÇÄÜ×öʲô£¿

mongos ´úÀíÔö¼Ó mongodb ЭÒéºÍ SQL ת»»Ö§³Ö£¬ÓÃ×îС¿ª·¢³É±¾Âú×ãÒµÎñ SQL ÐèÇó¡£

5%-10%×óÓÒµÄ SQL ЭÒéÖ§³Ö£¬Âú×ã 90%µÄÓû§ÐèÇó¡£

·ÖÏíÖ÷Ìâ¾Å£ºÆäËû-ÄÇЩÄêÎÒÃDzȹýµÄ¿Ó

¡°ÄÇЩÄêÎÒÃDzȹýµÄ¿Ó¡± £º

ʵ¼ÊÒµÎñ½ÓÈë mongodb Êý¾Ý¿â¹ý³ÌÖУ¬ÎÒÃDzȹýºÜ¶à¿Ó£¬°üÀ¨ÒµÎñ²»ºÏÀíʹÓᢲ»ºÏÀíÔËά¡¢¼¯Èº²»ºÏÀíÅäÖá¢mongodb Äں˲ȿӡ¢Îó²Ù×÷µÈ£¬ÉõÖÁ³öÏÖ¹ýͬһ¸öºËÐÄÒµÎñ¼¸´Î¶¶¶¯¡£

±¾´Î·ÖÏíÖм¯ÈºÓÅ»¯Ö»ÁоÙÁËÖ÷ÒªµÄÓÅ»¯¹ý³Ì£¬Êµ¼ÊÓÅ»¯¹ý³Ì±È±¾´Î·ÖÏíÄÚÈݸü¼Ó¸´ÔÓ¡£

 

 

   
2878 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
InfluxDB¸ÅÄîºÍ»ù±¾²Ù×÷
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾ÝдÈë
Éî¶ÈÂþ̸Êý¾Ýϵͳ¼Ü¹¹¡ª¡ªLambda architecture
Lambda¼Ü¹¹Êµ¼ù
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾Ý¶ÁÈ¡
×îпγÌ
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯¡¢¼Ü¹¹Éè¼ÆºÍÔËÐÐά»¤
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
NoSQLÊý¾Ý¿â£¨Ô­Àí¡¢Ó¦Óá¢×î¼Ñʵ¼ù£©
ÆóÒµ¼¶Hadoop´óÊý¾Ý´¦Àí×î¼Ñʵ¼ù
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯×î¼Ñʵ¼ù
³É¹¦°¸Àý
ij½ðÈÚ¹«Ë¾ Mysql¼¯ÈºÓëÐÔÄÜÓÅ»¯
±±¾© ²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
ÖªÃûijÐÅϢͨÐŹ«Ë¾ NoSQL»º´æÊý¾Ý¿â¼¼Êõ
±±¾© oracleÊý¾Ý¿âSQLÓÅ»¯
ÖйúÒÆ¶¯ IaaSÔÆÆ½Ì¨-Ö÷Á÷Êý¾Ý¿â¼°´æ´¢¼¼Êõ