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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Çø¿éÁ´ÐÔÄܲâÆÀʵս°¸Àý
 
  2827  次浏览      27
 2018-8-31
 

 

±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚinfoq£¬½éÉÜÁ˲âÊÔÉè¼Æ£¬²âÊԴ¼°²¿Ê𣬲âÊÔÖ´ÐÐÓëÊý¾Ý·ÖÎöµÈ¡£

0x00 ±³¾°

½üÆÚÇø¿éÁ´µÄ¼¼Êõ¸ÅÄîÔÚ´«Í³ITȦÖð½¥ÉýΣ¬³ÉΪÐí¶àÒŲúϵͳÉý¼¶Öع¹·½°¸µÄ±¸Ñ¡¼¼Êõ·Ïß¡£±ÊÕß±¾È˶àÄê´ÓÊÂÓ¦ÓÃϵͳÑз¢£¬Ä¿Ç°Ëùά»¤µÄϵͳÐÔÄܽ¥Â¶Æ¿¾±£¬·ÖƬÀ©ÈÝÄѶȽϴóÇÒÃæÁÙ·Ö²¼Ê½¸Ä½øµÄDZÔÚÐèÇó£¬Òò¶øØ½ÐèÇø¿éÁ´¼Ü¹¹¼¼Êõ´¢±¸¡£

Ó¦ÓÃϵͳÐÔÄÜÌáÉýµÄ¹Ø¼üÔÚÓÚÔËά¶ËµÄ½ÓÈë¹ÜÀíÄ£ÐÍ£¨AAA£¬ÈÏÖ¤Authentication¡¢ÊÚȨAuthorization¡¢¼Æ·ÑAccounting£©¼°ÒµÎñ¶ËµÄ²¢·¢£¨Concurrency£©/ÍÌÍÂÁ¿(Throughput)Ä£ÐÍ¡£Çø¿éÁ´ÊǵäÐ͵ġ°ÔËάÓѺÃÐÍ¡±ÏµÍ³£¬ÌìÈ»µÄ×ÔÎÒÖÎÀíÄÜÁ¦¼«´ó³Ì¶ÈÉÏÓÅ»¯Á˽ÓÈë¹ÜÀíÄ£ÐÍ£¬µ«ÏÖÓÐÇø¿éÁ´ÏµÍ³µÄ²¢·¢/ÍÌÍÂÁ¿Ä£ÐÍÖ¸±êÈ´±¥ÊÜÚ¸²¡¡£ÎÞÂÛÊÇBTCµÄ7tps£¬»¹ÊÇETHµÄ40tpsÔÚ´«Í³ÒµÎñϵͳ¶¯éüÍò¼¶ÉõÖÁÊ®Íò¼¶tpsÃæÇ°¶¼ÄÑÒÔ̧ͷ¡£

±¾×Ų»Öظ´ÔìÂÖ×ÓµÄ×ÚÖ¼£¬Ê×ÏÈÊáÀíÁËһ϶ÔÇø¿éÁ´ÏîÄ¿µÄÐèÇó£º

¾Û½¹µ×²ã»ù´¡ÉèÊ©£¬ÏîÄ¿×ÔÉíÐÐÒµ»òÁìÓòÌØÕ÷²»Ã÷ÏÔ£¬Ò×ÒýÈë±¾ÐÐÒµÒµÎñ£»

Äܹ»ÊµÏÖ΢·þÎñ¼¶²¿Êð£¬À©ÈÝÓѺã¬Ò×Ç¨ÒÆ²¿Êð£»

²¢·¢ÍÌÍÂÁ¿5k+£¬Îȶ¨Ö§³Å10w¼¶DAU£¬¿É¿¿ÐÔÇ¿¡£

