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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ϊʲô JVM ÐèÒª GC
 
×÷ÕߣºÖÜÃ÷Ò« À´Ô´£ºÂó¿ËÖÜ ·¢²¼ÓÚ 2017-3-27
  3349  次浏览      27
 

ÉçÇøÄÚÓÐÈË·¢ÆðÁËÒ»¸öÌÖÂÛ£¬¹ØÓÚJVMÊÇ·ñÒ»¶¨ÐèÒªGC£¿ËûÃÇÈÏΪӦÓóÌÐòµÄ»ØÊÕÄ¿±êÊǹ¹½¨Ò»¸ö½öÓÃÀ´´¦ÀíÄÚ´æ·ÖÅ䣬¶ø²»Ö´ÐÐÈκÎÕæÕýµÄÄÚ´æ»ØÊÕ²Ù×÷µÄ GC¡£¼´½öµ±¿ÉÓÃµÄ Java ¶ÑºÄ¾¡µÄʱºò£¬²Å½øÐÐ˳ÐòµÄ JVM Í£¶Ù²Ù×÷¡£

Ê×ÏÈÐèÒªÀí½âΪʲôÐèÒªGC¡£Ëæ×ÅÓ¦ÓóÌÐòËùÓ¦¶ÔµÄÒµÎñÔ½À´Ô½ÅӴ󡢸´ÔÓ£¬Óû§Ô½À´Ô½¶à£¬Ã»ÓÐGC¾Í²»Äܱ£Ö¤Ó¦ÓóÌÐòÕý³£½øÐС£¶ø¾­³£Ôì³ÉSTWµÄGCÓÖ¸ú²»ÉÏʵ¼ÊµÄÐèÇó£¬ËùÒԲŻ᲻¶ÏµØ³¢ÊÔ¶ÔGC½øÐÐÓÅ»¯¡£

ÉçÇøµÄÐèÇóÊǾ¡Á¿¼õÉÙ¶ÔÓ¦ÓóÌÐòµÄÕý³£Ö´ÐиÉÈÅ£¬ÕâÒ²ÊÇÒµ½çÄ¿±ê¡£OracleÔÚJDK7ʱ·¢²¼G1 GCµÄÄ¿µÄÊÇΪÁ˼õÉÙÓ¦ÓóÌÐòÍ£¶Ù·¢ÉúµÄ¿ÉÄÜÐÔ£¬ÈÃÎÒÃÇͨ¹ý±¾ÎÄÀ´Á˽âG1 GCËù×öµÄ¹¤×÷¡£

JVM·¢Õ¹ÀúÊ·¼ò½é

»¹¼ÇµÃ»úÆ÷èÂð£¿ËûºÍ¿µ·òÓÐÒ»ÕÅÊé×À£¬Êé×ÀµÄ³éÌëÆäʵÊÇÒ»¸öʱ¿Õ´©ËóͨµÀ£¬ÈÃÎÒÃDzÙ×÷»úÆ÷èµÄʱ¿Õ»úÆ÷£¬»Øµ½1998Äê¡£ÄÇÄêµÄ12ÔÂ8ÈÕ£¬µÚ¶þ´úJavaƽ̨µÄÆóÒµ°æJ2EEÕýʽ¶ÔÍâ·¢²¼¡£ÎªÁËÅäºÏÆóÒµ¼¶Ó¦ÓÃÂ䵨£¬1999Äê4ÔÂ27ÈÕ£¬Java³ÌÐòµÄÎę̀¡ªJava HotSpot Virtual Machine£¨ÒÔϼò³ÆHotSpot £©Õýʽ¶ÔÍâ·¢²¼£¬²¢´ÓÕâÖ®ºó·¢²¼µÄJDK1.3°æ±¾¿ªÊ¼£¬HotSpot³ÉΪSun JDKµÄĬÈÏÐéÄâ»ú¡£

GC·¢Õ¹ÀúÊ·¼ò½é

1999ÄêËæJDK1.3.1Ò»ÆðÀ´µÄÊÇ´®Ðз½Ê½µÄSerial GC £¬ËüÊǵÚÒ»¿îGC£¬²¢ÇÒÕâÖ»ÊÇÆðµã¡£´Ëºó£¬JDK1.4ºÍJ2SE1.3Ïà¼Ì·¢²¼¡£2002Äê2ÔÂ26ÈÕ£¬J2SE1.4·¢²¼£¬Parallel GC ºÍConcurrent Mark Sweep £¨CMS£©GC¸úËæJDK1.4.2Ò»Æð·¢²¼£¬²¢ÇÒParallel GCÔÚJDK6Ö®ºó³ÉΪHotSpotĬÈÏGC¡£

