LinuxÄÚ´æ»úÖÆÒÔ¼°ÊÖ¶¯ÊÍ·ÅswapºÍbufferºÍcache
±¾ÎÄÏÈÈÝlinuxÄÚ´æ»úÖÆ¡¢ÐéÄâÄÚ´æswap¡¢buffer/cacheÊͷŵÈÔÀí¼°Êµ²Ù¡£
Ò»¡¢Ê²Ã´ÊÇlinuxµÄÄÚ´æ»úÖÆ£¿
¶þ¡¢linuxʲôʱ¼ä×îÏÈʹÓÃÐéÄâÄڴ棨swap)£¿
Èý¡¢ÔõôÊÍ·ÅÄڴ棿ËÄ¡¢ÔõôÊÍ·Åswap£¿
Ò»¡¢Ê²Ã´ÊÇlinuxµÄÄÚ´æ»úÖÆ£¿
ÎÒÃÇÖªµÀ£¬Ö±½Ó´ÓÎïÀíÄÚ´æ¶ÁдÊý¾ÝÒª±È´ÓÓ²Å̶ÁдÊý¾ÝÒª¿ìµÄ¶à£¬Òò´Ë£¬ÎÒÃÇÏ£ÍûËùÓÐÊý¾ÝµÄ¶ÁÈ¡ºÍдÈ붼ÔÚÄÚ´æÍê³É£¬¶øÄÚ´æÊÇÓÐÏ޵ģ¬ÕâÑù¾ÍÒý³öÁËÎïÀíÄÚ´æÓëÐéÄâÄÚ´æµÄ¿´·¨¡£
ÎïÀíÄÚ´æ¾ÍÊÇϵͳӲ¼þÌṩµÄÄÚ´æ¾Þϸ£¬ÊÇÕæÕýµÄÄڴ棬Ïà¹ØÓÚÎïÀíÄڴ棬ÔÚlinuxÏÂÉÐÓÐÒ»¸öÐéÄâÄÚ´æµÄ¿´·¨£¬ÐéÄâÄÚ´æ¾ÍÊÇΪÁËÖª×ãÎïÀíÄÚ´æµÄȱ·¦¶øÌá³öµÄÕ½ÂÔ£¬ËüÊÇʹÓôÅÅÌ¿Õ¼äÐéÄâ³öµÄÒ»¿éÂß¼Äڴ棬ÓÃ×÷ÐéÄâÄÚ´æµÄ´ÅÅ̿ռ䱻³ÆΪ½»Á÷¿Õ¼ä£¨Swap Space£©¡£
×÷ΪÎïÀíÄÚ´æµÄÀ©Õ¹£¬linux»áÔÚÎïÀíÄÚ´æȱ·¦Ê±£¬Ê¹Óý»Á÷·ÖÇøµÄÐéÄâÄڴ棬¸üÏêϸµÄ˵£¬¾ÍÊÇÄں˻ὫÔÝʱ²»±ØµÄÄÚ´æ¿éÐÅϢдµ½½»Á÷¿Õ¼ä£¬ÕâÑùÒÔÀ´£¬ÎïÀíÄÚ´æ»ñµÃÁËÊÍ·Å£¬Õâ¿éÄÚ´æ¾Í¿ÉÒÔÓÃÓÚÆäËüÄ¿µÄ£¬µ±ÐèÒªÓõ½ÔʼµÄÄÚÈÝʱ£¬ÕâЩÐÅÏ¢»á±»ÖØдӽ»Á÷¿Õ¼ä¶ÁÈëÎïÀíÄÚ´æ¡£
LinuxµÄÄÚ´æÖÎÀí½ÓÄɵÄÊÇ·ÖÒ³´æÈ¡»úÖÆ£¬ÎªÁË°ü¹ÜÎïÀíÄÚ´æÄÜ»ñµÃ³ä·ÖµÄʹÓã¬Äں˻áÔÚÊʵ±µÄʱ¼ä½«ÎïÀíÄÚ´æÖв»¾³£Ê¹ÓõÄÊý¾Ý¿é×Ô¶¯½»Á÷µ½ÐéÄâÄÚ´æÖУ¬¶ø½«¾³£Ê¹ÓõÄÐÅÏ¢±£´æµ½ÎïÀíÄÚ´æ¡£
ÒªÉîÈëÏàʶlinuxÄÚ´æÔËÐлúÖÆ£¬ÐèÒªÖªµÀÏÂÃæÌáµ½µÄ¼¸¸ö·½Ã棺
Linuxϵͳ»áʱʱµÄ¾ÙÐÐÒ³Ãæ½»Á÷²Ù×÷£¬ÒÔ¼á³Ö¾¡¿ÉÄܶàµÄ¿ÕÏÐÎïÀíÄڴ棬×ÝÈ»²¢Ã»ÓÐʲôÊÂÇéÐèÒªÄڴ棬LinuxÒ²»á½»Á÷³öÔÝʱ²»±ØµÄÄÚ´æÒ³Ãæ¡£Õâ¿ÉÒÔ×èÖ¹ÆÚ´ý½»Á÷ËùÐèµÄʱ¼ä¡£
Linux ¾ÙÐÐÒ³Ãæ½»Á÷ÊÇÓÐÌõ¼þµÄ£¬²»ÊÇËùÓÐÒ³ÃæÔÚ²»±Øʱ¶¼½»Á÷µ½ÐéÄâÄڴ棬linuxÄÚºËƾ֤¡±×î½ü×î¾³£Ê¹Óá°Ëã·¨£¬½ö½ö½«Ò»Ð©²»¾³£Ê¹ÓõÄÒ³ÃæÎļþ½»Á÷µ½ÐéÄâ Äڴ棬ÓÐʱÎÒÃǻῴµ½Õâôһ¸öÕ÷Ïó£ºlinuxÎïÀíÄÚ´æÉÐÓÐÐí¶à£¬¿ÉÊǽ»Á÷¿Õ¼äҲʹÓÃÁËÐí¶à¡£×Åʵ£¬Õâ²¢²»Ï£Æ棬ÀýÈ磬һ¸öÕ¼ÓúܴóÄÚ´æµÄÀú³ÌÔËÐÐʱ£¬Ðè ÒªãýÃðÐí¶àÄÚ´æ×ÊÔ´£¬´Ëʱ¾Í»áÓÐһЩ²»³£ÓÃÒ³ÃæÎļþ±»½»Á÷µ½ÐéÄâÄÚ´æÖУ¬µ«ØʺóÕâ¸öÕ¼ÓÃÐí¶àÄÚ´æ×ÊÔ´µÄÀú³Ì¿¢Ê²¢ÊÍ·ÅÁËÐí¶àÄÚ´æʱ£¬Êʲű»½»Á÷³öÈ¥µÄÒ³Ãæ Îļþ²¢²»»á×Ô¶¯µÄ½»Á÷½øÎïÀíÄڴ棬³ý·ÇÓÐÕâ¸öÐëÒª£¬ÄÇôÏÖÔÚϵͳÎïÀíÄÚ´æ¾Í»á¿ÕÏÐÐí¶à£¬Í¬Ê±½»Á÷¿Õ¼äÒ²ÔÚ±»Ê¹Ó㬾ͷºÆðÁËÊʲÅËù˵µÄÕ÷ÏóÁË¡£¹ØÓÚÕâµã£¬²» Óõ£ÐÄʲô£¬Ö»ÒªÖªµÀÊÇÔõôһ»ØʾͿÉÒÔÁË¡£
½»Á÷¿Õ¼äµÄÒ³ÃæÔÚʹÓÃʱ»áÊ×Ïȱ»½»Á÷µ½ÎïÀíÄڴ棬ÈôÊÇ´ËʱûÓÐ×ã¹»µÄÎïÀíÄÚ´æÀ´ÈÝÄÉÕâЩҳ Ã棬ËüÃÇÓֻᱻÂíÉϽ»Á÷³öÈ¥£¬ÔÆÔÆÒÔÀ´£¬ÐéÄâÄÚ´æÖпÉÄÜûÓÐ×ã¹»¿Õ¼äÀ´´æ´¢ÕâЩ½»Á÷Ò³Ã棬×îÖջᵼÖÂlinux·ºÆð¼ÙËÀ»ú¡¢Ð§ÀÍÒì³£µÈÎÊÌ⣬linuxËä È»¿ÉÒÔÔÚÒ»¶Îʱ¼äÄÚ×ÔÐлָ´£¬¿ÉÊǻָ´ºóµÄϵͳÒѾ»ù±¾²»¿ÉÓÃÁË¡£
Òò´Ë£¬ºÏÀíÍýÏëºÍÉè¼ÆLinuxÄÚ´æµÄʹÓã¬ÊǺÜÊÇÖ÷ÒªµÄ.
ÔÚLinux ²Ù×÷ϵͳÖУ¬µ±Ó¦ÓóÌÐòÐèÒª¶ÁÈ¡ÎļþÖеÄÊý¾Ýʱ£¬²Ù×÷ϵͳÏÈ·ÖÅÉһЩÄڴ棬½«Êý¾Ý´Ó´ÅÅ̶ÁÈëµ½ÕâЩÄÚ´æÖУ¬È»ºóÔÙ½«Êý¾Ý·Ö·¢¸øÓ¦ÓóÌÐò£»µ±ÐèÒªÍùÎļþÖÐд Êý¾Ýʱ£¬²Ù×÷ϵͳÏÈ·ÖÅÉÄÚ´æÎüÊÕÓû§Êý¾Ý£¬È»ºóÔÙ½«Êý¾Ý´ÓÄÚ´æдµ½´ÅÅÌÉÏ¡£È»¶ø£¬ÈôÊÇÓдó×ÚÊý¾ÝÐèÒª´Ó´ÅÅ̶ÁÈ¡µ½ÄÚ´æ»òÕßÓÉÄÚ´æдÈë´ÅÅÌʱ£¬ÏµÍ³µÄ¶ÁдÐÔ ÄܾͱäµÃºÜÊǵÍÏ£¬ÓÉÓÚÎÞÂÛÊÇ´Ó´ÅÅ̶ÁÊý¾Ý£¬ÕÕ¾ÉдÊý¾Ýµ½´ÅÅÌ£¬¶¼ÊÇÒ»¸öºÜÏûºÄʱ¼äºÍ×ÊÔ´µÄÀú³Ì£¬ÔÚÕâÖÖÇéÐÎÏ£¬LinuxÒýÈëÁËbuffersºÍ cached»úÖÆ¡£
buffersÓëcached¶¼ÊÇÄÚ´æ²Ù×÷£¬ÓÃÀ´ÉúÑÄϵͳһ¾·¿ª¹ýµÄÎļþÒÔ¼°ÎļþÊôÐÔÐÅÏ¢£¬ÕâÑùµ±²Ù×÷ϵͳÐèÒª¶ÁȡijЩÎļþʱ£¬»áÊ×ÏÈÔÚbuffers ÓëcachedÄÚ´æÇø²éÕÒ£¬ÈôÊÇÕÒµ½£¬Ö±½Ó¶Á³ö´«Ë͸øÓ¦ÓóÌÐò£¬ÈôÊÇûÓÐÕÒµ½ÐèÒªÊý¾Ý£¬²Å´Ó´ÅÅ̶ÁÈ¡£¬Õâ¾ÍÊDzÙ×÷ϵͳµÄ»º´æ»úÖÆ£¬Í¨¹ý»º´æ£¬´ó´óÌá¸ßÁ˲٠×÷ϵͳµÄÐÔÄÜ¡£µ«buffersÓëcached»º³åµÄÄÚÈÝÈ´ÊDzî±ðµÄ¡£
buffersÊÇÓÃÀ´»º³å¿é×°±¸×öµÄ£¬ËüÖ»¼Í¼ÎļþϵͳµÄÔªÊý¾Ý£¨metadata£©ÒÔ¼° tracking in-flight pages£¬¶øcachedÊÇÓÃÀ´¸øÎļþ×ö»º³å¡£¸üͨË×Ò»µã˵£ºbuffersÖ÷ÒªÓÃÀ´´æ·ÅĿ¼ÄÚÀïÓÐʲôÄÚÈÝ£¬ÎļþµÄÊôÐÔÒÔ¼°È¨Ï޵ȵȡ£¶øcachedÖ±½ÓÓÃÀ´Ó°ÏóÎÒÃÇ·¿ª¹ýµÄÎļþºÍ³ÌÐò¡£
ΪÁËÑéÖ¤ÎÒÃǵĽáÂÛÊÇ·ñ׼ȷ£¬¿ÉÒÔͨ¹ývi·¿ªÒ»¸öºÜÊÇ´óµÄÎļþ£¬¿´¿´cachedµÄת±ä£¬È»ºóÔÙ´ÎviÕâ¸öÎļþ£¬¸ÐÊÜÒ»ÏÂÁ½´Î·¿ªµÄËÙÂÊÓкÎÒìͬ£¬ÊDz»Êǵڶþ´Î·¿ªµÄËÙÂÊÏÔ×Å¿ìÓÚµÚÒ»´ÎÄØ£¿½Ó×ÅÖ´ÐÐÏÂÃæµÄÏÂÁ
find / -name .conf¿´¿´buffersµÄÖµÊÇ·ñת±ä£¬È»ºóÖظ´Ö´ÐÐfindÏÂÁ¿´¿´Á½´ÎÏÔʾËÙÂÊÓкβî±ð¡£
¶þ¡¢linuxʲôʱ¼ä×îÏÈʹÓÃÐéÄâÄڴ棨swap)£¿
[root@wenwen ~]# cat /proc/sys/vm/swappiness 60
µÇ¼ºó¸´ÖÆ
ÉÏÃæÕâ¸ö60´ú±íÎïÀíÄÚ±£´æʹÓÃ40%µÄʱ¼ä²Å»áʹÓÃswap£¨²Î¿¼ÍøÂç×ÊÁÏ£ºµ±Ê£ÓàÎïÀíÄÚ´æµÍÓÚ40%£¨40=100-60£©Ê±£¬×îÏÈʹÓý»Á÷¿Õ¼ä£©swappiness=0µÄʱ¼äÌåÏÖ×î´óÏÞ¶ÈʹÓÃÎïÀíÄڴ棬Ȼºó²ÅÊÇ swap¿Õ¼ä£¬swappiness£½100µÄʱ¼äÌåÏÖÆð¾¢µÄʹÓÃswap·ÖÇø£¬²¢ÇÒ°ÑÄÚ´æÉϵÄÊý¾ÝʵʱµÄ°áÔ˵½swap¿Õ¼äÄÚÀï¡£
ÖµÔ½¸ÅÂÔÏÖÔ½ÇãÏòÓÚʹÓÃswap¡£¿ÉÒÔÉèΪ0£¬ÕâÑù×ö²¢²»»áեȡ¶ÔswapµÄʹÓã¬Ö»ÊÇ×î´óÏ޶ȵؽµµÍÁËʹÓÃswapµÄ¿ÉÄÜÐÔ¡£
ͨ³£ÇéÐÎÏ£ºswap·ÖÇøÉèÖý¨ÒéÊÇÄÚ´æµÄÁ½±¶ £¨ÄÚ´æСÓÚ¼´ÊÇ4Gʱ£©£¬ÈôÊÇÄÚ´æ´óÓÚ4G£¬swapÖ»Òª±ÈÄÚ´æ´ó¾ÍÐС£ÁíÍâÖ»¹ÜµÄ½«swappinessµ÷µÍ£¬ÕâÑùϵͳµÄÐÔÄÜ»á¸üºÃ¡£
B.ÐÞ¸Äswappiness²ÎÊý
ÔÝʱÐÔÐ޸ģº [root@wenwen ~]# sysctl vm.swappiness=10 vm.swappiness = 10 [root@wenwen ~]# cat /proc/sys/vm/swappiness 10
µÇ¼ºó¸´ÖÆ
ÓÀÊÀÐÔÐ޸ģº
[root@wenwen ~]# vim /etc/sysctl.conf ¼ÓÈë²ÎÊý£º vm.swappiness = 35 È»ºóÔÚÖ±½Ó£º [root@wenwen ~]# sysctl -p /etc/sysctl.conf Éó²éÊÇ·ñÉúЧ£º cat /proc/sys/vm/swappiness 35
µÇ¼ºó¸´ÖÆ
Á¬Ã¦ÉúЧ£¬ÖØÆôÒ²¿ÉÒÔÉúЧ¡£
Èý¡¢ÔõôÊÍ·ÅÄڴ棿
Ò»Ñùƽ³£ÏµÍ³ÊDz»»á×Ô¶¯ÊÍ·ÅÄÚ´æµÄÒªº¦µÄÉèÖÃÎļþ/proc/sys/vm/drop_caches¡£Õâ¸öÎļþÖмͼÁË»º´æÊͷŵIJÎÊý£¬Ä¬ÈÏֵΪ0£¬Ò²¾ÍÊDz»ÊÍ·Å»º´æ¡£ËûµÄÖµ¿ÉÒÔΪ0~3Ö®¼äµÄí§ÒâÊý×Ö£¬´ú±í×Ųî±ðµÄ¼ÄÒ壺
0 ¨C ²»ÊÍ·Å1 ¨C ÊÍ·ÅÒ³»º´æ2 ¨C ÊÍ·ÅdentriesºÍinodes3 ¨C ÊÍ·ÅËùÓлº´æ
ʵ²Ù£º
ºÜÏÔ×Ŷà³öÀ´Ðí¶à¿ÕÏеÄÄÚ´æÁË°É
ËÄ¡¢ÔõôÊÍ·Åswap£¿
Ìõ¼þ£ºÊ×ÏÈÒª°ü¹ÜÄÚ´æÊ£ÓàÒª´óÓÚ¼´ÊÇswapʹÓÃÁ¿£¬²»È»»áå´»ú£¡Æ¾Ö¤ÄÚ´æ»úÖÆ£¬swap·ÖÇøÒ»µ©ÊÍ·Å£¬ËùÓдæ·ÅÔÚswap·ÖÇøµÄÎļþ¶¼»áת´æµ½ÎïÀíÄÚ´æÉÏ¡£Í¨³£Í¨¹ýÖØйÒÔØswap·ÖÇøÍê³ÉÊÍ·Åswap¡£
a.Éó²éÄ¿½ñswap·ÖÇø¹ÒÔØÔÚÄÄ£¿b.¹ØÍ£Õâ¸ö·ÖÇøc.Éó²é״̬£ºd.Éó²éswap·ÖÇøÊÇ·ñ¹ØÍ££¬×îÏÂÃæÒ»ÐÐÏÔʾȫe.½«swap¹ÒÔص½/dev/sda5ÉÏf.Éó²é¹ÒÔØÊÇ·ñÀÖ³É
ÒÔÉϾÍÊÇLinuxÄÚ´æ»úÖÆÒÔ¼°ÊÖ¶¯ÊÍ·ÅswapºÍbufferºÍcacheµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