¸ù¾ÝÐèÇóÓеķÅʸµØÑ°ÃÙÇø¿éÁ´ÏîÄ¿£¬Ñ°ÃٵĹý³ÌÆäʵԶ±ÈÏëÏóµÄ¼òµ¥¡£Çø¿éÁ´ÏîÄ¿¶àÈçţ룬µ«´¿×ö¼¼Êõ¿ò¼Ü²»³¶ÒµÎñ³¡¾°»òÕß¾­¼ÃÄ£Ð͵ÄÏîÄ¿ÕæÐIJ»¶à¡£Í¨¹ý¶ÔÖ÷Á÷½»Ò×ËùµÄÏîĿɸѡ£¨±Ï¾¹²»ÄÜÕÒÒ»¸ö²»Îȶ¨µÄÍŶÓ×öµÄ¶«Î÷£©£¬»ù±¾È¦¶¨ÁËEOS¡¢QTUM¡¢AELFÏîÄ¿¡£EOS¹ÙÐûÍÌÍÂÁ¿Ô¼3300~3500tps£¬QTUM¹ÙÐûÍÌÍÂÁ¿ÎªBTCµÄÊ®±¶£¨È¨ÇÒ¹ÀËã100tps£©£¬AELFÏîÄ¿7ÔÂÒÁʼ·¢²¼²âÊÔÍø£¬¹Ù·½ÔÝδ·¢²¼ÍÌÍÂÁ¿ÐÅÏ¢¡£Ñ¡¶¨AELF×÷Ϊµ÷ÑжÔÏóµÄÔ­ÒòÒ»·½ÃæÊÇ¿ª·¢Ö¸ÄÏнü·¢²¼£¬Óë×î½ü´úÂë°æ±¾µÄ¿É²Ù×÷ÐÔÇ¿£¬ÇÒAELF²ÉÓõÄAkka²¢·¢¿ò¼ÜÓ¦Ó÷¶Î§½Ï¹ã£¬ÏÈǰÓÐËù½Ó´¥¡£

0x01 ²âÊÔÉè¼Æ

ÏÖÓеÄÇø¿éÁ´ÏµÍ³ÒµÎñ´¦ÀíÄÜÁ¦ÆÕ±éÃæÏò¼ÛÖµ´«µÝ½øÐн¨É裬Òò´Ë¶ÔÓÚÇø¿éÁ´ÏµÍ³ÐÔÄܵįÀ²âË¼Â·Ó¦ÃæÏò½»Ò×¹ý³ÌÕ¹¿ª¡£AELFÏîÄ¿ÔÚÇø¿éÁ´¼Ü¹¹·½ÃæÖ÷´òµÄÌØÕ÷ÊÇ¡°Ö÷Á´+¶à¼¶²àÁ´¡±£¬Á´¼äÓÐרÃŵĿçÁ´Ë㷨ʵÏÖÏà¶Ô¸ôÀëµÄÒµÎñµ¥Ôª¼ä×ÊÔ´µÄЭͬ£¬Á´ÄÚ½Úµã¾ùÔËÐÐÓÚ¼¯Èº£¬½ÚµãÄÚ²¿Í¨¹ý²¢Ðл¯·½°¸ÌáÉýÍÌÍÂÁ¿Ö¸±ê¡£¸ù¾Ý¹Ù·½ÔÚÉçÇøÅû¶µÄÐÅÏ¢£¬²âÊÔÍø³õÆÚ£¨¼´Ä¿Ç°£©ÌṩÖ÷Á´²¢ÐмÆËãÄ£¿éµÄ²âÊÔÑéÖ¤£¬È·ÈÏÖ÷Á´ÐÔÄܺóÔÙ»Ò¶ÈÉý¼¶ÖÁ¶à¼¶²àÁ´°æ±¾£¬´ÓÈí¼þÖÊÁ¿ÌåϵµÄ½Ç¶È¶øÑÔÊǺÏÀíµÄ¡£Í¨¹ý²ÎÓëÉçÇøÄڵļ¼ÊõÖ±²¥»¥¶¯£¬Ò²ÓëÏîÄ¿¼¼ÊõÍŶӳä·Ö̽ÌÖÁËAELFÑ¡Óõö¼¼Êõ·½°¸£¬ÓÈÆäÊÇAkka²¢Ðпò¼Ü¡£»ý¼«Ñ¡ÓÃÒѱ»ÑéÖ¤µÄ³ÉÊì¼¼ÊõÔªËØÈ·ÊµÊÇ×öÐÂϵͳ¡¢Ð»ù´¡ÉèʩʱµÄÄÑÄܿɹóµÄ×Ë̬£¬½øÒ»²½ÌáÉýÁ˶ÔAELFÏîÄ¿µÄºÃ¸Ð¶È¡£PS£º¸ÃÍŶӼ¼ÊõµÄÈËÒ²ÔÚÉçÇø£¬ºÜNICEºÜºÃ¹µÍ¨¡£