HotSpotÓÐÕâô¶àµÄÀ¬»ø»ØÊÕÆ÷£¬ÄÇôÈç¹ûÓÐÈËÎÊ£¬Serial GC¡¢Parallel GC¡¢Concurrent Mark Sweep GCÕâÈý¸öGCÓÐʲô²»Í¬ÄØ£¿Çë¼ÇסÒÔÏ¿ÚÁ

Èç¹ûÄãÏëÒª×îС»¯µØÊ¹ÓÃÄÚ´æºÍ²¢ÐпªÏú£¬ÇëÑ¡Serial GC£»

Èç¹ûÄãÏëÒª×î´ó»¯Ó¦ÓóÌÐòµÄÍÌÍÂÁ¿£¬ÇëÑ¡Parallel GC£»

Èç¹ûÄãÏëÒª×îС»¯GCµÄÖжϻòÍ£¶Ùʱ¼ä£¬ÇëÑ¡CMS GC¡£

ÄÇôÎÊÌâÀ´ÁË£¬¼ÈÈ»ÎÒÃÇÒѾ­ÓÐÁËÉÏÃæÈý¸öÇ¿´óµÄGC£¬ÎªÊ²Ã´»¹Òª·¢²¼Garbage First£¨G1£©GC£¿Ô­Òò¾ÍÔÚÓÚÓ¦ÓóÌÐòËùÓ¦¶ÔµÄÒµÎñÔ½À´Ô½ÅӴ󡢸´ÔÓ£¬Óû§Ô½À´Ô½¶à£¬Ã»ÓÐGC¾Í²»Äܱ£Ö¤Ó¦ÓóÌÐòÕý³£½øÐУ¬¶ø¾­³£Ôì³ÉSTWµÄGCÓÖ¸ú²»ÉÏʵ¼ÊµÄÐèÇó£¬ËùÒԲŻ᲻¶ÏµØ³¢ÊÔ¶ÔGC½øÐÐÓÅ»¯¡£

ΪʲôÃû×Ö½Ð×öGarbage First£¨G1£©ÄØ£¿

ÒòΪG1ÊÇÒ»¸ö²¢ÐлØÊÕÆ÷£¬Ëü°Ñ¶ÑÄÚ´æ·Ö¸îΪºÜ¶à²»Ïà¹ØµÄÇø¼ä£¨Region£©£¬Ã¿¸öÇø¼ä¿ÉÒÔÊôÓÚÀÏÄê´ú»òÕßÄêÇá´ú£¬²¢ÇÒÿ¸öÄêÁä´úÇø¼ä¿ÉÒÔÊÇÎïÀíÉϲ»Á¬ÐøµÄ¡£

ÀÏÄê´úÇø¼äÕâ¸öÉè¼ÆÀíÄî±¾ÉíÊÇΪÁË·þÎñÓÚ²¢Ðкǫ́Ị̈߳¬ÕâЩÏ̵߳ÄÖ÷Òª¹¤×÷ÊÇѰÕÒδ±»ÒýÓõĶÔÏó¡£¶øÕâÑù¾Í»á²úÉúÒ»ÖÖÏÖÏ󣬼´Ä³Ð©Çø¼äµÄÀ¬»ø£¨Î´±»ÒýÓöÔÏ󣩶àÓÚÆäËûµÄÇø¼ä¡£

À¬»ø»ØÊÕʱʵÔò¶¼ÊÇÐèҪͣÏÂÓ¦ÓóÌÐòµÄ£¬²»È»¾ÍûÓа취·ÀÖÎÓ¦ÓóÌÐòµÄ¸ÉÈÅ £¬È»ºóG1 GC¿ÉÒÔ¼¯Öо«Á¦ÔÚÀ¬»ø×î¶àµÄÇø¼äÉÏ£¬²¢ÇÒÖ»»á·ÑÒ»µãµãʱ¼ä¾Í¿ÉÒÔÇå¿ÕÕâÐ©Çø¼äÀïµÄÀ¬»ø£¬ÌÚ³öÍêÈ«¿ÕÏеÄÇø¼ä¡£

