Ê×Ò³ | Óʼþ×ÊѶ | ¼¼Êõ½Ì³Ì | ½â¾ö·½°¸ | ²úÆ·ÆÀ²â | ÓʼþÈ˲Š| Óʼþ²©¿Í | ÓʼþϵͳÂÛ̳ | Èí¼þÏÂÔØ | ÓʼþÖÜ¿¯ | ÈȵãרÌâ | ¹¤¾ß
ÍøÂç¼¼Êõ | ²Ù×÷ϵͳ | Óʼþϵͳ | ¿Í»§¶Ë | µç×ÓÓÊÏä | ·´À¬»øÓʼþ | Óʼþ°²È« | ÓʼþÓªÏú | ÒÆ¶¯µçÓÊ | ÓʼþÈí¼þÏÂÔØ | µç×ÓÊéÏÂÔØ

²Ù×÷ϵͳ

Vista | Windows 9X | Windows Server | Linux&Uinx | FreeBSD | ÆäËü²Ù×÷ϵͳ |
Ê×Ò³ > ²Ù×÷ϵͳ > Linux&Uinx > ½éÉÜLinuxÄÚºËÎļþCache¹ÜÀí»úÖÆ > ÕýÎÄ

½éÉÜLinuxÄÚºËÎļþCache¹ÜÀí»úÖÆ

³ö´¦£ºÊÕ¼¯ÕûÀí ×÷ÕߣºÊÕ¼¯ÕûÀí ʱ¼ä£º2006-5-30 13:56:00

1 ¡¢Ç°ÑÔ

¡¡¡¡×Ô´Óµ®ÉúÒÔÀ´£¬Linux ¾Í±»²»¶ÏÍêÉÆºÍÆÕ¼°£¬Ä¿Ç°ËüÒѾ­³ÉΪÖ÷Á÷ͨÓòÙ×÷ϵͳ֮һ£¬Ê¹Óõ÷dz£¹ã·º£¬ËüÓë Windows¡¢UNIX Ò»ÆðÕ¼¾ÝÁ˲Ù×÷ϵͳÁìÓò¼¸ºõËùÓеÄÊг¡·Ý¶î¡£ÌرðÊÇÔÚ¸ßÐÔÄܼÆËãÁìÓò£¬Linux ÒѾ­³ÉΪһ¸öÕ¼Ö÷µ¼µØÎ»µÄ²Ù×÷ϵͳ£¬ÔÚ2005Äê6ÔÂÈ«ÇòTOP500 ¼ÆËã»úÖУ¬ÓÐ 301 ̨²¿ÊðµÄÊÇ Linux ²Ù×÷ϵͳ¡£Òò´Ë£¬Ñо¿ºÍʹÓà Linux ÒѾ­³ÉΪ¿ª·¢ÕߵIJ»¿É»Ø±ÜµÄÎÊÌâÁË¡£

¡¡¡¡ÏÂÃæÎÒÃǽéÉÜһϠLinux ÄÚºËÖÐÎļþ Cache ¹ÜÀíµÄ»úÖÆ¡£±¾ÎÄÒÔ 2.6 ϵÁÐÄÚºËΪ»ù×¼£¬Ö÷Òª½²Êö¹¤×÷Ô­Àí¡¢Êý¾Ý½á¹¹ºÍËã·¨£¬²»Éæ¼°¾ßÌå´úÂë¡£

2 ²Ù×÷ϵͳºÍÎļþ Cache ¹ÜÀí

¡¡¡¡²Ù×÷ϵͳÊǼÆËã»úÉÏ×îÖØÒªµÄϵͳÈí¼þ£¬Ëü¸ºÔð¹ÜÀí¸÷ÖÖÎïÀí×ÊÔ´£¬²¢ÏòÓ¦ÓóÌÐòÌṩ¸÷ÖÖ³éÏó½Ó¿ÚÒÔ±ãÆäʹÓÃÕâЩÎïÀí×ÊÔ´¡£´ÓÓ¦ÓóÌÐòµÄ½Ç¶È¿´£¬²Ù×÷ϵͳÌṩÁËÒ»¸öͳһµÄÐéÄâ»ú£¬ÔÚ¸ÃÐéÄâ»úÖÐûÓи÷ÖÖ»úÆ÷µÄ¾ßÌåϸ½Ú£¬Ö»Óнø³Ì¡¢Îļþ¡¢µØÖ·¿Õ¼äÒÔ¼°½ø³Ì¼äͨÐŵÈÂß¼­¸ÅÄî¡£ÕâÖÖ³éÏóÐéÄâ»úʹµÃÓ¦ÓóÌÐòµÄ¿ª·¢±äµÃÏà¶ÔÈÝÒ×£º¿ª·¢ÕßÖ»ÐèÓëÐéÄâ»úÖеĸ÷ÖÖÂß¼­¶ÔÏó½»»¥£¬¶ø²»ÐèÒªÁ˽â¸÷ÖÖ»úÆ÷µÄ¾ßÌåϸ½Ú¡£´ËÍ⣬ÕâЩ³éÏóµÄÂß¼­¶ÔÏóʹµÃ²Ù×÷ϵͳÄܹ»ºÜÈÝÒ׸ôÀë²¢±£»¤¸÷¸öÓ¦ÓóÌÐò¡£