Transaction£¬´«Í³ITÈËϰ¹ß½Ð¡°ÊÂÎñ¡±£¬Çø¿éÁ´È¦µÄÈËͨ³£½Ð¡°½»Òס±£¬¿ÉÄÜÊÇBTC°×ƤÊé·­Òë´«³ÐÏÂÀ´µÄ°É¡£Èí¼þ²âÆÀÓ¦³ä·Ö¿¼ÂÇÈí¼þÖÊÁ¿ÌåϵµÄÒªÇó£¬Í¬Àí£¬¶ÔÓÚÒ»¸öÇø¿éÁ´µ×²ã¼Ü¹¹¶øÑÔ£¬Ä£Äâ¼ÛÖµ´«ÊäѹÁ¦µÄ½»Ò×¼¤ÀøÄܹ»×÷ÎªÇø¿éÁ´µ×²ã»ù´¡ÉèÊ©tpsÖ¸±êµÄÑéÖ¤ÐÎʽ¡£

¾Ý´Ë£¬Ïȶ¨ÒåÒ»¸öÔ­×ÓÊÂÎñ×÷Ϊ±¾´Î²âÊÔÑéÖ¤µÄ»ù±¾²âÊÔÓÃÀý¡ª¡ª¡°ºÏԼתÕË¡±¡£1´Î¡°ºÏԼתÕË¡±°üÀ¨2´Î¶Á2´Îд²Ù×÷£¬¾ßÌå²½ÖèÈçÏ£º

´ÓAÕË»§¶ÁÈ¡Óà¶î£¨1´Î¶Á£©£»

´ÓBÕË»§¶ÁÈ¡Óà¶î£¨1´Î¶Á£©£»

´ÓAÕË»§¼õÈ¥½ð¶î£¨1´Îд£©£»

´ÓBÕË»§Ôö¼Ó½ð¶î£¨1´Îд£©¡£

Òò֮ǰ½Ó´¥¹ýBTC£¬ÉîÉî̾·þÖб¾´Ï´óÉñUTXOÌåϵÉèÖõľ«Ãµ«´«Í³Ó¦ÓÃϵͳÍùÍù»¹ÊÇÒÀÀµÕË»§Ä£ÐÍÌåϵ£¬Òò´ËÑ¡ÓÃÒ»¸ö¾­µäµÄÔ­×ÓתÕËÊÂÎñ×÷Ϊ±ê×¼²âÊÔÓÃÀý£¬²¢ÒÔ¸ÃÓÃÀýµÄÖ´ÐÐЧÂÊ×÷ΪÍÌÍÂÁ¿Ö¸±êµÄÒÀ¾Ý¡£AELFÖ§³ÖÇø¿éÁ´ÖÇÄܺÏÔ¼£¬ÉÏÊöÔ­×ÓÊÂÎñÐë±àдΪºÏÔ¼½Å±¾²¿ÊðÖÁ²âÊÔÍø¡£

½ø¶ø£¬ÔÙ¶¨ÒåÒ»¸ö»ù±¾µÄ²âÊÔÁ÷³Ì¹£¸Å£º