ÈÆÀ´ÈÆÈ¥ÖÕÓÚÃ÷°×ÁË£¬ÓÉÓÚÕâÖÖ·½Ê½µÄ²àÖØµãÔÚÓÚ´¦ÀíÀ¬»ø×î¶àµÄÇø¼ä£¬ËùÒÔÎÒÃǸøG1Ò»¸öÃû×Ö£ºÀ¬»øÓÅÏÈ£¨Garbage First£©¡£

G1 GC»ù±¾Ë¼Ïë

G1 GCÊÇÒ»¸öѹËõÊÕ¼¯Æ÷£¬Ëü»ùÓÚ»ØÊÕ×î´óÁ¿µÄÀ¬»øÔ­Àí½øÐÐÉè¼Æ¡£G1 GCÀûÓõÝÔö¡¢²¢ÐС¢¶ÀÕ¼ÔÝÍ£ÕâЩÊôÐÔ£¬Í¨¹ý¿½±´·½Ê½Íê³ÉѹËõÄ¿±ê¡£´ËÍ⣬ËüÒ²½èÖú²¢ÐС¢¶à½×¶Î²¢Ðбê¼ÇÕâЩ·½Ê½À´°ïÖú¼õÉÙ±ê¼Ç¡¢Öرê¼Ç¡¢Çå³ýÔÝÍ£µÄÍ£¶Ùʱ¼ä£¬ÈÃÍ£¶Ùʱ¼ä×îС»¯ÊÇËüµÄÉè¼ÆÄ¿±êÖ®Ò»¡£

G1»ØÊÕÆ÷ÊÇÔÚJDK1.7ÖÐÕýʽͶÈëʹÓõÄȫеÄÀ¬»ø»ØÊÕÆ÷£¬´Ó³¤ÆÚÄ¿±êÀ´¿´£¬ËüÊÇΪÁËÈ¡´úCMS »ØÊÕÆ÷¡£G1»ØÊÕÆ÷ÓµÓжÀÌØµÄÀ¬»ø»ØÊÕ²ßÂÔ£¬ÕâºÍ֮ǰÌáµ½µÄ»ØÊÕÆ÷½ØÈ»²»Í¬¡£´Ó·Ö´úÉÏ¿´£¬G1ÒÀÈ»ÊôÓÚ·Ö´úÐÍÀ¬»ø»ØÊÕÆ÷£¬Ëü»áÇø·ÖÄêÇá´úºÍÀÏÄê´ú£¬ÄêÇá´úÒÀÈ»ÓÐEdenÇøºÍSurvivorÇø£¬µ«´Ó¶ÑµÄ½á¹¹ÉÏ¿´£¬Ëü²¢²»ÒªÇóÕû¸öEdenÇø¡¢ÄêÇá´ú»òÕßÀÏÄê´úÔÚÎïÀíÉ϶¼ÊÇÁ¬Ðø¡£

×ÛºÏÀ´Ëµ£¬G1ʹÓÃÁËȫеķÖÇøËã·¨£¬ÆäÌØµãÈçÏÂËùʾ£º

²¢ÐÐÐÔ£ºG1ÔÚ»ØÊÕÆÚ¼ä£¬¿ÉÒÔÓжà¸öGCÏß³Ìͬʱ¹¤×÷£¬ÓÐЧÀûÓöàºË¼ÆËãÄÜÁ¦£»

²¢·¢ÐÔ£ºG1ÓµÓÐÓëÓ¦ÓóÌÐò½»ÌæÖ´ÐеÄÄÜÁ¦£¬²¿·Ö¹¤×÷¿ÉÒÔºÍÓ¦ÓóÌÐòͬʱִÐУ¬Òò´Ë£¬Ò»°ãÀ´Ëµ£¬²»»áÔÚÕû¸ö»ØÊս׶η¢ÉúÍêÈ«×èÈûÓ¦ÓóÌÐòµÄÇé¿ö£»

·Ö´úGC£ºG1ÒÀÈ»ÊÇÒ»¸ö·Ö´úÊÕ¼¯Æ÷£¬µ«ÊǺÍ֮ǰµÄ¸÷Àà»ØÊÕÆ÷²»Í¬£¬Ëüͬʱ¼æ¹ËÄêÇá´úºÍÀÏÄê´ú¡£¶Ô±ÈÆäËû»ØÊÕÆ÷£¬»òÕß¹¤×÷ÔÚÄêÇá´ú£¬»òÕß¹¤×÷ÔÚÀÏÄê´ú£»

