Linux£¬×÷Ϊ×îÊÜ»¶ÓµÄ¿ªÔ´²Ù×÷ϵͳ֮һ£¬ÒÔÆäÇ¿´óµÄÁé»îÐԺͿɶ¨ÖÆÐÔ£¬³ÉΪ·þÎñÆ÷¡¢¹¤×÷Õ¾ÒÔ¼°Ç¶ÈëʽϵͳµÄÊ×Ñ¡
È»¶ø£¬¼´±ãÊÇÔÚÈç´ËÇ¿´óµÄ²Ù×÷ϵͳÖУ¬×ÊÔ´µÄºÏÀí·ÖÅäºÍ¹ÜÀíÒÀÈ»ÖÁ¹ØÖØÒª
±¾ÎĽ«ÉîÈë̽ÌÖLinuxϵͳÖеĻº´æ»úÖÆ¼°ÆäÏÞÖÆ£¬²¢Ìá³öÓÅ»¯²ßÂÔ£¬ÒÔÆÚ°ïÖú¶ÁÕ߸üºÃµØÀí½â²¢ÓÅ»¯ÆäLinuxϵͳµÄÐÔÄÜ
Ò»¡¢Linux»º´æ»úÖÆ¸ÅÊö Linux²Ù×÷ϵͳͨ¹ý¸´ÔÓµÄÄÚ´æ¹ÜÀí»úÖÆ£¬ÊµÏÖÁ˶ÔÎïÀíÄÚ´æµÄ¸ßЧÀûÓÃ
ÆäÖУ¬»º´æ»úÖÆÊÇÌáÉýϵͳÐÔÄܵÄÖØÒªÊÖ¶ÎÖ®Ò»
LinuxÖ÷ÒªÀûÓÃÁ½ÖÖÀàÐ͵Ļº´æ£ºÒ³Ã滺´æ£¨Page Cache£©ºÍĿ¼Ï´æ£¨Dentry Cache£¬Ò²³ÆÎªinode Cache£©
1.Ò³Ãæ»º´æ£¨Page Cache£©£ºÒ³Ã滺´æÓÃÓÚ´æ´¢´Ó´ÅÅ̶ÁÈ¡µÄÊý¾Ý¿é
µ±Îļþ±»¶Áȡʱ£¬Êý¾Ý±»¼ÓÔØµ½Ò³Ã滺´æÖУ¬ºóÐøµÄ·ÃÎÊ¿ÉÒÔÖ±½Ó´Ó»º´æÖлñÈ¡£¬¼õÉÙÁË´ÅÅÌI/O²Ù×÷£¬´Ó¶øÌá¸ßÁË·ÃÎÊËÙ¶È
LinuxÄں˻áÖÇÄܵعÜÀíÒ³Ãæ»º´æ£¬¸ù¾ÝÄÚ´æÊ¹ÓÃÇé¿öºÍ·ÃÎÊģʽ¶¯Ì¬µ÷Õû»º´æ´óС
2.Ŀ¼Ï´æ£¨Dentry Cache£©£ºÄ¿Â¼Ï´æ´æ´¢ÁËÎļþϵͳĿ¼½á¹¹µÄÐÅÏ¢£¬°üÀ¨ÎļþÃûºÍ¶ÔÓ¦µÄinodeºÅ
Õâ¼ÓËÙÁËÎļþ·¾¶µÄ½âÎö¹ý³Ì£¬¼õÉÙÁ˲éÕÒÎļþËùÐèµÄʱ¼ä
¶þ¡¢»º´æ»úÖÆµÄÓŵãÓëÌôÕ½ Óŵ㣺 - Ìá¸ß·ÃÎÊËÙ¶È£º»º´æ»úÖÆÏÔÖø¼õÉÙÁË´ÅÅÌI/O²Ù×÷£¬¼Ó¿ìÁËÊý¾Ý¶ÁдËÙ¶È
- ÖÇÄÜ×ÊÔ´¹ÜÀí£ºLinuxÄÚºËͨ¹ýËã·¨£¨ÈçLRU£¬Least Recently Used£©×Ô¶¯¹ÜÀí»º´æ£¬ÓÅÏȱ£Áô×î½ü»ò×î³£·ÃÎʵÄÊý¾Ý
- ϵͳÎȶ¨ÐÔ£ºÓÐЧµÄ»º´æ¹ÜÀíÓÐÖúÓÚ¼õÇáÄÚ´æÑ¹Á¦£¬¼õÉÙÒòÄÚ´æ²»×ãµ¼ÖµÄϵͳ±ÀÀ£
ÌôÕ½£º - ÄÚ´æÕ¼ÓãºÎÞÏÞÖÆµÄ»º´æÔö³¤»áÕ¼ÓôóÁ¿Äڴ棬¿ÉÄܵ¼ÖÂÆäËû½ø³ÌÒòÄÚ´æ²»×ã¶øÐÔÄÜϽµÉõÖÁÎÞ·¨ÔËÐÐ
- »º´æÊ§Ð§£ºÈç¹û»º´æÖеÄÊý¾Ý±»Æµ·±¸üлòɾ³ý£¬»º´æµÄÓÐЧÐÔ»áÊܵ½Ó°Ï죬µ¼Ö»º´æÃüÖÐÂÊϽµ
- »º´æÎÛȾ£ºÄ³Ð©Çé¿öÏ£¬²»³£ÓõÄÊý¾Ý¿ÉÄܱ»´íÎ󵨱£ÁôÔÚ»º´æÖУ¬ÀË·ÑÄÚ´æ×ÊÔ´
Èý¡¢Linux»º´æÏÞÖÆµÄ²ßÂÔÓëʵ¼ù ΪÁ˳ä·Ö·¢»ÓLinux»º´æ»úÖÆµÄÓÅÊÆ£¬Í¬Ê±±ÜÃâÆäDZÔڵĸºÃæÓ°Ï죬ÐèÒª²ÉȡһϵÁвßÂÔÀ´ºÏÀíÏÞÖÆºÍÓÅ»¯»º´æ
1.ÊÖ¶¯ÇåÀí»º´æ ËäÈ»LinuxÄÚºËͨ³£Äܹ»×Ô¶¯¹ÜÀí»º´æ£¬µ«ÔÚijЩÇé¿öÏ£¬ÊÖ¶¯ÇåÀí»º´æ¿ÉÄÜÊDZØÒªµÄ
¿ÉÒÔʹÓÃ`sync`ÃüÁ»º´æÖеÄÊý¾ÝдÈë´ÅÅÌ£¬È»ºóʹÓÃ`echo`ÃüÁîÅäºÏ²»Í¬µÄ²ÎÊýÏò`/proc/sys/vm/drop_caches`дÈëÖµÀ´ÇåÀí²»Í¬ÀàÐ͵Ļº´æ£º -`echo 1 > /proc/sys/vm/drop_caches`£ºÇåÀíÒ³Ãæ»º´æ
-`echo 2 > /proc/sys/vm/drop_caches`£ºÇåÀíĿ¼Ï´æºÍinode»º´æ
-`echo 3 > /proc/sys/vm/drop_caches`£ºÇåÀíËùÓлº´æ
×¢Ò⣬Ƶ·±ÊÖ¶¯ÇåÀí»º´æ¿ÉÄܲ»ÊÇ×î¼Ñʵ¼ù£¬ÒòΪËü»á´ò¶ÏÄں˵Ä×ÔÈ»»º´æ¹ÜÀí¹ý³Ì£¬Í¨³£Ö»ÔÚÌØ¶¨Î¬»¤´°¿Ú»òµ÷ÊÔʱʹÓÃ
2.µ÷Õû»º´æ²ÎÊý LinuxÌṩÁ˶à¸öÄں˲ÎÊýÀ´µ÷Õû»º´æÐÐΪ£¬Èç`vm.swappiness`¡¢`vm.dirty_ratio`ºÍ`vm.dirty_background_ratio`µÈ
-vm.swappiness£º¿ØÖÆÄÚºËʹÓý»»»¿Õ¼ä£¨swap£©µÄÇãÏò
½ÏµÍµÄÖµÒâζ×ÅÄں˸üÇãÏòÓÚ±£ÁôÄÚ´æÖеÄÊý¾Ý£¬¶ø²»Êǽ«Æä»»³öµ½swap£¬Õâ¶ÔÓÚÄÚ´æ³ä×ãÇÒÏ£Íû×î´ó»¯Ó¦ÓÃÐÔÄܵij¡¾°ºÜÓÐÓÃ
-vm.dirty_ratioºÍvm.dirty_background_ratio£ºÕâÁ½¸ö²ÎÊý¶¨ÒåÁËÄں˺Îʱ¿ªÊ¼½«Êý¾Ý´ÓÄÚ´æÍ¬²½µ½´ÅÅÌ
µ÷ÕûÕâЩֵ¿ÉÒÔ°ïÖúƽºâI/OÐÔÄܺÍÄÚ´æÊ¹ÓÃ
3.ʹÓÃÄÚ´æ¹ÜÀí¹¤¾ß ÖîÈç`cgroups`ºÍ`ksm`£¨Kernel Same-page Merging£©µÈ¹¤¾ß¿ÉÒÔ°ïÖú¸ü¾«Ï¸µØ¿ØÖÆÄÚ´æÊ¹ÓÃ
`cgroup