¸Ã²âÊÔÁ÷³Ì¿É×÷Ϊһ¸öµäÐ͵ÄÇø¿éÁ´ÐÔÄܲâÆÀ²ßÂÔ¡£ÒÔÒ»´Î¡°ºÏԼתÕË¡±ÎªÒ»¸ö»ù±¾ÒµÎñÖ´Ðе¥Ôª£¬±àдÔËÐÐÓÚÇø¿éÁ´Æ½Ì¨Éϵġ°ºÏÔ¼½Å±¾¡±³ÌÐò£¬¸Ã³ÌÐòÄܹ»±»Çø¿éÁ´ÏµÍ³¸÷½Úµã²¿Êð²¢Ö´ÐС£ÊµÊ©²âÆÀǰÐèÒÀ¾ÝÌØ¶¨µÄÓÃÀý»òËæ»úÉú³É²âÊÔÓÃÀý³õʼ»¯²âÊÔÊý¾Ý£¬²»Í¬³¡¾°¡¢²»Í¬ÂִεIJâÆÀʵʩÐë»ùÓÚÏàͬµÄ²âÊÔÊý¾ÝÒÔÈ·±£²âÊÔ½á¹û¿ÉÐÅ¡£²âÊÔÊý¾Ý×÷Ϊ½»Ò×ÉêÇëÏà¼Ì¶ÔÖ÷Íø·¢Æð¼¤Àø£¬¶ÔÓÚAELF´ËÀà²ÉÓ÷ֲ¼Ê½²¢Ðл¯Ë¼Ïë½øÐмܹ¹Éè¼ÆµÄÏîÄ¿£¬¿É²ÉÓöà×éÊý¾Ý²¢·¢¼¤ÀøµÄÐÎʽÒÔ²âÊԽϸ߲¢·¢½»Ò׳¡¾°ÏÂÇø¿éÁ´ÏµÍ³µÄÐÔÄÜ¡£²âÊÔ¹ý³ÌÖУ¬¿Éͨ¹ýʵʱ¼àÊÓ»òÌØ¶¨Ê±¼äƬ¼àÊӵķ½Ê½Åж¨²âÊÔÓÃÀýµÄÖ´ÐÐÇé¿ö£¬Ê±¼äƬ¿ÉÉèÖÃΪ³ö¿éÖÜÆÚµÄN±¶£¨N<=6£¬½è¼øBTCÖ÷Íø6Çø¿éÈ·ÈϵĹßÀý£©¡£

¼ÌÐø¶¨Ò岻ͬµÄ²âÊÔ³¡¾°£º

³¡¾°I£ºµ¥»ú³¡¾°£¬1ÒµÎñ´¦Àí½Úµã+1ÒµÎñÊý¾Ý¼¯£»

³¡¾°II£º¼¯Èº-µ¥»ú³¡¾°£¬NÒµÎñ´¦Àí½Úµã+1ÒµÎñÊý¾Ý¼¯£»

³¡¾°III£º·Ö²¼Ê½¼¯Èº³¡¾°£¬NÒµÎñ´¦Àí½Úµã+NÒµÎñÊý¾Ý¼¯¡£

µ¥»ú³¡¾°Ö¼ÔÚÑéÖ¤Çø¿éÁ´ÏµÍ³µÄ¶ÀÁ¢ÐÔÄÜ£¬ÒòÇø¿éÁ´Îª·Ö²¼Ê½¼¯ÈºÏµÍ³£¬Õë¶Ôµ¥»ú³¡¾°²âÆÀÑéÖ¤¶ÔÓÚ×îÖÕÈ«ÍøÐÔÄÜÖ¸±ê½áÂÛµÄÒâÒå²»ÊǺܴ󣬵«ÓÐÖúÓÚÎÒÃǸüºÃµØ¶¨Ò弯Ⱥ²âÊԵı߽硣Èçµ¥»ú²âÆÀµÄÐÔÄÜÖ¸±êΪP£¬½øÐм¯Èº²âÆÀʱÄܹ»ÒÔPΪ»ù´¡Í¨¹ý½Úµã/½ø³ÌÔö³¤ÓëÐÔÄÜÖ¸±êÔö³¤Ö®¼äµÄ¹ØÏµÅж¨ÊÇ·ñÓбØÒª½øÐиü´ó¹æÄ£µÄ²âÆÀÑéÖ¤¡£´ËÍ⣬ÔÚµ¥»ú²âÊԵĹý³ÌÖÐͨ¹ý²¹³ä´øÓÐÍøÂçÑӳٵIJâÊÔ»·¾³ÓÐÖúÓÚ¶ÔÍøÂç»·¾³Ó°ÏìÒòËØ½øÐлù±¾µÄ¶¨Á¿¡£