¿Õ¼äÕûÀí£ºG1ÔÚ»ØÊÕ¹ý³ÌÖУ¬»á½øÐÐÊʵ±µÄ¶ÔÏóÒÆ¶¯£¬²»ÏñCMSÖ»ÊǼòµ¥µØ±ê¼ÇÇåÀí¶ÔÏó¡£ÔÚÈô¸É´ÎGCºó£¬CMS±ØÐë½øÐÐÒ»´ÎË鯬ÕûÀí¡£¶øG1²»Í¬£¬Ëüÿ´Î»ØÊÕ¶¼»áÓÐЧµØ¸´ÖƶÔÏ󣬼õÉÙ¿Õ¼äË鯬£¬½ø¶øÌáÉýÄÚ²¿Ñ­»·ËÙ¶È¡£

¿ÉÔ¤¼ûÐÔ£ºÓÉÓÚ·ÖÇøµÄÔ­Òò£¬G1¿ÉÒÔֻѡȡ²¿·ÖÇøÓò½øÐÐÄÚ´æ»ØÊÕ£¬ÕâÑùËõСÁË»ØÊյķ¶Î§£¬Òò´Ë¶ÔÓÚÈ«¾ÖÍ£¶ÙÇé¿öµÄ·¢ÉúÒ²Äܵõ½½ÏºÃµÄ¿ØÖÆ¡£

Ëæ×ÅG1 GCµÄ³öÏÖ£¬GC´Ó´«Í³µÄÁ¬Ðø¶ÑÄÚ´æ²¼¾ÖÉè¼Æ£¬Öð½¥×ßÏò²»Á¬ÐøÄÚ´æ¿é£¬ÕâÊÇͨ¹ýÒýÈëRegion¸ÅÄîʵÏÖ£¬Ò²¾ÍÊÇ˵£¬ÓÉÒ»¶Ñ²»Á¬ÐøµÄRegion×é³ÉÁ˶ÑÄÚ´æ¡£ÆäʵҲ²»ÄÜ˵ÊDz»Á¬ÐøµÄ£¬Ö»ÊÇËü´Ó´«Í³µÄÎïÀíÁ¬ÐøÖ𽥸ıäΪÂß¼­ÉϵÄÁ¬Ðø£¬ÕâÊÇͨ¹ýRegionµÄ¶¯Ì¬·ÖÅ䷽ʽʵÏֵģ¬ÎÒÃÇ¿ÉÒÔ°ÑÒ»¸öRegion·ÖÅ䏸Eden¡¢Survivor¡¢ÀÏÄê´ú¡¢´ó¶ÔÏóÇø¼ä¡¢¿ÕÏÐÇø¼äµÈµÄÈÎÒâÒ»¸ö£¬¶ø²»Êǹ̶¨ËüµÄ×÷Óã¬ÒòΪԽÊǹ̶¨£¬Ô½ÊÇ´ô°å¡£

G1 GCÀ¬»ø»ØÊÕ»úÖÆ

ͨ¹ýÊг¡µÄÁ¦Á¿£¬²»¶ÏÌÔÌ­¾ÉµÄÐÐÒµ£¬°ÑÓÐÏÞµÄ×ÊÔ´ÈøøÄÇЩ¾ºÕùÁ¦¸üÇ¿¡¢ÀûÈóÂʸü¸ßµÄÆóÒµ¡£ÀàËÆµØ£¬¹è¹ÈÒ²ÔÚ²»¶ÏÌÔÌ­¹ýʱµÄÈËÔ±£¬´ÓÈ«ÊÀ½çÎüÊÕÐÂÏÊѪҺ¡£¾­¹ý°ë¸ö¶àÊÀ¼ÍµÄ·¢Õ¹£¬ÔÚ¹è¹ÈµØÇø±ãÐγÉÖ»ÓÐ׿Խ²ÅÄÜÉú´æµÄÎÄ»¯¡£±¾×ÅÕâÑùµÄÀíÄGC³Ðµ£ÁËÌÔÌ­À¬»ø¡¢±£´æÓÅÁ¼×ʲúµÄÈÎÎñ¡£

