ºìÁªLinuxÃÅ»§
Linux°ïÖú

Google:LinuxÊÀ½ç¼¶¿çÊý¾ÝÖÐÐÄ·þÎñÆ÷

·¢²¼Ê±¼ä:2013-04-24 11:07:27À´Ô´:ºìÁª×÷Õß:Variayi
¡¡¡¡À´Ô´£ºThe Register

¡¡¡¡GoogleÒѾ­ÊµÏÖÊÀ½ç¼¶Êý¾ÝÖÐÐÄ·þÎñÆ÷¼à¿Ø£¬Ðµļ¼Êõ¿ÉÒÔ¼à¿ØÊÀ½ç·¶Î§ÄÚÿ̨·þÎñÆ÷ÉϵÄÿ¸öÈÎÎñ£»Æä×îÖÕÄ¿µÄÊÇͨ¹ýÕâЩÊý¾ÝÓÐÑ¡Ôñ¶Ô½ø³Ì½øÐиÉÔ¤¡¢ÉõÖÁÊǹرոýø³ÌÈÃͬCPUÉÏµÄÆäËü½ø³ÌµÃÒÔÔËÐС£

¡¡¡¡ËÑË÷¾ÞÍ·ÔÚ¼¼ÊõÂÛÎÄÖÐÏêϸµÄÃèÊöÁËÕâÒ»ÊÀ½ç¼¶¼àÊÓ¼¼ÊõµÄʵÏÖ·½·¨£¬ÏàÐÅʹÓôóÐÍ»ùÓÚLinuxÔÆ¼ÆËã»ù´¡ÉèÊ©µÄ»ú¹¹¶¼»á¶Ô´Ë¸ÐÐËȤ¡£

¡¡¡¡ÂÛÎÄÖÐдµÀ£º

¡¡¡¡ÐÔÄܸôÀëÊÇÔÆ¼ÆËãµÄÖ÷ÒªÌôÕ½¡£²»ÐÒµÄÊÇ£¬LinuxȱÉÙ¶Ô¹²Ïí×ÊÔ´£¨±ÈÈ磺´¦ÀíÆ÷»º´æ¡¢´æ´¢Æ÷×ÜÏߵȣ©ÖÐÐÔÄܸÉÈŵķÀÓù£»ÕâÑùµÄ»°£¬¹«ÓÐÔÆÖеÄÓ¦ÓóÌÐò½«ÎÞ·¨±ÜÃâÀ´×ÔÁÚ¾ÓÃǵĸÉÈÅ¡£

¡¡¡¡CPI·½°¸Ê¹ÓôÓÓ²¼þÐÔÄܼÆÊýÆ÷»ñµÃµÄCPI£¨cycles-per-instruction£¬Æ½¾ùÖ¸ÁîÖÜÆÚÊý£©Êý¾Ý¼ì²âÎÊÌ⣬ÖжϻòÕ߹رա°ÎÊÌ⡱½ø³Ì´Ó¶ø´ïµ½Ô¤ÆÚµÄЧ¹û£¬µ±È»Ëü»á¸ù¾ÝÏàͬ×÷ÒµÖдóÁ¿ÈÎÎñÊý¾ÝÈÏÖªÕâ¸öÈÎÎñµÄ·´³£Óë·ñ¡£

¡¡¡¡±¾ÖÊÉϽ²£¬CPIÈÃGoogle¿ÉÒÔÔÚ¼¯ÈºÉÏÍò¸öCPUºËÐÄÖиôÀëµ¥¸öºËÐÄÉϵĵ¥¸öÐÔÄܵÍÏÂÈÎÎñ£¬¶ÔÕâ¸öÈÎÎñ½øÐмì²é²¢½øÐвÙ×÷£¬¶øÔì³ÉµÄCPU¿ªÏúÉõÖÁ²»µ½0.1%¡£Ëü²¢²»ÐèÒªÌØÊâµÄÓ²¼þÖ§³Ö£¬Î¨Ò»µÄÈí¼þÒÀÀµÇ¡ÊÇʹÓÃLinux¡£