¼¯Èº-µ¥»ú³¡¾°Ö¼ÔÚÕë¶ÔÃæÏòÇø¿éÁ´µ×²ãƽ̨ËùÖ§³ÅµÄʵ¼ÊÒµÎñÀàÐͽøÐи²¸ÇÐÔ²âÊÔ¡£Çø¿éÁ´¼¼Êõ±¾ÉíÊÇÈ¥ÖÐÐÄ»¯µÄ£¬µ«Çø¿éÁ´ÏµÍ³ËùÖ§³ÅµÄÉϲãÒµÎñ¿ÉÄÜÓÐÖÐÐÄ»¯ÌØÕ÷£¬Òò´ËÐèÒª½øÐжà¶ÔÒ»³¡¾°µÄÄ£Äâ²âÆÀ¡£¸Ã³¡¾°µÄÉè¼ÆÕë¶ÔÊý¾ÝI/O´æÔڹ̶¨Æ¿¾±µÄÇé¿ö϶ÔÇø¿éÁ´ÏµÍ³ÒµÎñ´¦ÀíÍÌÍÂÁ¿½øÐж¨Á¿²âÆÀ¡£

·Ö²¼Ê½¼¯Èº³¡¾°Ö¼ÔÚÕë¶Ô´¦ÓÚP2PÍøÂçÍØÆËÖн»Ò×Ö´Ðд¦ÀíÓë½»Ò×Êý¾ÝЭͬ¾ùÐèʵÏÖÇø¿éÁ´¹²Ê¶µÄÒµÎñ³¡¾°½øÐи²¸ÇÐÔ²âÊÔ¡£¸Ã³¡¾°ÎªµäÐ͵ÄÇø¿éÁ´ÏµÍ³³¡¾°£¬Í¨¹ýµ¥»ú³¡¾°¼°¼¯Èº-µ¥»ú³¡¾°µÄ²âÆÀ£¬Äܹ»¸¨ÖúÎÒÃǶԸ󡾰ϵIJâÊԱ߽缰²âÊÔ²îÒìÐÔÒò×Ó½øÐÐ×ۺϷÖÎö£¬È·¶¨²âÊÔʵʩµÄ·½Ê½¼°±»²â²¿Êð»·¾³µÄµäÐÍÐÔ£¬´Ó¶øµÃµ½½ÏΪ¿É¿¿µÄ²âÆÀ½áÂÛ¡£

Çø¿éÁ´ÏµÍ³µÄÔËÐÐÓжà¸ö²ã´Î£¬Çø¿éÁ´³ÌÐò¿É±»²¿ÊðÖÁ¶ą̀·þÎñÆ÷£¨Server£©£¬Ã¿Ì¨·þÎñÆ÷¿ÉÔËÐжà¸ö½ø³Ì¼¶ÊµÀý£¨Worker£©£¬¶ÔAELF¶øÑÔ£¬Ã¿¸öʵÀýÄÚ¿ÉÒÔÅäÖöà¸ö²¢Ðл¯ÒµÎñµ¥Ôª£¨Actor£©¡£Òò´ËÐÔÄÜÖ¸±êTPSÊÜ·þÎñÆ÷¡¢½ø³Ì¡¢ÒµÎñµ¥ÔªµÄÓ°Ïì¾ùÐèÔÚ²âÊÔÖÐÌåÏÖ£¬×îÓÅTPS²âÆÀ½á¹ûÓ¦±íÏÖÔÚÒ»¸öÊÊÒ˵ķþÎñÆ÷¡¢½ø³Ì¡¢ÒµÎñµ¥ÔªÅäÖÃ֮ϣ¬ÔÚ²âÊÔÌõ¼þÔÊÐíÖ®ÄÚѰÕÒÕâ¸ö×îÓŵÄÅäÖÃÒ²ÊDZ¾´Î²âÆÀµÄÄ¿µÄÖ®Ò»¡£

×ÛÉÏ£¬ÄâʵÏֵIJâÊÔÑé֤ĿµÄ°üÀ¨µ«²»ÏÞÓÚµ¥·þÎñ½ÚµãÔËÐÐ״̬ϵIJ¢·¢Ö´ÐÐÄÜÁ¦¼°¼¯Èº»·¾³ÏµÄÐÔÄÜÑÓÕ¹ÐÔ¡£

0x02²âÊԴ¼°²¿Êð