G1 GCÔÚ»ØÊÕÔÝÍ£½×¶Î»á»ØÊÕ×î´óÁ¿µÄ¶ÑÄÚÇø¼ä£¨Region£©£¬ÕâÊÇËüµÄÉè¼ÆÄ¿±ê£¬Í¨¹ý»ØÊÕÇø¼ä´ïµ½»ØÊÕÀ¬»øµÄÄ¿µÄ¡£ÕâÀïÖ»ÓÐÒ»¸öÀýÍâÇé¿ö£¬Õâ¸öÀýÍâ·¢ÉúÔÚ²¢Ðбê¼Ç½×¶ÎµÄÇå³ý£¨Cleanup£©²½Ö裬Èç¹ûG1 GCÔÚÇå³ý²½Öè·¢ÏÖËùÓеÄÇø¼ä¶¼ÊÇÓɿɻØÊÕÀ¬»ø×é³ÉµÄ£¬ÄÇôËü»áÁ¢¼´»ØÊÕÕâÐ©Çø¼ä£¬²¢ÇÒ½«ÕâÐ©Çø¼ä²åÈëµ½Ò»¸ö»ùÓÚLinkedListʵÏֵĿÕÏÐÇø¼ä¶ÓÁÐÀÒÔ´ýºóÓá£Òò´Ë£¬ÊÍ·ÅÕâÐ©Çø¼ä²¢²»ÐèÒªµÈ´ýÏÂÒ»¸öÀ¬»ø»ØÊÕÖжϣ¬ËüÊÇʵʱִÐе쬼´Çå³ý½×¶ÎÆðµ½ÁË×îºóÒ»µÀ°Ñ¿Ø×÷Óá£ÕâÊÇG1 GCºÍ֮ǰµÄ¼¸´úGCµÄÒ»´ó²î±ð¡£

G1 GCµÄÀ¬»ø»ØÊÕÑ­»·ÓÉÈý¸öÖ÷ÒªÀàÐÍ×é³É£º

ÄêÇá´úÑ­»·

¶à²½Öè²¢Ðбê¼ÇÑ­»·

»ìºÏÊÕ¼¯Ñ­»·

Full GC

ÔÚÄêÇá´ú»ØÊÕÆÚ£¬G1 GCÔÝÍ£Ó¦ÓóÌÐòỊ̈߳¬È»ºó´ÓÄêÇá´úÇø¼äÒÆ¶¯´æ»î¶ÔÏóµ½SurvivorÇø¼ä»òÕßÀÏÄêÇø¼ä£¬Ò²ÓпÉÄÜÊÇÁ½¸öÇø¼ä¶¼»áÉæ¼°¡£¶ÔÓÚÒ»¸ö»ìºÏ»ØÊÕÆÚ£¬G1 GC´ÓÀÏÄêÇø¼äÒÆ¶¯´æ»î¶ÔÏ󵽿ÕÏÐÇø¼ä£¬ÕâЩ¿ÕÏÐÇø¼äÒ²¾Í³ÉΪÁËÀÏÄê´úµÄÒ»²¿·Ö¡£

G1µÄÇø¼äÉè¼ÆÁé¸Ð

ΪÁ˼ӿìGCµÄ»ØÊÕËÙ¶È£¬HotSpotµÄÀú´úGC¶¼ÓÐ×Ô¼ºµÄ²»Í¬µÄÉè¼Æ·½°¸£¬Çø¼ä¸ÅÄîÔÚÈí¼þÉè¼Æ¡¢¼Ü¹¹ÁìÓò²¢²»ÊÇÒ»¸öÐÂÃû´Ê£¬¹ØÏµÐÍÊý¾Ý¿â¡¢ÁÐʽÊý¾Ý¿â×îÏÈʹÓÃÕâ¸ö¸ÅÄîÌáÉýÊý¾Ý´æ¡¢È¡ËÙ¶È£¬Èí¼þ¼Ü¹¹Éè¼ÆÊ±Ò²¹ã·ºÊ¹ÓÃÕâÑùµÄ·ÖÇø¸ÅÄî¼Ó¿ìÊý¾Ý½»»»¡¢¼ÆËã¡£