¡¡¡¡CPIÔÊÐíGoogleÊÕ¼¯ÈκÎÖ¸¶¨Ö¸ÁîµÄÔ¤ÆÚCPU CPI£¬´ÓÕâЩÊý¾ÝÖзÖÎö³ö±ê×¼µÄ×ÊÔ´ÅäÖÃÎļþ£¬È»ºóʹÓÃÕâЩ±ê×¼µÄÅäÖÃÎļþÈ¥°ïÖúÍøÂç¾ÞÍ·È·¶¨ÄÄЩÈÎÎñ±ÈÒ»°ãÇé¿öϺķÑÁ˸ü¶àµÄCPI£¬´Ó¶ø½â·ÅÓëÕâЩÈÎÎñʹÓÃÏàͬCPUµÄÆäËü½ø³Ì¡£

¡¡¡¡Google³Æ£¬Æä¾ø´ó¶àÊý»úÆ÷É϶¼ÔËÐÐ×ŶàÈÎÎñ¡£×÷ÒµµÄ´¦ÀíÀàÐÍ·ÖΪʵʱ´¦ÀíºÍÅú´¦ÀíÁ½ÖÖ£¬Í¬Ê±ÕâЩ×÷ÒµÓÉ´óÁ¿µÄÈÎÎñ×é³É¡£Google·þÎñÆ÷ÉÏ96%µÄÈÎÎñ¶¼»áÓëÖÁÉÙ10¸öµÄÈÎÎñ×é³ÉÒ»¸ö×÷Òµ£¬¶ø87%×óÓÒµÄÈÎÎñ»áÓë100»òÒÔÉϵÄÈÎÎñ×é³ÉÒ»¸ö×÷Òµ¡£

¡¡¡¡µ«ÊÇÕâЩÈÎÎñ¿ÉÄÜ»áÏ໥¸ÉÈÅ£¬µ¼Ö´¦ÀíÆ÷»º´æºÍÄÚ´æ·ÖÅäÎÊÌ⣬Ôì³ÉÓ¦ÓÃÖеÄij¸öÈÎÎñÑÓʱì­Éý----ÕâÕýÊÇGoogle²»Ï§Ò»Çдú¼Û¶¼Ïë±ÜÃâµÄÎÊÌâ¡£

¡¡¡¡ÎªÁËʵÏÖÈÎÎñÁ÷ÏÂÿ¸ö´¦ÀíÆ÷µÄ¿ØÖÆ£¬GoogleʹÓÃCPI¼àÊÓËùÓÐÔËÐеķþÎñÆ÷¡£Í¨¹ý²âÁ¿´¦ÀíÆ÷Ó²¼þ¼ÆÊýÆ÷£¬È»ºóÓÃCPU_CLK_UNHALTED.REF³ýÒÔINSTRUCTIONS_RETIREDÀ´»ñµÃCPIÊý¾Ý¡£

¡¡¡¡Í¨¹ý¼ÆËãģʽϵÄperf_event¹¤¾ß£¬Googleÿ·ÖÖÓ¶¼»áÊÕ¼¯Ò»¸ö³¤Îª10ÃëÖÜÆÚµÄÊý¾Ý¡£ÏµÍ³ÖÐ×ÜCPUµÄ¿ªÏúµÍÓÚ0.1%£¬²¢ÇÒ²»»á¶ÔÑÓʱ²úÉúÓ°Ïì¡£

¡¡¡¡ÒòΪ¼¯ÈºÐèÒª¿ç´óÁ¿µÄƽ̨ÔËÐУ¬CPIµÄÄ¿µÄÔÚÓÚÌåÏÖ¸÷ÖÖÆ½Ì¨ÏµÄCPUÔËÐÐÇé¿ö¡£CPIµÄֵͨ¹ýÿ̨»úÆ÷ÉϵÄagent½øÐб¾µØ·ÖÎöºÍ²âÁ¿¡£agentͨ³£»á±»¸øÓè×÷ÒµÖÐÈÎÎñÔ¤ÆÚ×î³£¼ûµÄCPI·Ö²¼£¬ËùÒÔËü¿ÉÒÔ¶ÀÁ¢µÄ·ÖÎö³öÔËÐеÄÕý³£Óë·ñ¡£

¡¡¡¡Èç¹ûagent·¢ÏÖÓС°victim¡±ÈÎÎñÊܵ½Ó°Ïì±äµÃ»ºÂý£¬Ëü½«»áÿÃëÒ»´ÎµÄ¶Ô¡°antagonist¡±ÈÎÎñ½øÐиÉÉæ¡£agent»áʹÓÃÒ»¸öËã·¨À´Åжϡ°antagonist¡±ÈÎÎñµÄCPUÕ¼ÓÃÔö¼ÓÓë¡°victim¡±ÈÎÎñµÄ³Ù»ºÊÇ·ñÔøÔÚ¹ØÏµ£¬ÒÀ¾ÝµÄÔòÊÇÖ¸ÁîµÄÖÜÆÚÊý¡£

