PGµç¾ºÐÅÏ¢µÄ·þÎñPGµç¾º¹ÙÍø²Ù×÷ÏµÍ³ÔÆÂÍKeyarchOS£¨¼ò³ÆKOS£©ÄÚÖÃÁ˷ḻµÄ¹¤¾ßÈí¼þ£¬º¸ÇÁËϵͳÔËά¡¢¹ÊÕÏÕï¶Ï¡¢ÐÔÄܵ÷ÓÅ¡¢°²È«¿ÉÐŵȶà¸ö·½Ãæ¡£ÎÒÃÇÍÆ³öÁËһϵÁб¨µÀ£¬±¾ÆÚΪµÚÎåÆª£¬½éÉÜKeyarchOS²Ù×÷ϵͳÔËά¹¤¾ßKSysAK¡£
1¡¢±³¾°
ÔÚϵͳÔËάµÄʵ¼ùÖУ¬×ÊÔ´µÄÓÐЧ¼à¿ØÓë¸ßЧÀûÓá¢ÎÊÌâµÄ¾«×¼ÅŲéÓ뼰ʱ½â¾ö¹¹³ÉÁËÔËά¹¤×÷µÄºËÐÄÄ¿±ê¡£ÎªÊµÏÖÕâЩĿ±ê£¬ÐèÒªÒÀÍÐһϵÁÐÇ¿´óµÄ²Ù×÷ϵͳµ×²ãÄÜÁ¦Óëרҵ¹¤¾ß£¬È»¶ø£¬ÕâЩÄÜÁ¦Ó빤¾ßµ±Ç°È´·ÖÉ¢ÓÚ¶à¸ö²»Í¬µÄÓ¦Óó¡¾°Ö®ÖУ¬È±·¦Í³Ò»µÄ¹ÜÀíÓëµ÷¶È¡£ÌرðÊǵ±Ç°ÔÆPGµç¾º¹ÙÍø´óÊý¾ÝµÈÐÂÒ»´ú»ù´¡ÉèÊ©¹ã·ºÓ¦Óã¬Ëæ×Å´ó¹æÄ£¼¯ÈºµÄ²¿Êð£¬Éæ¼°²»Í¬Ó²¼þƽ̨¡¢ÏµÍ³¼Ü¹¹ºÍ¸´ÔÓ¶à±äµÄÒµÎñ³¡¾°£¬¶ÔÔËάËùÐèµÄÄÜÁ¦Ó빤¾ßÌá³öÁ˸ü¸ßµÄÕûºÏÐÔºÍרҵÐÔÒªÇó¡£Òò´Ë£¬¹¹½¨Ò»¸öÈ«Ãæ¡¢¼¯³ÉµÄÔËά·½°¸ÏÔµÃÓÈÎªÖØÒª£¬ÒÔÂú×ãϵͳ¹¹¼þÈÕÒæÅÓÔӵĹÜÀíÐèÇó¡£
2¡¢¼¼ÊõÌôÕ½
ÔÚ´«Í³µÄLinux²Ù×÷ϵͳÖУ¬ÏÖÓеÄÔËάÊÖ¶ÎÄÜÁ¦ÓÐÏÞ£¬ÌåÏÖÔÚ£ºÈ±·¦³ÖÐø¼à¿ØÄÜÁ¦£¬È±·¦µÍ³É±¾¼òµ¥Ò×ÓõÄϵͳÕï¶Ï¹¤¾ß£¬Òì³£¼ì²âÓë¸ùÒò·ÖÎö³É±¾¸ßµÈ¡£½â¾öÕâЩÔËάÎÊÌâÔòÃæÁÙÒÔÏÂÄѵ㣺
³ÖÐø¼à¿ØÄÜÁ¦£ºÏµÍ³¼à¿ØÍ¨³£ÐèÒªÇÖÈëϵͳÄںˣ¬ÕâÖÖÇé¿ö¿ÉÄÜÒýÆðϵͳÔËÐÐÒì³££¬Îª½â¾öÕâ¸öÎÊÌ⣬ÐèҪʵÏÖÒ»ÖÖÎÞÇÖÈëµÄϵͳ¼ì²âÄÜÁ¦;ͬʱ£¬ÏµÍ³¼à¿ØÍùÍù°éËæ×ŸºÔصÄÔö¼Ó£¬ÈçºÎ³ÖÐø¡¢¾«Ï¸»¯¡¢µÍ¸ºÔØµÄ¼à¿ØÏµÍ³£¬ÐèÒªÌṩһÖÖеļì²â¼Ü¹¹¼°·½·¨¡£
ϵͳÕï¶ÏÄÜÁ¦£º²»Í¬³¡¾°£¬Òì³£¼ì²âµÄ·½·¨Ò²²»Í¬£¬ ÐèÒªÒ»ÖÖ×ÔÊÊÓ¦µØÂú×㲻ͬ³¡¾°Òì³£¼ì²âÓë¹ÊÕÏÕï¶ÏÐèÇóµÄÄÜÁ¦£»Í¬Ê±£¬ÐèÒªÌṩ¸üÒ×ʹÓøüÒ×½â¶ÁµÄÕï¶Ï½á¹û¡£
ϵͳ½éÈëÄÜÁ¦£ºÔËάµÄºËÐÄÄ¿±êÊǼõÉÙ»ò±ÜÃâÒµÎñËðʧ£¬ÐèÒªÔËά¹¤¾ßÌṩһ¶¨µÄϵͳ»Ö¸´ÄÜÁ¦¡£
3¡¢¹¤¾ß½éÉÜ
ÔÆÂÍKeyarchOSϵͳÒì³£¶¨Î»·ÖÎö¹¤¾ßKSysAKÊÇÔÆÂͲÙ×÷ϵͳÑз¢¼°ÔËάÈËÔ±×ܽῪ·¢¼°ÔËά¾Ñ飬ÔÚÁúòῪԴÏîÄ¿SysAKµÄ»ù´¡ÉÏ£¬Éè¼ÆºÍÑз¢µÄ¶à¸öÔËά¹¤¾ßµÄ¼¯ºÏ£¬¿ÉÒÔ¸²¸ÇϵͳµÄÈÕ³£¼à¿Ø¡¢ÏßÉÏÎÊÌâÕï¶ÏºÍϵͳ¹ÊÕÏÐÞ¸´µÈ³£¼ûÔËά³¡¾°¡£¹¤¾ßµÄÕûÌåÉè¼ÆÉÏ£¬Á¦Í¼ÈÃÔËά¹¤×÷»Ø¹é¼òµ¥£¬ÈÃϵͳÔËάÈËÔ±²»ÐèÒªÉîÈëÁ˽âÄں˾ÍÄÜÕÒ³öÎÊÌâµÄËùÔÚ¡£

