±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ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%µÄÐÔÄÜÌáÉý£¬ÍÌÍÂÁ¿ÐÔÄÜÇúÏߵļ«Öµµã·ûºÏ½ÏΪºÏÀí£¬·ûºÏ¿ìÉý»º½µµÄ²´ËÉ·Ö²¼¡£Ä¿Ç°Ð¡ÍØÆË¼¯ÈºÏµĻ·¾³´î½¨ÑéÖ¤»ù±¾Äܹ»Âú×ãÖÐСÐÍÒµÎñϵͳµÄÍÌÍÂÁ¿ÐèÇ󣬳õ²½¿ÉÓ¦ÓÃÓÚ´«Í³Ó¦ÓÃϵͳµÄÓÅ»¯Öع¹¡ª¡ªµ±È»£¬Ö»ÓÃÇø¿éÁ´¼¼Êõ×ö·Ö²¼Ê½Êý¾Ý¿âºÍͨÐÅ×é¼þÄÑÃâÓеã´ó²ÄСÓ㬺óÐø»¹Ðè¹Ø×¢¶à¼¶²àÁ´ÌåϵµÄ²âÊÔÇé¿ö£¬½øÒ»²½Èںͷֲ¼Ê½ÒµÎñÄ£ÐÍ¡£
|