Ϊʲô»áÓÐÇø¼äÕâ¸öÉè¼ÆÏë·¨£¿´ó¼ÒÒ»¶¨¿´¹ýµçÊӾ硶´óÕ¬ÃÅ¡·°É£¿´óÕ¬ÃÅËùÃèÊöµÄ±±¾©ÖªÃûÒ½ÊõÊÀ¼Ò°×¼ÒÊÇÕâ±¾µçÊÓ¾çµÄÖ÷½Ç¡£°×¼ÒÓÐÈýÐֵܣ¬Ã»ÓзּÒ֮ǰ£¬ÓÉÀÏÒ¯×ÓÒ»ÊÖÕÆ¹ÜÈ«¼Ò£¬ÀÏÒ¯×Ó¿´ËÆÊǸö¾«Ã÷ÈË£¬ÊµÖÊÊǸöºýÍ¿µÄÈË£¬·ñÔòÒ²²»»áŪµÃºóÀ´°×¼Ò¼ÒÆÆÈËÉ¢¡£°×¼ÒµÄÈýÐÖµÜÔÚûÓзּÒ֮ǰ£¬ÀÏ´óÒ»¼ÒºÜÀÏʵ£¬À϶þºÜųÈõ£¬ÐÔ¸ñÏñÅ®ÈË£¬ËäÈ»¶Ç×ÓÀïÃ÷°×µÀÀí£¬µ«ÊDz»¸Ò³öÀ´×öÖ÷¡£ÀÏÈýÄêÇáʱ»ìµ°Ò»¸ö£¬Ã¿´Î³öÍâ²É¹ºÒ©²Ä¶¼ÒªË½Í̼ÒÀïµÄÒøÁ½£¬Ôì³ÉÕËÄ¿»ìÂÒ¡£ÀÏ´óΪÁ˼ÒÍ¥ºÍÄÀ£¬Ò»Ö±ÔÚ˽ϵ¹ÌùÒøÁ½£¬ÈÃÀÏÒ¯×ÓÄܹ»¿´µ½Ò»±¾Õý³£µÄÕËÄ¿¡£ÕâÑùµÄÒ»¼Ò×Ó¾ÛÔÚÒ»Æð£¬³ÙÔç¼ÒÍ¥ÄÚ²¿»á³öÏÖÎÊÌ⣬µ¹²»Èç·Ö¼Ò£¬ÄãÒ²²»ÓÃËã¼Æ¼ÒÀïµÄÇ®ÁË£¬·Ö¸øÄ㣬·Ö¸øÄãµÄÇ®Óб¾ÊÂÊØ×¡£¬Ã»±¾Ê¾ÍÒ»Ö±Þ×¾ÝÏÂÈ¥°É¡£Õâ¾ÍÊÇ×îԭʼµÄ·ÖÇø£¨Region£©¸ÅÄî¡£

ÎÒÃǻص½¼¼Êõ£¬¿´¿´HBaseµÄRegionServerÉè¼Æ·½Ê½¡£ÔÚHBaseÄÚ²¿£¬ËùÓеÄÓû§Êý¾ÝÒÔ¼°ÔªÊý¾ÝµÄÇëÇó£¬ÔÚ¾­¹ýRegionµÄ¶¨Î»£¬×îÖÕ»áÂäÔÚRegionServerÉÏ£¬²¢ÓÉRegionServerʵÏÖÊý¾ÝµÄ¶Áд²Ù×÷¡£RegionServerÊÇHBase¼¯ÈºÔËÐÐÔÚÿ¸ö¹¤×÷½ÚµãÉϵķþÎñ¡£ËüÊÇÕû¸öHBaseϵͳµÄ¹Ø¼üËùÔÚ£¬Ò»·½ÃæËüά»¤ÁËRegionµÄ״̬£¬ÌṩÁ˶ÔÓÚRegionµÄ¹ÜÀíºÍ·þÎñ£»ÁíÒ»·½Ã棬ËüÓëMaster½»»¥£¬ÉÏ´«RegionµÄ¸ºÔØÐÅÏ¢ÉÏ´«£¬²ÎÓëMasterµÄ·Ö²¼Ê½Ð­µ÷¹ÜÀí¡£