KSysAK¹¤¾ß¹¦Äܼܹ¹Í¼
4¡¢¹¦ÄÜÌØÐÔ
×÷Ϊһ¿î¹¦ÄÜÈ«ÃæµÄ·þÎñPGµç¾º¹ÙÍø²Ù×÷ϵͳÔËά¹¤¾ß°ü£¬KSysAKÓÉһϵÁÐ×Ó¹¤¾ß×é³É£¬ÕâЩ¹¤¾ßÕë¶ÔÍøÂ磨ÀýÈçpingtrace£©¡¢Äڴ棨Èçmemleak£©¡¢µ÷¶È£¨Èçrunlatency£©ÒÔ¼°ÏµÍ³½¡¿µ¼ì²é£¨Èçossre£©µÈ·½ÃæµÄÈÕ³£ÔËάÈÎÎñÌṩÁËÇ¿´óÖ§³Ö¡£KSysAK¾ß±¸Á½ÖÖ¹¤×÷ģʽ£º¼à¿ØÄ£Ê½ºÍÕï¶Ïģʽ£¬ÒÔÊÊÓ¦²»Í¬µÄÔËάÐèÇó¡£¾ßÌå˵Ã÷ÈçÏ£º
¼à¿ØÄ£Ê½
ÔÚ¼à¿ØÄ£Ê½Ï£¬KSysAK»á³ÖÐøÔÚºǫ́ÔËÐУ¬ÊµÊ±¼à¿ØÏµÍ³µÄ¹Ø¼üÐÔÄÜÖ¸±ê£¬°üÀ¨CPU¡¢ÄÚ´æ¡¢ÍøÂç¡¢ÎļþIOÒÔ¼°Äں˹ÜÀí½á¹¹µÈ×ÊÔ´¡£ÕâÓÐÖúÓÚÔËάÈËÔ±½øÐÐϸÁ£¶ÈµÄÔËάµ÷¶ÈºÍ×ÊÔ´¿ØÖÆ£¬È·±£ÏµÍ³Îȶ¨ÔËÐС£
Õï¶Ïģʽ
Õï¶ÏģʽÊÇÒ»ÖÖËæÓÃËæÆôµÄ¹¤×÷·½Ê½£¬Ö÷ÒªÓÃÓÚϵͳ³öÏÖÒ쳣ʱ·ÖÎöÎÊÌâµÄ¸ù±¾ÔÒò¡£ËüÌṩÁËרÃÅÕë¶Ô¸ºÔØÒì³£¡¢ÍøÂç¶¶¶¯¡¢ÄÚ´æÐ¹Â©¡¢I/OÒì³£¡¢ÐÔÄÜÆ¿¾±µÈÎÊÌâµÄÕï¶Ï¹¤¾ß¡£¸ÃģʽּÔÚ½µµÍ¹¤¾ßµÄ¸´ÔÓÐÔ£¬Ìá¸ßÒ×ÓÃÐÔ£¬Ê¹Óû§¸üÈÝÒ×Àí½âºÍʹÓÃÕï¶Ï½á¹û¡£Õï¶ÏģʽÊÊÓÃÓÚ³öÏÖÎÊÌâʱµÄ¼´Ê±·ÖÎöºÍ¹ÊÕÏÐÞ¸´¡£
ͨ¹ýÕâÁ½ÖÖģʽµÄ½áºÏ£¬KSysAKÄܹ»ÓÐЧµØ¶Ôϵͳ½øÐÐÈÕ³£¼à¿ØºÍÎÊÌâÕï¶Ï£¬°ïÖúÔËάÈËÔ±¼°Ê±·¢ÏÖ²¢½â¾öϵͳÖгöÏֵĸ÷ÖÖÎÊÌ⣬±£Ö¤ÏµÍ³µÄ¸ßЧÎȶ¨ÔËÐС£
5¡¢¼¼Êõ¼Ü¹¹
KSysAKĿǰÖ÷Òª°üº¬Ê®¸ö¹¤¾ß£¬²¢¸ù¾ÝʵÏֵķ½Ê½²»Í¬»®·ÖΪÈýÀࣺ
»ùÓÚÄÚºËÄ£¿éµÄ¹¤¾ß£º¶ÔÄÚºËʵÏÖһЩÔöÇ¿¹¦ÄÜ£¬ÐèҪͨ¹ýÄÚºËÄ£¿éµÄ·½Ê½À´½øÐÐʵÏÖ»ù´¡¿ò¼ÜÓÃÓÚ¶Ôϵͳ×ÊÔ´µÄ¼à¿ØºÍÕï¶Ï¡£
»ùÓÚeBPFµÄ¹¤¾ß£º¶ÔÓÚһЩÄں˵ĸú×ÙÓëÕï¶Ï£¬¿ÉÒÔ»ùÓÚeBPF»ñÈ¡tarceÐÅÏ¢£¬ÆäÖеÄ×é¼þ°üÀ¨pingtrace£¬tracesig¡£
Óû§²ã¹¤¾ß£ºÊ¹ÓòÙ×÷ϵͳÏÖÓÐϵͳ¼à¿Ø¼°¼ì²â¹¤¾ß»ñÈ¡ËùÐèÊý¾Ý²¢¶Ôϵͳ½øÐÐÕï¶Ï£¬ÆäÖеÄ×é¼þ°üÀ¨loadtask¡¢sysmonitor¡¢swap¡¢ossre_clientºÍcpuriq¡£