¡¡¡¡¶ÔÓÚ´æ´¢É豸ÉϵÄÊý¾Ý£¬²Ù×÷ϵͳÏòÓ¦ÓóÌÐòÌṩµÄÂß¼­¸ÅÄî¾ÍÊÇ"Îļþ"¡£Ó¦ÓóÌÐòÒª´æ´¢»ò·ÃÎÊÊý¾Ýʱ£¬Ö»Ðè¶Á»òÕßд"Îļþ"µÄһάµØÖ·¿Õ¼ä¼´¿É£¬¶øÕâ¸öµØÖ·¿Õ¼äÓë´æ´¢É豸ÉÏ´æ´¢¿éÖ®¼äµÄ¶ÔÓ¦¹ØÏµÔòÓɲÙ×÷ϵͳά»¤¡£

¡¡¡¡ÔÚ Linux ²Ù×÷ϵͳÖУ¬µ±Ó¦ÓóÌÐòÐèÒª¶ÁÈ¡ÎļþÖеÄÊý¾Ýʱ£¬²Ù×÷ϵͳÏÈ·ÖÅäһЩÄڴ棬½«Êý¾Ý´Ó´æ´¢É豸¶ÁÈëµ½ÕâЩÄÚ´æÖУ¬È»ºóÔÙ½«Êý¾Ý·Ö·¢¸øÓ¦ÓóÌÐò£»µ±ÐèÒªÍùÎļþÖÐдÊý¾Ýʱ£¬²Ù×÷ϵͳÏÈ·ÖÅäÄÚ´æ½ÓÊÕÓû§Êý¾Ý£¬È»ºóÔÙ½«Êý¾Ý´ÓÄÚ´æÐ´µ½´ÅÅÌÉÏ¡£Îļþ Cache ¹ÜÀíÖ¸µÄ¾ÍÊǶÔÕâЩÓɲÙ×÷ϵͳ·ÖÅ䣬²¢ÓÃÀ´´æ´¢ÎļþÊý¾ÝµÄÄÚ´æµÄ¹ÜÀí¡£ Cache ¹ÜÀíµÄÓÅÁÓͨ¹ýÁ½¸öÖ¸±êºâÁ¿£ºÒ»ÊÇ Cache ÃüÖÐÂÊ£¬Cache ÃüÖÐʱÊý¾Ý¿ÉÒÔÖ±½Ó´ÓÄÚ´æÖлñÈ¡£¬²»ÔÙÐèÒª·ÃÎʵÍËÙÍâÉ裬Òò¶ø¿ÉÒÔÏÔÖøÌá¸ßÐÔÄÜ£»¶þÊÇÓÐЧ Cache µÄ±ÈÂÊ£¬ÓÐЧ Cache ÊÇÖ¸ÕæÕý»á±»·ÃÎʵ½µÄ Cache ÏÈç¹ûÓÐЧ Cache µÄ±ÈÂÊÆ«µÍ£¬ÔòÏ൱²¿·Ö´ÅÅÌ´ø¿í»á±»À˷ѵ½¶ÁÈ¡ÎÞÓà Cache ÉÏ£¬¶øÇÒÎÞÓà Cache »á¼ä½Óµ¼ÖÂϵͳÄÚ´æ½ôÕÅ£¬×îºó¿ÉÄÜ»áÑÏÖØÓ°ÏìÐÔÄÜ¡£

¡¡¡¡ÏÂÃæ·Ö±ð½éÉÜÎļþ Cache ¹ÜÀíÔÚ Linux ²Ù×÷ϵͳÖеĵØÎ»ºÍ×÷Óá¢Linux ÖÐÎļþ CacheÏà¹ØµÄÊý¾Ý½á¹¹¡¢Linux ÖÐÎļþ Cache µÄÔ¤¶ÁºÍÌæ»»¡¢Linux ÖÐÎļþ Cache Ïà¹Ø API ¼°ÆäʵÏÖ¡£

2¡¢ Îļþ Cache µÄµØÎ»ºÍ×÷ÓÃ