²âÊÔËùÑ¡ÓõĻ·¾³Îª±ê×¼ÔÆÆ½Ì¨ÐéÄâ»ú£¨°üÀ¨AWS¼°°¢ÀïÔÆ£©£¬¸ù¾Ý¹Ù·½ÔÚÉçÇøÄÚÍÆ¼öµÄÅäÖ㬲ÉÓÃÁË8vCPU+16GÄÚ´æµÄ×éºÏ£¬ÍøÂç´ø¿í10G£¬Redis°æ±¾4.0.10£¬Twemproxy°æ±¾0.4.1£¬»ù±¾Óë±ê×¼¼¯ÈºÉú²ú»·¾³ÀàËÆ£¬ºóÐøËæ²âÊÔÍøÄÚÈݵÄÔö¶àÅäÖÿÉÄÜÓб仯£¬ÔÚÉçÇøËæÊ±¿ÉÒԵõ½ÏîÄ¿¼¼ÊõÍŶӵĽâ´ð¡£

8ÔÂ8ÈÕ²¹³ä£ºAELF¹Ù·½GithubÒѸø³öȨÍþ°æ²âÊԴ²½Ö裬ÏÂÎÄΪ±ÊÕߵĴ²½Öè¡£

¶ÔAELF²âÊÔÍø½øÐпª·¢½ÓÈëµÄºËÐÄÊÇÀåÇåBenchmark»·¾³£¬Í¨¹ýÓë¼¼ÊõÍŶӵÄ×Éѯ½»Á÷£¬ÏÂÊöΪ»ù±¾µÄ´î½¨Ó벿ÊðÖ´Ðв½Öè¡£

¿Ë¡¼°±àÒë´úÂ룺

git clone https://github.com/AElfProject/AElf.git aelf

cd aelf

dotnet publish ¨Cconfiguration Release -o /temp/aelf

È·ÈÏÅäÖÃÎļþĿ¼£º

Mac/Linux: ~/.local/share/aelf/config

Windows: C:\Users\xxxxx\AppData\Local\aelf\config

ÅäÖÃÊý¾Ý¼¯ÐÅÏ¢£º

½«´úÂëÖеÄaelf/config/database.json¿½±´ÖÁÅäÖÃÎļþĿ¼

¸ù¾Ý±¾»úRedis°²×°Çé¿öÐÞ¸ÄÅäÖãº

{
// Êý¾Ý¿âÀàÐÍ£¨Äڴ棺inmemory£¬Redis£ºredis£¬SSDB£ºssdb)
"Type": "redis",
// Êý¾Ý¿âµØÖ·
"Host": "localhost",
// Êý¾Ý¿â¶Ë¿Ú
"Port": 6379
}

µ¥»ú³¡¾°²¿Êð£º

½«´úÂëÖеÄaelf/config/actor.json¿½±´ÖÁÅäÖÃÎļþĿ¼£¬²¢¸ù¾Ý±¾»úÇé¿öÅäÖÃIsCluster¡¢WorkerCount ¡¢Benchmark ¡¢ConcurrencyLevel£º

{
// ÊÇ·ñΪ¼¯ÈºÄ£Ê½
"IsCluster": false,
"HostName": "127.0.0.1",
"Port": 0,
// ²¢ÐÐÖ´ÐÐ worker µÄÊýÁ¿£¬½¨ÒéÓë±¾»úcpu ºËÊýÏàͬ
"WorkerCount": 8,
// ÔËÐÐBenchmarkģʽ
"Benchmark":true,
// ×î´ó²¢ÐзÖ×é¼¶±ð£¬´óÓÚµÈÓÚWorkerCount
"ConcurrencyLevel": 16,
"Seeds": [
{
"HostName": "127.0.0.1",
"Port": 32551
}
],
"SingleHoconFile": "single.hocon",
"MasterHoconFile": "master.hocon","WorkerHoconFile": "worker.hocon",
"ManagerHoconFile": "manager.hocon"
}

ÔËÐÐBenchmark£º

dotnet AElf.Benchmark.dll - n 8000 --grouprange 80 80 -- repeattime 5
// -n ×ÜÊÂÎñÊýÁ¿ --grouprange ·Ö×鷶Χ --repeattime ÖØ¸´Ö´ÐдÎÊý

¼¯Èº³¡¾°²¿Êð£º

ÔËÐÐConcurrencyManager£º