HRegionServerÓëHMasterÒÔ¼°ClientÖ®¼ä²ÉÓÃRPCЭÒé½øÐÐͨÐÅ¡£HRegionServerÏòHMaster¶¨ÆÚ»ã±¨½ÚµãµÄ¸ºÔØ×´¿ö£¬°üÀ¨RSÄÚ´æÊ¹ÓÃ״̬¡¢ÔÚÏß״̬µÄRegionµÈÐÅÏ¢¡£Ôڸùý³ÌÖÐHRegionServer°çÑÝÁËRPC¿Í»§¶ËµÄ½ÇÉ«£¬¶øHMaster°çÑÝÁËRPC·þÎñÆ÷¶ËµÄ½ÇÉ«¡£HRegionServerÄÚÖõÄRpcServerʵÏÖÁËÊý¾Ý¸üС¢¶ÁÈ¡¡¢É¾³ýµÄ²Ù×÷£¬ÒÔ¼°RegionÉæ¼°µ½Flush¡¢Compaction¡¢Open¡¢Close¡¢LoadÎļþµÈ¹¦ÄÜÐÔ²Ù×÷¡£

RegionÊÇHBaseÊý¾Ý´æ´¢ºÍ¹ÜÀíµÄ»ù±¾µ¥Î»¡£HBaseʹÓÃRowKey½«±íˮƽÇиî³É¶à¸öHRegion£¬´ÓHMasterµÄ½Ç¶È£¬Ã¿¸öHRegion¶¼¼Í¼ÁËËüµÄStartKeyºÍEndKey£¨µÚÒ»¸öHRegionµÄStartKeyΪ¿Õ£¬×îºóÒ»¸öHRegionµÄEndKeyΪ¿Õ£©£¬ÓÉÓÚRowKeyÊÇÅÅÐòµÄ£¬Òò¶øClient¿ÉÒÔͨ¹ýHMaster¿ìËٵĶ¨Î»Ã¿¸öRowKeyÔÚÄĸöHRegionÖС£HRegionÓÉHMaster·ÖÅäµ½ÏàÓ¦µÄHRegionServerÖУ¬È»ºóÓÉHRegionServer¸ºÔðHRegionµÄÆô¶¯ºÍ¹ÜÀí£¬ºÍClientµÄͨÐÅ£¬¸ºÔðÊý¾ÝµÄ¶Á(ʹÓÃHDFS)¡£Ã¿¸öHRegionServer¿ÉÒÔͬʱ¹ÜÀí1000¸ö×óÓÒµÄHRegion¡£

ÔÙÀ´¿´¿´Èí¼þϵͳ¼Ü¹¹·½ÃæµÄ·ÖÇøÉè¼Æ¡£ÒÔÈÎÎñµ÷¶ÈΪÀý£¬¼ÙÉèÎÒÃÇÓÐÒ»¸öÖÐÐĵ÷¶È·þÎñ£¬ÄÇôµ±Êý¾ÝÁ¿²»¶ÏÔö¶à£¬Õâ¸öÖÐÐĵ÷¶È·þÎñÒ»¶¨»áÓöµ½ÐÔÄÜÆ¿¾±£¬ÒòΪËùÓеÄÇëÇó¶¼»á×îÖÕÖ¸ÏòËü¡£ÎªÁ˽â¾öÕâ¸öÐÔÄÜÆ¿¾±£¬ÎÒÃÇ¿ÉÒÔ½«ÈÎÎñµ÷¶È²ð·ÖΪ¶à¸ö·þÎñ£¬¼´Õâ¶à¸ö·þÎñ¶¼¿ÉÒÔ´¦ÀíÈÎÎñµ÷¶È¹¤×÷£¬ÄÇôÎÊÌâÀ´ÁË£¬Ã¿¸öÈÎÎñµ÷¶È·þÎñ´¦ÀíµÄÔ´Êý¾ÝÊÇ·ñÐèÒªÍêȫһÖ£¿