¡¡¡¡Îļþ Cache ÊÇÎļþÊý¾ÝÔÚÄÚ´æÖеĸ±±¾£¬Òò´ËÎļþ Cache ¹ÜÀíÓëÄÚ´æ¹ÜÀíϵͳºÍÎļþϵͳ¶¼Ïà¹Ø£ºÒ»·½ÃæÎļþ Cache ×÷ΪÎïÀíÄÚ´æµÄÒ»²¿·Ö£¬ÐèÒª²ÎÓëÎïÀíÄÚ´æµÄ·ÖÅ仨ÊÕ¹ý³Ì£¬ÁíÒ»·½ÃæÎļþ Cache ÖеÄÊý¾ÝÀ´Ô´ÓÚ´æ´¢É豸ÉϵÄÎļþ£¬ÐèҪͨ¹ýÎļþϵͳÓë´æ´¢É豸½øÐжÁд½»»¥¡£´Ó²Ù×÷ϵͳµÄ½Ç¶È¿¼ÂÇ£¬Îļþ Cache ¿ÉÒÔ¿´×öÊÇÄÚ´æ¹ÜÀíϵͳÓëÎļþϵͳ֮¼äµÄÁªÏµÅ¦´ø¡£Òò´Ë£¬Îļþ Cache ¹ÜÀíÊDzÙ×÷ϵͳµÄÒ»¸öÖØÒª×é³É²¿·Ö£¬ËüµÄÐÔÄÜÖ±½ÓÓ°Ïì×ÅÎļþϵͳºÍÄÚ´æ¹ÜÀíϵͳµÄÐÔÄÜ¡£

¡¡¡¡Í¼1ÃèÊöÁË Linux ²Ù×÷ϵͳÖÐÎļþ Cache ¹ÜÀíÓëÄÚ´æ¹ÜÀíÒÔ¼°ÎļþϵͳµÄ¹ØÏµÊ¾Òâͼ¡£´ÓͼÖпÉÒÔ¿´µ½£¬ÔÚ Linux ÖУ¬¾ßÌåÎļþϵͳ£¬Èç ext2/ext3¡¢jfs¡¢ntfs µÈ£¬¸ºÔðÔÚÎļþ CacheºÍ´æ´¢É豸֮¼ä½»»»Êý¾Ý£¬Î»ÓÚ¾ßÌåÎļþϵͳ֮ÉϵÄÐéÄâÎļþϵͳVFS¸ºÔðÔÚÓ¦ÓóÌÐòºÍÎļþ Cache Ö®¼äͨ¹ý read/write µÈ½Ó¿Ú½»»»Êý¾Ý£¬¶øÄÚ´æ¹ÜÀíϵͳ¸ºÔðÎļþ Cache µÄ·ÖÅäºÍ»ØÊÕ£¬Í¬Ê±ÐéÄâÄÚ´æ¹ÜÀíϵͳ(VMM)ÔòÔÊÐíÓ¦ÓóÌÐòºÍÎļþ Cache Ö®¼äͨ¹ý memory mapµÄ·½Ê½½»»»Êý¾Ý¡£¿É¼û£¬ÔÚ Linux ϵͳÖУ¬Îļþ Cache ÊÇÄÚ´æ¹ÜÀíϵͳ¡¢ÎļþϵͳÒÔ¼°Ó¦ÓóÌÐòÖ®¼äµÄÒ»¸öÁªÏµÊàŦ¡£



3 ¡¢Îļþ Cache Ïà¹ØÊý¾Ý½á¹¹

¡¡¡¡ÔÚ Linux µÄʵÏÖÖУ¬Îļþ Cache ·ÖΪÁ½¸ö²ãÃæ£¬Ò»ÊÇ Page Cache£¬ÁíÒ»¸ö Buffer Cache£¬Ã¿Ò»¸ö Page Cache °üº¬Èô¸É Buffer Cache¡£ÄÚ´æ¹ÜÀíϵͳºÍ VFS Ö»Óë Page Cache ½»»¥£¬ÄÚ´æ¹ÜÀíϵͳ¸ºÔðά»¤Ã¿Ïî Page Cache µÄ·ÖÅäºÍ»ØÊÕ£¬Í¬Ê±ÔÚʹÓà memory map ·½Ê½·ÃÎÊʱ¸ºÔð½¨Á¢Ó³É䣻VFS ¸ºÔð Page Cache ÓëÓû§¿Õ¼äµÄÊý¾Ý½»»»¡£¶ø¾ßÌåÎļþϵͳÔòÒ»°ãÖ»Óë Buffer Cache ½»»¥£¬ËüÃǸºÔðÔÚÍâΧ´æ´¢É豸ºÍ Buffer Cache Ö®¼ä½»»»Êý¾Ý¡£Page Cache¡¢Buffer Cache¡¢ÎļþÒÔ¼°´ÅÅÌÖ®¼äµÄ¹ØÏµÈçͼ 2 Ëùʾ£¬Page ½á¹¹ºÍ buffer_head Êý¾Ý½á¹¹µÄ¹ØÏµÈçͼ 3 Ëùʾ¡£ÔÚÉÏÊöÁ½¸öͼÖУ¬¼Ù¶¨ÁË Page µÄ´óСÊÇ 4K£¬´ÅÅÌ¿éµÄ´óСÊÇ 1K¡£±¾ÎÄËù½²ÊöµÄ£¬Ö÷ÒªÊÇÖ¸¶Ô Page Cache µÄ¹ÜÀí¡£