dotnet AElf.Concurrency.Manager.dll --actor.host 192 .168 .100 .1 -- actor.port 4053
// --actor.host ManagerµÄ IP µØÖ· -- actor.port Manager µÄ¼àÌý¶Ë¿Ú

½«´úÂëÖеÄaelf/config/actor.json¿½±´ÖÁÅäÖÃÎļþĿ¼£¬²¢¸ù¾Ý±¾¼¯ÈºÇé¿öÅäÖÃIsCluster¡¢HostName¡¢WorkerCount ¡¢Benchmark¡¢ConcurrencyLevel¡¢Seeds£º

{
// ÊÇ·ñΪ¼¯ÈºÄ£Ê½
"IsCluster": true,
// WorkerµÄ ip µØÖ·
"HostName": "127.0.0.1",
// Worker¼àÌýµÄ¶Ë¿Ú
"Port": 32551,
// ²¢ÐÐÖ´ÐÐ worker µÄÊýÁ¿£¬½¨ÒéÓë±¾»úcpu ºËÊýÏàͬ
"WorkerCount": 8,
// ÔËÐÐBenchmarkģʽ
"Benchmark":true,
// ×î´ó²¢ÐзÖ×é¼¶±ð£¬´óÓÚµÈÓÚWorkerCount*Worker µÄ½ø³ÌÊý
"ConcurrencyLevel": 16,
// ManagerµÄ ip¡¢¶Ë¿ÚÐÅÏ¢
"Seeds": [
{
"HostName": "192.168.100.1",
"Port": 4053
}
],
"SingleHoconFile": "single.hocon",
"MasterHoconFile": "master.hocon",
"WorkerHoconFile": "worker.hocon",
"ManagerHoconFile": "manager.hocon"
}

ÔËÐÐConcurrencyWorker£º

dotnet AElf.Concurrency.Worker.dll --actor.port 32551
// --actor.port WorkerµÄ¼àÌý¶Ë¿Ú

ÈçWorkerÊÕµ½ManagerµÄ»¶Ó­ÐÅÏ¢Ôò˵Ã÷¸ÃWorker¼ÓÈ뼯Ⱥ£¬ºóÐø½ÚµãÀ©ÈÝ¿ÉÒÀÍд˻·¾³¿ªÕ¹

ÔËÐÐBenchmark£º

dotnet AElf.Benchmark.dll -n 8000 --grouprange 80 80 -- repeattime 5

0x03²âÊÔÖ´ÐÐÓëÊý¾Ý·ÖÎö

¸Ã²¿·Ö²»ÔÙ׸Êö¾ßÌåµÄÖ´Ðйý³Ì£¬Ö±½ÓÕë¶ÔÈýÖÖ³¡¾°¸ø³ö²âÊÔÑéÖ¤µÄÊý¾Ý¸É»õ¡£ÌرðÇ¿µ÷£¬±¾´Î²âÊÔµÄÊý¾Ý½á¹ûΪ±ÊÕß×ÔÐвâÊÔ£¬»·¾³ºÍ¹ý³Ì¿ÉÄÜÒòÈËΪ²Ù×÷Îó²î²»ÊǺÜÑϽ÷£¬¾ßÌåÐÔÄÜÖ¸±êÒÔ¹Ù·½·¢²¼Îª×¼£¬ºÃÊÂÕßÎðÈÅ£¡£¡£¡

³¡¾°I µ¥»ú³¡¾°²âÊÔÊý¾Ý

ͨ¹ýÉÏͼ¿ÉÒÔ¿´³ö£¬µ±Êý¾Ý¿âÓëÒµÎñµ¥Ôª·ÖÀ벿Êðʱ£¬ÍøÂçÑӳٻᵼÖÂTPSÖ¸±êϽµ£¬Í¬µÈÍøÂçÑÓ³ÙÏÂTPSÖ¸±ê¸úËæ±ä»¯Ç÷ÊÆ»ù±¾Ïàͬ¡£

³¡¾°II ¼¯Èº-µ¥»ú³¡¾°²âÊÔÊý¾Ý