KSysAK¹¤¾ß¼¼Êõ¼Ü¹¹Í¼
6¡¢Ó¦Óó¡¾°
KSysAKÔÚKeyarchOS²Ù×÷ϵͳÖÐÖ÷ÒªÃæÏò³¡¾°°üÀ¨Êý¾Ý¿â¡¢·Ö²¼Ê½´æ´¢¡¢ÐéÄ⻯¡¢ÔÆÔÉúµÈ¡£Îª½ðÈÚ¡¢µçÐÅ¡¢»¥ÁªÍøµÈÐÐÒµ¿Í»§Ìṩȫջ¿É¹Û²âÄÜÁ¦£¬ÊµÏÖ²Ù×÷ϵͳµÄÈ«·½Î»¼à¿ØºÍ¹ÊÕÏÕï¶ÏÄÜÁ¦¡£
ÍøÂç¶¶¶¯Õï¶Ï·ÖÎö£º
ÍøÂç¶¶¶¯¾ßÓС°¸ßƵÂʸ´·¢¡¢ÎÊÌâ¸ùÒò¹¥¿ËÄÑ¡±µÄÌØÕ÷£¬Ò»Ö±ÊÇÀ§ÈÅÔËάÈËÔ±µÄÀÏ´óÄÑÎÊÌ⣬ÓÈÆäÊǵ±Ç°ÔÆPGµç¾º¹ÙÍø³¡¾°Ï£¬ÍøÂçÍØÆË¸´ÔÓ£¬ÒµÎñ³ÐÔØÐÎ̬¶àÑù£¬ÈÝPGµç¾º¹ÙÍø¡¢ÐéÄâ»úºÍ´«Í³ÎïÀí»ú²¢´æ£¬Ö÷Á÷ÒµÎñÓ¦ÓóÊÏÖ΢·þÎñÖÚ¶à¡¢¶àÓïÑÔ¿ª·¢¡¢¶àͨÐÅÐÒéµÈÌØÕ÷Ç÷ÊÆ£¬Õâ¸øÔËάÈËÔ±¶¨Î»ÍøÂç¶¶¶¯ÎÊÌâ´øÀ´¾Þ´óÌôÕ½¡£
KSysAKÄÚÖÃÍøÂç¶¶¶¯·ÖÎö¹¤¾ßpingtrace£¬°ïÖúÔËάÈËÔ±¿ìËÙÖ±¹ÛµÄ·ÖÎöÍøÂç¶¶¶¯Òì³£¡£pingtraceͨ¹ýÔÚÓû§Ì¬¹¹Ôì̽²âÐÒ鱨ÎÄ£¬ÔÚ¶ÀÓÐµÄ pingtrace Í·²¿Ôö¼Ó icmp¡¢ tcp¼°udp ÐÒéÍ·£¬¿ÉÒÔ½øÐжàÖÖÐÒé̽²â£¬Í¬Ê±»ùÓÚeBPF ¼¼Êõ£¬ÒÔÄÚºËÎÞÇÖÈëµÄ·½Ê½¿ú̽ϵͳÄÚ²¿Ï¸½Ú£¬¿ªÏúԶԶСÓÚ tcpdump µÈÒÑÓй¤¾ß£¬²¢¿Éʵʱչʾ¸÷¸öÊý¾ÝÁ´Â·µÄʱÑÓÐÅÏ¢£¬¿ìËÙ·¢ÏÖÎÊÌâ±ß½ç¡£
pingtrace·ÖΪ¿Í»§¶ËºÍ·þÎñ¶Ë£¬¿Í»§¶Ë»áÏñ·þÎñ¶Ë·¢ËÍ×Ô¶¨ÒåµÄICMP£¬server»á½âÎöÊý¾Ý°ü²¢·µ»ØÊý¾Ý°ü£¬·µ»ØµÄÊý¾Ý°ü°ìºÃ ±¨ÎÄʱ¼ä´í£¬ÏµÍ³ÖжÏÑÓʱ¡¢µ÷¶ÈÑÓʱµÈÐÅÏ¢£¬Í¨¹ýÔÚclient¶ËµÄÊý¾Ý¾Û»á£¬×ۺϷÖÎö£¬¸ø³öÍøÂçʱÑӵľ«È·ÔÒò¡£