¡¡¡¡ÔÚ Linux ÄÚºËÖУ¬ÎļþµÄÿ¸öÊý¾Ý¿é×î¶àÖ»ÄܶÔÓ¦Ò»¸ö Page Cache ÏËüͨ¹ýÁ½¸öÊý¾Ý½á¹¹À´¹ÜÀíÕâЩ Cache Ïһ¸öÊÇ radix tree£¬ÁíÒ»¸öÊÇË«ÏòÁ´±í¡£Radix tree ÊÇÒ»ÖÖËÑË÷Ê÷£¬Linux ÄÚºËÀûÓÃÕâ¸öÊý¾Ý½á¹¹À´Í¨¹ýÎļþÄÚÆ«ÒÆ¿ìËÙ¶¨Î» Cache Ïͼ 4 ÊÇ radix treeµÄÒ»¸öʾÒâͼ£¬¸Ã radix tree µÄ·Ö²æÎª4(22)£¬Ê÷¸ßΪ4£¬ÓÃÀ´¿ìËÙ¶¨Î»8λÎļþÄÚÆ«ÒÆ¡£Linux(2.6.7) ÄÚºËÖеķֲæÎª 64(26)£¬Ê÷¸ßΪ 6(64λϵͳ)»òÕß 11(32λϵͳ)£¬ÓÃÀ´¿ìËÙ¶¨Î» 32 λ»òÕß 64 Î»Æ«ÒÆ£¬radix tree ÖеÄÿһ¸öÒ¶×Ó½ÚµãÖ¸ÏòÎļþÄÚÏàÓ¦Æ«ÒÆËù¶ÔÓ¦µÄCacheÏî¡£

¡¡¡¡ÁíÒ»¸öÊý¾Ý½á¹¹ÊÇË«ÏòÁ´±í£¬LinuxÄÚºËΪÿһƬÎïÀíÄÚ´æÇøÓò(zone)ά»¤active_listºÍinactive_listÁ½¸öË«ÏòÁ´±í£¬ÕâÁ½¸ölistÖ÷ÒªÓÃÀ´ÊµÏÖÎïÀíÄÚ´æµÄ»ØÊÕ¡£ÕâÁ½¸öÁ´±íÉϳýÁËÎļþCacheÖ®Í⣬»¹°üÀ¨ÆäËüÄäÃû(Anonymous)Äڴ棬Èç½ø³Ì¶ÑÕ»µÈ¡£







4 ¡¢ÎļþCacheµÄÔ¤¶ÁºÍÌæ»»