ͨ¹ýÉÏÁ½Í¼¿ÉÒÔ¿´³öµ±Êý¾Ý¼¯·þÎñΪµ¥Àý²¿Êðʱ£¬2½ø³Ì16ÒµÎñµ¥ÔªµÄ²¿Êðģʽ½ÏΪÀíÏë¡£Õë¶Ô2½ø³Ì16ÒµÎñµ¥ÔªµÄ²¿ÊðģʽÓÖ×öÁË·þÎñÆ÷À©ÈݵIJ¹³ä·ÖÎö£¬·ÖÎö±íÃ÷ÔÚÊý¾Ý¼¯·þÎñΪµ¥Àýʱ£¬·þÎñÆ÷Ôö³¤µ½5ʱÐÔÄܴﵽƿ¾±£¬TPSÖ¸±ê¿ªÊ¼Ï»¬¡£

ÉÏͼ²âÊÔ»·¾³Îª8¸öRedisʵÀý¹¹½¨µÄ¼¯Èº£¬5¸öTwemproxy£¬Ã¿Ì¨·þÎñÆ÷Á¬½Ó²»Í¬µÄTwemproxy£¬TPSÖ¸±êÄܹ»ËæÀ©ÈݶøÔö³¤ÖÁÀíÏëÖµ¸½½ü¡£

ÆäËûÏà¹Ø²âÊÔ²ÎÊý£ºÊ¹ÓÃ240000¸ö½»Ò×£¬Öظ´5´Î¡£

0x04 ²âÊÔ×ܽá

ͨ¹ýÉÏÊö²âÊÔÑéÖ¤µÄÖ´Ðнá¹û»ù±¾Äܹ»¿´³öËæ×ÅϵͳµÄÀ©ÈÝ£¬ÍÌÍÂÁ¿ÐÔÄÜÖ¸±êµÄÔö³¤ÊǽÏΪ½¡¿µµÄ£¬²âÊÔ·¶Î§Ö®ÄÚÔ¤ÆÚ×îÓÅÖ¸±êԼΪ1.3w~1.5w tps¡£´ËÍ⣬ÔÚÿһ×éÌØ¶¨µÄ²¿ÊðģʽÏ£¬Äܹ»Í¨¹ýϵͳµ÷ÓÅ»ñµÃƽ¾ùÔ¼10%~15%µÄÐÔÄÜÌáÉý£¬ÍÌÍÂÁ¿ÐÔÄÜÇúÏߵļ«Öµµã·ûºÏ½ÏΪºÏÀí£¬·ûºÏ¿ìÉý»º½µµÄ²´ËÉ·Ö²¼¡£Ä¿Ç°Ð¡ÍØÆË¼¯ÈºÏµĻ·¾³´î½¨ÑéÖ¤»ù±¾Äܹ»Âú×ãÖÐСÐÍÒµÎñϵͳµÄÍÌÍÂÁ¿ÐèÇ󣬳õ²½¿ÉÓ¦ÓÃÓÚ´«Í³Ó¦ÓÃϵͳµÄÓÅ»¯Öع¹¡ª¡ªµ±È»£¬Ö»ÓÃÇø¿éÁ´¼¼Êõ×ö·Ö²¼Ê½Êý¾Ý¿âºÍͨÐÅ×é¼þÄÑÃâÓеã´ó²ÄСÓ㬺óÐø»¹Ðè¹Ø×¢¶à¼¶²àÁ´ÌåϵµÄ²âÊÔÇé¿ö£¬½øÒ»²½Èںͷֲ¼Ê½ÒµÎñÄ£ÐÍ¡£

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

iOSÓ¦Óð²È«¿ª·¢£¬Äã²»ÖªµÀµÄÄÇЩÊÂÊõ
Web°²È«Ö®SQL×¢Èë¹¥»÷
ÒÆ¶¯APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
´ÓGoogle±¸·Ý»¥ÁªÍø¿´¡°Êý¾Ý°²È«¡±
 
Ïà¹ØÎĵµ

web°²È«Éè¼ÆÓë·À»¤
»¥ÁªÍøº£Á¿ÄÚÈݰ²È«´¦Àí¼¼Êõ
ºÚ¿Í¹¥»÷Óë·À·¶¼¼Êõ
WEBºÚºÐ°²È«¼ì²â
 
Ïà¹Ø¿Î³Ì

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