µ÷¶ÈÑÓ³ÙÕï¶Ï·ÖÎö£º
Load×÷Ϊ·þÎñPGµç¾º¹ÙÍøÔËÐиºÔصÄÒ»¸öµäÐÍÖ¸±ê£¬¾³£±»ÔËάÈËÔ±ÓÃÓÚÆÀ¼ÛϵͳÔËÐÐÊÇ·ñÁ¼ºÃµÄÒ»¸ö¹Ø¼üÒòËØ¡£ÔËάÈËÔ±¿ÉÒÔ·½±ãµÄÄõ½µ±Ç°ÊÇÄÄЩ½ø³Ìµ¼ÖÂLoad¹ý¸ß£¬µ«ÈçºÎ·ÖÎöµ¼ÖÂload¹ý¸ßµÄÔÒò£¬ÐèҪרҵµÄ²Ù×÷ϵͳ֪ʶ´¢±¸¡£
KSysAKÄÚÖõÄloadtaskÓÃÓÚloadÒì³£¸ùÒò·ÖÎö£¬ÔËάÈËÔ±¿ÉÒÔÇáËÉÉÏÊÖ·ÖÎöloadÒì³££¬loadtask»á½øÐÐÈ«·½Î»µÄϵͳ·ÖÎö£¬³ý»ñÈ¡½ø³ÌÔËÐÐÕ»Í⣬»¹×Ô¶¯·ÖÎöÄÚ´æÑ¹Á¦¡¢cpu ѹÁ¦¡¢IOѹÁ¦¡¢ÏµÍ³´íÎ󣬲¢½«ÕâЩÒòËØºÍ½ø³ÌÕ»½øÐйØÁª£¬¸úµ±Ç°½ø³Ì¶ÔÕÕ£¬ÉÏÏÂÎĽáºÏ£¬¸ø³ö×îºó¾«È·µÄ Load Òì³£ÔÒò£¬ÈÃÔËάÈËÔ±Ö±½Ó¸ù¾ÝÕâ¸ö×÷³ö¾ö²ß¡£½á¹û³ÊÏÖÉÏ£¬ksysak loadtaskÖ§³ÖÊä³ö»ùÓÚ»ðÑæÍ¼µÄ¿ÉÊÓ»¯·ÖÎö½á¹û¡£

ºóÐøKSysAK¹¤¾ß»á³ÖÐø·á¸»¼à¿ØºÍÕï¶Ï¹¤¾ß£¬´ó¼Ò¾´ÇëÆÚ´ý£¡
²úÆ·ÏÂÔØ
²úÆ·¼¤»î
ÊÛǰ×Éѯ
ÊÛºó·þÎñ
»Øµ½¶¥²¿
ÊÛǰ×Éѯ
ÊÛºó·þÎñ