¡¡¡¡LinuxÄÚºËÖÐÎļþÔ¤¶ÁËã·¨µÄ¾ßÌå¹ý³ÌÊÇÕâÑùµÄ£º¶ÔÓÚÿ¸öÎļþµÄµÚÒ»¸ö¶ÁÇëÇó£¬ÏµÍ³¶ÁÈëËùÇëÇóµÄÒ³Ãæ²¢¶ÁÈë½ôËæÆäºóµÄÉÙÊý¼¸¸öÒ³Ãæ(²»ÉÙÓÚÒ»¸öÒ³Ãæ£¬Í¨³£ÊÇÈý¸öÒ³Ãæ)£¬ÕâʱµÄÔ¤¶Á³ÆÎªÍ¬²½Ô¤¶Á¡£¶ÔÓÚµÚ¶þ´Î¶ÁÇëÇó£¬Èç¹ûËù¶ÁÒ³Ãæ²»ÔÚCacheÖУ¬¼´²»ÔÚǰ´ÎÔ¤¶ÁµÄgroupÖУ¬Ôò±íÃ÷Îļþ·ÃÎʲ»ÊÇ˳Ðò·ÃÎÊ£¬ÏµÍ³¼ÌÐø²ÉÓÃͬ²½Ô¤¶Á£»Èç¹ûËù¶ÁÒ³ÃæÔÚCacheÖУ¬Ôò±íÃ÷ǰ´ÎÔ¤¶ÁÃüÖУ¬²Ù×÷ϵͳ°ÑÔ¤¶ÁgroupÀ©´óÒ»±¶£¬²¢ÈõײãÎļþϵͳ¶ÁÈëgroupÖÐÊ£ÏÂÉв»ÔÚCacheÖеÄÎļþÊý¾Ý¿é£¬ÕâʱµÄÔ¤¶Á³ÆÎªÒì²½Ô¤¶Á¡£ÎÞÂÛµÚ¶þ´Î¶ÁÇëÇóÊÇ·ñÃüÖУ¬ÏµÍ³¶¼Òª¸üе±Ç°Ô¤¶ÁgroupµÄ´óС¡£´ËÍ⣬ϵͳÖж¨ÒåÁËÒ»¸öwindow£¬Ëü°üÀ¨Ç°Ò»´ÎÔ¤¶ÁµÄgroupºÍ±¾´ÎÔ¤¶ÁµÄgroup¡£ÈκνÓÏÂÀ´µÄ¶ÁÇëÇ󶼻ᴦÓÚÁ½ÖÖÇé¿öÖ®Ò»£ºµÚÒ»ÖÖÇé¿öÊÇËùÇëÇóµÄÒ³Ãæ´¦ÓÚÔ¤¶ÁwindowÖУ¬Õâʱ¼ÌÐø½øÐÐÒì²½Ô¤¶Á²¢¸üÐÂÏàÓ¦µÄwindowºÍgroup£»µÚ¶þÖÖÇé¿öÊÇËùÇëÇóµÄÒ³Ãæ´¦ÓÚÔ¤¶ÁwindowÖ®Í⣬Õâʱϵͳ¾ÍÒª½øÐÐͬ²½Ô¤¶Á²¢ÖØÖÃÏàÓ¦µÄwindowºÍgroup¡£Í¼5ÊÇLinuxÄÚºËÔ¤¶Á»úÖÆµÄÒ»¸öʾÒâͼ£¬ÆäÖÐaÊÇij´Î¶Á²Ù×÷֮ǰµÄÇé¿ö£¬bÊǶÁ²Ù×÷ËùÇëÇóÒ³Ãæ²»ÔÚwindowÖеÄÇé¿ö£¬¶øcÊǶÁ²Ù×÷ËùÇëÇóÒ³ÃæÔÚwindowÖеÄÇé¿ö¡£

¡¡¡¡LinuxÄÚºËÖÐÎļþCacheÌæ»»µÄ¾ßÌå¹ý³ÌÊÇÕâÑùµÄ£º¸Õ¸Õ·ÖÅäµÄCacheÏîÁ´Èëµ½inactive_listÍ·²¿£¬²¢½«Æä״̬ÉèÖÃΪactive£¬µ±ÄÚ´æ²»¹»ÐèÒª»ØÊÕCacheʱ£¬ÏµÍ³Ê×ÏÈ´Óβ²¿¿ªÊ¼·´ÏòɨÃèactive_list²¢½«×´Ì¬²»ÊÇreferencedµÄÏîÁ´Èëµ½inactive_listµÄÍ·²¿£¬È»ºóϵͳ·´ÏòɨÃèinactive_list£¬Èç¹ûËùɨÃèµÄÏîµÄ´¦ÓÚºÏÊʵÄ״̬¾Í»ØÊÕ¸ÃÏֱµ½»ØÊÕÁË×ã¹»ÊýÄ¿µÄCacheÏî¡£CacheÌæ»»Ëã·¨Èçͼ6µÄËã·¨ÃèÊöαÂëËùʾ¡£





¡¡¡¡Í¼6 LinuxµÄCacheÌæ»»Ëã·¨ÃèÊö