¡¡¡¡Èç¹ûagentʶ±ðÁËÒ»¸ö¡°antagonist¡±²¢·¢ÏÖËüÊǸöÅúÁ¿×÷Òµ£¬ÏµÍ³½«»á¡°Í¨¹ýCPU hard-cappingÀ´Ç¿ÖƼõÉÙ¡®antagonistµÄCPUÕ¼ÓÃÂÊ¡¯¡±¡£

¡¡¡¡¼øÓÚCPIºÍOmegaÂÛÎĵÄÁªºÏ×÷ÕßÖж¼ÓÐJohn Wilkes£¬GoogleºÜÓпÉÄÜÊÇͨ¹ýOmega£¨Google´óÐÍ»ù´¡ÉèÊ©¹ÜÀíϵͳµÄÒ»¸ö×é¼þ£©¸øagent·¢²¼ÈÎÎñ¡£

¡¡¡¡¡°antagonis¡±ÈÎÎñµÄÅäÖÃÎļþÓëCPIÊý¾Ý½øÐеÄÊÇÀëÏߵļǼºÍ´æ´¢£¬ÕâÑù¹ÜÀíÔ±¾Í¿ÉÒÔͨ¹ýGoogleµÄÖ÷ÒªÍøÂç·ÖÎö¹¤¾ßDremel½øÐвéѯ¡£

¡¡¡¡Google¹¤³ÌʦʹÓÃDremel½øÐÐÐÔÄÜȡ֤£¬ÓÃÒÔÈ·¶¨¡°antagonists¡±ÈÎÎñ£¬ÔÚ½«À´ËûÃÇ¿ÉÄÜΪ¡°antagonists¡±ÈÎÎñÖØÐÂÖÆ¶¨²ßÂÔ£¬ÈÃËüÃÇÔÚµ¥¶ÀµÄÖ÷»ú¼¯ÖÐÔËÐУ¬È»ºóʹÓÃÕâ¸öµ÷¶È½ø¶ÈÀ´³¹µ×µÄ±ÜÃâÕâ¸öÎÊÌâ¡£

¡¡¡¡ÆäÖÐÓÐÒ»¸öÐèÒª¸Ä½øµÄ·½ÃæÊÇ´¦Àí¶à¸ö¡°antagonists¡±£¬Ëü½«»á¸´ÔÓ»¯Ëã·¨£»ÁíÒ»¸öÔòÊÇΪcappingÈÎÎñ½¨Á¢µÄ·´À¡Í¾¾¶¡£

¡¡¡¡ÂÛÎÄÖÐдµÀ£º¡°¼´Ê¹ÕâÁ½·½Ã滹δ¸ÄÉÆ£¬µ«ÊÇCPIÊǸöÇ¿´óµÄ¡¢ÊµÓõŤ¾ß¡£¡±

¡¡¡¡Ê¹ÓÃCPI»ñµÃÓ¦ÓÃÐÔÄÜ¿ÉÐÐÐÅÏ¢µÄ¿ªÏú±ÈGoogleÆäËü·½°¸À´µÄ¸üÉÙ£¬ÕâÀﻹ´æÔÚÒ»¸ö±»³ÆÎª¡°Google-Wide Profiling¡±¿Éͬʱ¶ÔÓ²¼þºÍÈí¼þÐÔÄܽøÐÐ×·×ÙµÄÆ½Ðм¼Êõ£¬µ«ÊÇÖ»ÔÚGoogleС·¶Î§µÄ½øÐÐʹÓá£

¡¡¡¡´ÓÕûÌåÉÏ¿´£¬CPIÌṩµÄ²»Ö»ÊǹÜÀí£¬¸üÇãÏòÓÚÈü¯ÈºÔËÐеĸü¼ÓÎȶ¨¡¢Ð§ÂÊ¡£Èç¹ûÄãÔÚÖ´ÐÐËÑË÷»òÕ߲鿴Gmail¡¢Í¨¹ýGoogle·þÎñ²éÕÒµØÖ·Ê±·¢ÏÖ±ÈÆ½³£ÐèÒª¸ü¶àµÄʱ¼ä£¬ÄÇôÄã¿ÉÄܾͻᱻCPIÀä¿á¼°ÎÞÇéµÄµ±×öÊÇ¡°antagonists¡±¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