¸ù¾Ý»ªÎª¹«Ë¾·¢²¼µÄרÀû·¢Ã÷£¬ÏÔʾËûÃǶÔÓÚÿһ¸öÈÎÎñµ÷¶È·þÎñÓÐÊý¾ÝÀ´Ô´Çø·ÖµÄ²Ù×÷£¬¼´°´ÕÕÈÎÎñµ÷¶ÈÊýÁ¿¶ÔÔ´Êý¾Ý½øÐл®·Ö£¬±ÈÈç3¸öÈÎÎñµ÷¶È·þÎñ£¬ÄÇôԴÊý¾Ý°´ÕÕÐкŶÔ3È¡ÓàµÄ·½Ê½»®·Ö£¬Èç¹ûÔËÐÐÁËÒ»¶Îʱ¼äÖ®ºó£¬ÈÎÎñµ÷¶È·þÎñ³öÏÖÁËÊýÁ¿ÉϵÄÔö¼õ£¬ÄÇôÕâ¸öÈ¡Óà»®·ÖÐèÒªÖØÐ½øÐУ¬Òª°´ÕÕÄǸöʱºòµÄÈÎÎñµ÷¶ÈÊýÁ¿ÖØÐ»®·ÖÇø¼ä¡£

»Øµ½G1¡£ÔÚG1ÖУ¬¶Ñ±»Æ½¾ù·Ö³ÉÈô¸É¸ö´óСÏàµÈµÄÇøÓò£¨Region£©¡£Ã¿¸öRegion¶¼ÓÐÒ»¸ö¹ØÁªµÄRemembered Set£¨¼ò³ÆRS£©£¬RSµÄÊý¾Ý½á¹¹ÊÇHash±í£¬ÀïÃæµÄÊý¾ÝÊÇCard Table £¨¶ÑÖÐÿ512byteÓ³ÉäÔÚcard table 1byte£©¡£

¼òµ¥µÄ˵RSÀïÃæ´æÔÚµÄÊÇRegionÖдæ»î¶ÔÏóµÄÖ¸Õë¡£µ±RegionÖÐÊý¾Ý·¢Éú±ä»¯Ê±£¬Ê×ÏÈ·´Ó³µ½Card TableÖеÄÒ»¸ö»ò¶à¸öCardÉÏ£¬RSͨ¹ýɨÃèÄÚ²¿µÄCard TableµÃÖªRegionÖÐÄÚ´æÊ¹ÓÃÇé¿öºÍ´æ»î¶ÔÏó¡£ÔÚʹÓÃRegion¹ý³ÌÖУ¬Èç¹ûRegion±»ÌîÂúÁË£¬·ÖÅäÄÚ´æµÄÏ̻߳áÖØÐÂÑ¡ÔñÒ»¸öеÄRegion£¬¿ÕÏÐRegion±»×éÖ¯µ½Ò»¸ö»ùÓÚÁ´±íµÄÊý¾Ý½á¹¹£¨LinkedList£©ÀïÃæ£¬ÕâÑù¿ÉÒÔ¿ìËÙÕÒµ½ÐµÄRegion¡£

×ܽá

ûÓÐGC»úÖÆµÄJVMÊDz»ÄÜÏëÏóµÄ£¬ÎÒÃÇÖ»ÄÜͨ¹ý²»¶ÏÓÅ»¯ËüµÄʹÓᢲ»¶Ïµ÷Õû×Ô¼ºµÄÓ¦ÓóÌÐò£¬±ÜÃâ³öÏÖ´óÁ¿À¬»ø£¬¶ø²»ÊÇһζÈÏΪGCÔì³ÉÁËÓ¦ÓóÌÐòÎÊÌâ¡£

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

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Java ÖеÄÖÐÎıàÂëÎÊÌâ
Java»ù´¡ÖªÊ¶µÄÈýÊ®¸ö¾­µäÎÊ´ð
Íæ×ª Java Web Ó¦Óÿª·¢
ʹÓÃSpring¸üºÃµØ´¦ÀíStruts
ÓÃEclipse¿ª·¢iPhone WebÓ¦ÓÃ
²å¼þϵͳ¿ò¼Ü·ÖÎö

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

Struts+Spring+Hibernate/EJB+ÐÔÄÜÓÅ»¯
»ªÏÄ»ù½ð ActiveMQ Ô­ÀíÓë¹ÜÀí
ijÃñº½¹«Ë¾ Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢
ij·çµç¹«Ë¾ Java Ó¦Óÿª·¢Æ½Ì¨ÓëÇ¨ÒÆ
ÈÕÕÕ¸Û J2EEÓ¦Óÿª·¢¼¼Êõ¿ò¼ÜÓëʵ¼ù
ij¿ç¹ú¹«Ë¾ ¹¤×÷Á÷¹ÜÀíJBPM
¶«·½º½¿Õ¹«Ë¾ ¸ß¼¶J2EE¼°ÆäÇ°ÑØ¼¼Êõ