Mark_Accessed(b) {       if b.state==(UNACTIVE && UNREFERENCE) 	      							b.state = REFERENCE       						 else if b.state == (UNACTIVE && REFERENCE) {	      							b.state = (ACTIVE && UNREFERENCE)	      					        Add X to tail of active_list       						 } else if b.state == (ACTIVE && UNREFERENCE) 	      							b.state = (ACTIVE && REFERENCE)}Reclaim() {       						 if active_list not empty and scan_num

5 ¡¢ÎļþCacheÏà¹ØAPI¼°ÆäʵÏÖ

¡¡¡¡LinuxÄÚºËÖÐÓëÎļþCache²Ù×÷Ïà¹ØµÄAPIÓкܶ࣬°´ÆäʹÓ÷½Ê½¿ÉÒÔ·Ö³ÉÁ½ÀࣺһÀàÊÇÒÔ¿½±´·½Ê½²Ù×÷µÄÏà¹Ø½Ó¿Ú£¬ Èçread/write/sendfileµÈ£¬ÆäÖÐsendfileÔÚ2.6ϵÁеÄÄÚºËÖÐÒѾ­²»ÔÙÖ§³Ö£»ÁíÒ»ÀàÊÇÒÔµØÖ·Ó³É䷽ʽ²Ù×÷µÄÏà¹Ø½Ó¿Ú£¬ÈçmmapµÈ¡£

¡¡¡¡µÚÒ»ÖÖÀàÐ͵ÄAPIÔÚ²»Í¬ÎļþµÄCacheÖ®¼ä»òÕßCacheÓëÓ¦ÓóÌÐòËùÌṩµÄÓû§¿Õ¼äbufferÖ®¼ä¿½±´Êý¾Ý£¬ÆäʵÏÖÔ­ÀíÈçͼ7Ëùʾ¡£



¡¡¡¡µÚ¶þÖÖÀàÐ͵ÄAPI½«CacheÏîÓ³Éäµ½Óû§¿Õ¼ä£¬Ê¹µÃÓ¦ÓóÌÐò¿ÉÒÔÏñʹÓÃÄÚ´æÖ¸ÕëÒ»Ñù·ÃÎÊÎļþ£¬Memory map·ÃÎÊCacheµÄ·½Ê½ÔÚÄÚºËÖÐÊDzÉÓÃÇëÇóÒ³Ãæ»úÖÆÊµÏֵ쬯乤×÷¹ý³ÌÈçͼ8Ëùʾ¡£



¡¡¡¡Ê×ÏÈ£¬Ó¦ÓóÌÐòµ÷ÓÃmmap£¨Í¼ÖÐ1£©£¬ÏÝÈëµ½ÄÚºËÖкóµ÷ÓÃdo_mmap_pgoff£¨Í¼ÖÐ2£©¡£¸Ãº¯Êý´ÓÓ¦ÓóÌÐòµÄµØÖ·¿Õ¼äÖзÖÅäÒ»¶ÎÇøÓò×÷ΪӳÉäµÄÄÚ´æµØÖ·£¬²¢Ê¹ÓÃÒ»¸öVMA£¨vm_area_struct£©½á¹¹´ú±í¸ÃÇøÓò£¬Ö®ºó¾Í·µ»Øµ½Ó¦ÓóÌÐò£¨Í¼ÖÐ3£©¡£µ±Ó¦ÓóÌÐò·ÃÎÊmmapËù·µ»ØµÄµØÖ·Ö¸Õëʱ£¨Í¼ÖÐ4£©£¬ÓÉÓÚÐéʵӳÉäÉÐ佨Á¢£¬»á´¥·¢È±Ò³Öжϣ¨Í¼ÖÐ5£©¡£Ö®ºóϵͳ»áµ÷ÓÃȱҳÖжϴ¦Àíº¯Êý£¨Í¼ÖÐ6£©£¬ÔÚȱҳÖжϴ¦Àíº¯ÊýÖУ¬ÄÚºËͨ¹ýÏàÓ¦ÇøÓòµÄVMA½á¹¹Åжϳö¸ÃÇøÓòÊôÓÚÎļþÓ³É䣬ÓÚÊǵ÷ÓþßÌåÎļþϵͳµÄ½Ó¿Ú¶ÁÈëÏàÓ¦µÄPage CacheÏͼÖÐ7¡¢8¡¢9£©£¬²¢ÌîдÏàÓ¦µÄÐéʵӳÉä±í¡£¾­¹ýÕâЩ²½ÖèÖ®ºó£¬Ó¦ÓóÌÐò¾Í¿ÉÒÔÕý³£·ÃÎÊÏàÓ¦µÄÄÚ´æÇøÓòÁË¡£

6 ¡¢Ð¡½á

¡¡¡¡ÎļþCache¹ÜÀíÊÇLinux²Ù×÷ϵͳµÄÒ»¸öÖØÒª×é³É²¿·Ö£¬Í¬Ê±Ò²ÊÇÑо¿ÁìÓòÒ»¸öºÜÈÈÃŵÄÑо¿·½Ïò¡£Ä¿Ç°£¬LinuxÄÚºËÔÚÕâ¸ö·½ÃæµÄ¹¤×÷¼¯ÖÐÔÚ¿ª·¢¸üÓÐЧµÄCacheÌæ»»Ëã·¨ÉÏ£¬ÈçLIRS(Æä±äÖÖClockPro)¡¢ARCµÈ¡£Ïà¹ØÐÅÏ¢¿É¼ûhttp://linux-mm.org/AdvancedPageReplacement¡£

²Î¿¼×ÊÁÏ

  • Understanding Linux Kernel Edition2

  • LinuxÄÚºËÔ´´úÂëÇé¾°·ÖÎö

  • http://www.top500.org

  • R.W.Carr and J.L.Hennessy. WSCLOCK - a simple and effective algorithm for virtual mem-ory management. In Proc. ACM SOSP-08, Dec 1981.

  • S. Jiang, F. Chen, and X. Zhang. CLOCK-Pro: An effective improvement of the CLOCK repla-cement. In Proc. USENIX ATC, Apr. 2005.

  • S. Jiang and X. Zhang. LIRS: an efficient low in-terreference set replacement policy to improve buffer cache performance. In Proc. ACM SIG-METRICS, June 2002.

  • N. Megiddo and D. S. Modha. ARC: A Self-tun-ing, Low Overhead Replacement Cache. In Proc. 2nd USENIX FAST, Mar 2003.
Ïà¹ØÎÄÕ ÈÈÃÅÎÄÕÂ
  • ÓÃLVM¹ÜÀíLinuxϵͳ·þÎñÆ÷´æ´¢¿Õ¼ä
  • Linuxƽ̨ÉÏÇáËɰ²×°ÓëÅäÖÃDomino
  • ʵս£ºÔÚLinuxÏÂÃæÅäÖÃwpa ¿Í»§¶Ë
  • Linux²Ù×÷ϵͳ×îµÄ¹¦ÄÜÊÇʲô£¿
  • ÓÃLinuxϵͳÒýµ¼CDΪ·þÎñÆ÷ÅÅÓǽâÄÑ
  • redhat linux°²×°ºóÔõÑùÓÃÂß¼­¾í
  • ÄܺIJâÊÔ£ºLinuxÓëWindows Server 2008
  • Linux·þÎñÆ÷ADSLÀûÓÃNATʵÏÖÉÏÍø¹²Ïí
  • LinuxÏÂÈçºÎÆÆ½âPHP¼ÓÃÜdezendÈí¼þ
  • ÐÂÊÖѧÌãºÔÚLinuxϰ²×°Perl¼°PerlÄ£¿é
  • Linux hosts.allowÓëhosts.denyÏÞÖÆ·ÃÎÊ
  • LinuxϵͳϵÄÈýÖÖJava»·¾³ÅäÖ÷½·¨
  • linuxµÄ»ù±¾²Ù×÷£¨ÉÏ£©
  • LinuxϵͳÏÂÓ¦ÓÃ֪ʶ´óÜöÝÍ
  • GNU GRUBÆô¶¯¹ÜÀíÆ÷
  • ÖÆ×÷»ùÓÚÈíÅ̵ÄLinuxϵͳ
  • ÍøÂçÅäÖÃÎļþ¿ìËÙ½â¶Á
  • linuxµÄ»ù±¾²Ù×÷£¨Ï£©
  • ÆÊÎöLinuxϵͳÆô¶¯¹ý³Ì
  • DameWareÈþÖÓòÍø¹ÜÀí²»ÔÙ·±Ëö
  • ÔÚRedhat 9ÏÂʵÏÖË«»úÈȱ¸ºÍ¼¯Èº¹¦ÄÜ
  • LINUXÊØ»¤½ø³Ì½éÉÜ
  • Redhat advance server 2.1¼¯ÈºµÄ°²×°Óë¹ÜÀí
  • Linux±ØÐëѧ»áµÄ60¸öÃüÁî-Îļþ´¦Àí
  • ×ÔÓÉ¹ã¸æÇø
    ¡¡
     
    ×îÐÂÈí¼þÏÂÔØ
  • ORF Enterprise Edition 4.2 Õýʽ°æ
  • WinWebMail 3.7.7.3 ±ê×¼°æ
  • WinWebMail 3.7.7.3 ÆóÒµ°æ
  • BMailì÷ÓÊ
  • Merak Email Server for Windows 9.3.1..
  • Merak Email Server for Linux 9.3.1 ¼..
  • Merak Email Server 9.3.1 For Windwos..
  • AXIGEN Mail Server 6.1.1 for Windows
  • AXIGEN Mail Server 6.1.0 for Linux
  • ADModify.NETÏÂÔØ
  • symantec10.1»ù±¾°²×°¼°ÅäÖÃÊÓÆµ½Ì³Ì
  • Backup Exec System RecoveryÖ®±¸·ÝÊÓÆ..
  • ½ñÈÕÓʼþ¼¼ÊõÎÄÕÂ
  • ÃÀ´óѧÉúÇÖÈëÅåÁÖÖݳ¤¸öÈËÓʼþÕË»§±»´þ²¶
  • ˼¿ÆIronPort·¢²¼Ðµç×ÓÓʼþ°²È«É豸
  • Éî¸û"Èí¼þ+·þÎñ" ΢Èí300³ÇÊÐѲչî£ÓÊ
  • ´ÓºÚ¿Í³£Óù¥»÷Êֶο´WEBÓ¦Ó÷À»¤
  • ÏûÏ¢ÈËʿ͸¶ÑÅ»¢ÓëAOLºÏ²¢Ï¸½Ú½«ÓÚ±¾Ô..
  • ¹È¸èÌṩµÄµç×ÓÓʼþ´æµµÊ±¼äÑÓ³¤ÎªÊ®Äê
  • ÑÅ»¢½«ÔÚÓÊÏä·þÎñÖÐÕûºÏаæÔÚÏßÈÕÀú
  • 9ÔÂÀ¬»øÓʼþ×ÜÁ¿¼õÉÙ ÓëISPµ¹±ÕÓйØ
  • À¬»øÓʼþ·¢Õ¹µÄËÄ´óÇ÷ÊÆ
  • º«¹úÒéÔ±³ÆÖйúºÚ¿Íð³äÇàÍß̨·¢ËͲ¡¶¾..
  • VistaÄÑ³ÉÆøºò Windows XPÊÙÃü±»ÑÓ³¤
  • ÈüÃÅÌú¿ËÉý¼¶DLP²úÆ·¼°·´À¬»øÓʼþÍø¹Ø
  • ×îÐÂרÌâ
  • Sendmail ÓʼþϵͳÅäÖÃ
  • ×齨Exchange 2003Óʼþϵͳ
  • Windows Server 2008 רÌâ
  • ORF ·´À¬»øÓʼþϵͳ
  • Exchange Server 2007 רÌâ
  • ISA Server 2006 ½Ì³ÌרÌâ
  • Windows Vista ¼¼ÊõרÌâ
  • ¡°ºÚÝ®¡±£¨BlackBerry£©×¨Ìâ
  • ÒÆ¶¯µç×ÓÓʼþרÌâ
  • Apache James רÌâ
  • IMail Server ²Ù×÷Ö¸ÄÏ
  • ISA Server 2004 ʹÓÃרÌâ
  • ·ÖÀർº½
    ÓʼþÐÂÎÅ×ÊѶ:
    ITÒµ½ç | Óʼþ·þÎñÆ÷ | ÓʼþȤÎÅ | ÒÆ¶¯µçÓÊ
    µç×ÓÓÊÏä | ·´À¬»øÓʼþ|Óʼþ¿Í»§¶Ë|ÍøÂ簲ȫ
    ÐÐÒµÊý¾Ý | ÓʼþÈËÎï | ÍøÕ¾¹«¸æ | ÐÐÒµ·¨¹æ
    ÍøÂç¼¼Êõ:
    ÓʼþÔ­Àí | ÍøÂçЭÒé | ÍøÂç¹ÜÀí | ´«Êä½éÖÊ
    Ïß·½ÓÈë | ·ÓÉ½Ó¿Ú | Óʼþ´æ´¢ | »ªÎª3Com
    CISCO¼¼Êõ | ÍøÂçÓë·þÎñÆ÷Ó²¼þ
    ²Ù×÷ϵͳ:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | ÆäËü²Ù×÷ϵͳ
    Óʼþ·þÎñÆ÷:
    ³ÌÐòÓ뿪·¢ | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    ½ðµÑÓʼþϵͳ | ÆäËü |
    ·´À¬»øÓʼþ:
    ×ÛÊö| ¿Í»§¶Ë·´À¬»øÓʼþ|·þÎñÆ÷¶Ë·´À¬»øÓʼþ
    Óʼþ¿Í»§¶ËÈí¼þ:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | À×Äñ | Eudora |Becky! |Pegasus
    IncrediMail |ÆäËü
    µç×ÓÓÊÏä: ¸öÈËÓÊÏä | ÆóÒµÓÊÏä |Gmail
    ÒÆ¶¯µç×ÓÓʼþ:·þÎñÆ÷ | ¿Í»§¶Ë | ¼¼ÊõÇ°ÑØ
    ÓʼþÍøÂ簲ȫ:
    Èí¼þ©¶´ | °²È«ÖªÊ¶ | ²¡¶¾¹«¸æ |·À»ðǽ
    ¹¥·À¼¼Êõ | ²¡¶¾²éɱ| ISA | Êý×ÖÇ©Ãû
    ÓʼþÓªÏú:
    EmailÓªÏú | ÍøÂçÓªÏú | ÓªÏú¼¼ÇÉ |ÓªÏú°¸Àý
    ÓʼþÈ˲Å:ÕÐÆ¸ | Ö°³¡ | Åàѵ | Ö¸ÄÏ | Ö°³¡
    ½â¾ö·½°¸:
    Óʼþϵͳ|·´À¬»øÓʼþ |°²È« |ÒÆ¶¯µçÓÊ |Õбê
    ²úÆ·ÆÀ²â:
    Óʼþϵͳ |·´À¬»øÓʼþ |ÓÊÏä |°²È« |¿Í»§¶Ë
    ¹ã¸æÁªÏµ | ºÏ×÷ÁªÏµ | ¹ØÓÚÎÒÃÇ | ÁªÏµÎÒÃÇ | ·±ówÖÐÎÄ
    °æÈ¨ËùÓУºÓʼþ¼¼Êõ×ÊÑ¶Íø©2003-2007 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   ÔÁICP±¸05009143ºÅ