¡¡¡¡ÔÚWindowsÏÂ×ÊÔ´¹ÜÀíÆ÷²é¿´ÄÚ´æʹÓõÄÇé¿ö£¬Èç¹ûʹÓÃÂÊ´ïµ½80%ÒÔÉÏ£¬ÔÙÔËÐдó³ÌÐòÄܸоõµ½ÏµÍ³²»Á÷³©ÁË£¬ÒòΪÔÚÄÚ´æ½ôȱµÄÇé¿öÏÂʹÓý»»»·ÖÇø£¬Æµ·±µØ´Ó´ÅÅÌÉÏ»»Èë»»³öÒ³»á¼«´óµØÓ°ÏìϵͳµÄÐÔÄÜ¡£¶øµ±ÎÒÃÇʹÓÃfreeÃüÁî²é¿´LinuxϵͳÄÚ´æʹÓÃÇé¿öʱ£¬»á·¢ÏÖÄÚ´æʹÓÃÒ»Ö±´¦ÓڽϸߵÄˮƽ£¬¼´Ê¹´Ëʱϵͳ²¢Ã»ÓÐÔËÐжàÉÙÈí¼þ¡£ÕâÕýÊÇWindowsºÍLinuxÔÚÄÚ´æ¹ÜÀíÉϵÄÇø±ð£¬Õ§Ò»¿´£¬Linuxϵͳ³ÔµôÎÒÃǵÄÄڴ棨Linux ate my ram£©£¬µ«ÆäʵÕâÒ²ÕýÊÇÆäÄÚ´æ¹ÜÀíµÄÌص㡣
¡¡¡¡freeÃüÁî½éÉÜ
¡¡¡¡ÏÂÃæΪʹÓÃfreeÃüÁî²é¿´ÎÒÃÇʵÑéÊÒÎļþ·þÎñÆ÷ÄÚ´æµÃµ½µÄ½á¹û£¬-mÑ¡Ïî±íʾʹÓÃMBΪµ¥Î»£º
¡¡¡¡[root@archlab-server2 ~]# free -m
¡¡¡¡total ¡¡¡¡used ¡¡¡¡free ¡¡¡¡shared ¡¡¡¡buffers ¡¡¡¡cached
¡¡¡¡Mem: ¡¡¡¡¡¡3920 ¡¡ ¡¡1938 ¡¡¡¡1982 ¡¡¡¡ 0 ¡¡¡¡¡¡¡¡ 497 ¡¡¡¡¡¡¡¡1235
¡¡¡¡-/+ buffers/cache:  205 ¡¡¡¡3714
¡¡¡¡Swap: ¡¡¡¡ 4095 ¡¡¡¡ 0 ¡¡¡¡¡¡4095
¡¡¡¡Êä³öµÄµÚ¶þÐбíʾϵͳÄÚ´æµÄʹÓÃÇé¿ö£º
¡¡¡¡Mem£º total£¨×ÜÁ¿£©= 3920MB£¬
¡¡¡¡used£¨ÒÑʹÓã©= 1938MB£¬
¡¡¡¡free£¨¿ÕÏУ©= 1982MB£¬
¡¡¡¡shared£¨¹²ÏíÄڴ棩= 0MB£¬
¡¡¡¡buffers = 497MB£¬
¡¡¡¡cached = 1235MB
¡¡¡¡×¢£ºÇ°ÃæËÄÏ±È½ÏºÃÀí½â£¬buffer ºÍ cacheÕÒ²»µ½ºÏÊʵĴÊÀ´·­Ò룬ËüÃǵÄÇø±ðÔÚÓÚ£º
¡¡¡¡A buffer is something that has yet to be “written” to disk.
¡¡¡¡A cache is something that has been “read” from the disk and stored for later use.
¡¡¡¡¼´bufferÓÃÓÚ´æ·ÅÒªÊä³öµ½´ÅÅ̵ÄÊý¾Ý£¬¶øcacheÊÇ´Ó´ÅÅ̶Á³ö´æ·Åµ½ÄÚ´æÖдý½ñºóʹÓõÄÊý¾Ý¡£ËüÃǵÄÒýÈë¾ùÊÇΪÁËÌṩIOµÄÐÔÄÜ¡£
¡¡¡¡Êä³öµÄµÚÈýÐбíʾÔÚµÚ¶þÐеĻù´¡ÉÏ-/+ buffers/cacheµÃµ½µÄ£º
¡¡¡¡– buffers/cache used = Mem used – buffers – cached = 1938MB – 497MB – 1235MB = 205MB
¡¡¡¡+ buffers/cache free = Mem free + buffers + cached = 1982MB + 497MB + 1235MB = 3714MB
¡¡¡¡Êä³öµÄµÚÈýÐбíʾ½»»»·ÖÇøʹÓõÄÇé¿ö£º
¡¡¡¡Swap£ºtotal£¨×ÜÁ¿£©= 4095MB
¡¡¡¡used£¨Ê¹Óã©= 0MB
¡¡¡¡free£¨¿ÕÏУ©= 4095MB
¡¡¡¡ÓÉÓÚϵͳµ±Ç°Äڴ滹±È½Ï³ä×㣬²¢Î´Ê¹Óõ½½»»»·ÖÇø¡£
¡¡¡¡ÉÏÃæÊä³öµÄ½á¹û±È½ÏÄÑÀí½âµÄ¿ÉÄÜÊǵÚÈýÐУ¬ÎªÊ²Ã´ÒªÏòÓû§Õ¹Ê¾ÕâÐÐÊý¾ÝÄØ£¿ÄÚ´æʹÓÃÁ¿¼õȥϵͳbuffer/cachedµÄÄÚ´æ±íʾºÎÒâÄØ£¿ÏµÍ³¿ÕÏÐÄÚ´æ¼ÓÉÏbuffer/cachedµÄÄÚ´æÓÖ±íʾºÎÒ⣿
¡¡¡¡ÄÚ´æµÄ·ÖÀà
¡¡¡¡ÎÒÃÇ°ÑÄÚ´æ·ÖΪÈýÀ࣬´ÓÓû§ºÍ²Ù×÷ϵͳµÄ½Ç¶È¶ÔÆäʹÓÃÇé¿öÓв»Í¬µÄ³Æºô£º
¡¡¡¡Memory that isYou’d call itLinux calls it
¡¡¡¡taken by applicationsUsedUsed
¡¡¡¡available for applications£¬ and used for somethingFreeUsed
¡¡¡¡not used for anythingFreeFree
¡¡¡¡ÉϱíÖÐsomething´ú±íµÄÕýÊÇfreeÃüÁîÖДbuffers/cached”µÄÄڴ棬ÓÉÓÚÕâ¿éÄÚ´æ´Ó²Ù×÷ϵͳµÄ½Ç¶Èȷʵ±»Ê¹Ó㬵«Èç¹ûÓû§ÒªÊ¹Óã¬Õâ¿éÄÚ´æÊÇ¿ÉÒԺܿ챻»ØÊÕ±»Óû§³ÌÐòʹÓã¬Òò´Ë´ÓÓû§½Ç¶ÈÕâ¿éÄÚ´æÓ¦»®Îª¿ÕÏÐ״̬¡£
¡¡¡¡Ôٴλص½freeÃüÁîÊä³öµÄ½á¹û£¬µÚÈýÐÐÊä³öµÄ½á¹ûÓ¦¸ÃÄÜÀí½âÁË£¬ÕâÐеÄÊý×Ö±íʾ´ÓÓû§½Ç¶È¿´ÏµÍ³ÄÚ´æµÄʹÓÃÇé¿ö¡£Òò´Ë£¬Èç¹ûÄãÓÃtop»òÕßfreeÃüÁî²é¿´ÏµÍ³µÄÄڴ滹ʣ¶àÉÙ£¬ÆäʵÄãÓ¦¸Ã½«¿ÕÏÐÄÚ´æ¼ÓÉÏbuffer/cachedµÄÄڴ棬ÄDzÅÊÇʵ¼Êϵͳ¿ÕÏеÄÄÚ´æ¡£
¡¡¡¡buffers/cachedºÃ´¦
¡¡¡¡Linux ÄÚ´æ¹ÜÀí×öÁ˺ܶྫÐĵÄÉè¼Æ£¬³ýÁ˶Ôdentry½øÐлº´æ£¨ÓÃÓÚVFS£¬¼ÓËÙÎļþ·¾¶Ãûµ½inodeµÄת»»£©£¬»¹²ÉÈ¡ÁËÁ½ÖÖÖ÷ÒªCache·½Ê½£ºBuffer CacheºÍPage Cache£¬Ä¿µÄÊÇΪÁËÌáÉý´ÅÅÌIOµÄÐÔÄÜ¡£´ÓµÍËٵĿéÉ豸É϶ÁÈ¡Êý¾Ý»áÔÝʱ±£´æÔÚÄÚ´æÖУ¬¼´Ê¹Êý¾ÝÔÚµ±Ê±ÒѾ­²»ÔÙÐèÒªÁË£¬µ«ÔÚÓ¦ÓóÌÐòÏÂÒ»´Î·ÃÎʸÃÊý¾Ýʱ£¬Ëü¿ÉÒÔ´ÓÄÚ´æÖÐÖ±½Ó¶ÁÈ¡£¬´Ó¶øÈÆ¿ªµÍËٵĿéÉ豸£¬´Ó¶øÌá¸ßϵͳµÄÕûÌåÐÔÄÜ¡£
¡¡¡¡¶øLinux»á³ä·ÖÀûÓÃÕâЩ¿ÕÏеÄÄڴ棬Éè¼Æ˼ÏëÊÇÄÚ´æ¿ÕÏл¹²»ÈçÄÃÀ´¶à»º´æһЩÊý¾Ý£¬µÈÏ´γÌÐòÔٴηÃÎÊÕâЩÊý¾ÝËٶȿìÁË£¬¶øÈç¹û³ÌÐòҪʹÓÃÄÚ´æ¶øϵͳÖÐÄÚ´æÓÖ²»×ãʱ£¬Õâʱ²»ÊÇʹÓý»»»·ÖÇø£¬¶øÊÇ¿ìËÙ»ØÊÕ²¿·Ö»º´æ£¬½«ËüÃÇÁô¸øÓû§³ÌÐòʹÓá£
¡¡¡¡Òò´Ë£¬¿ÉÒÔ¿´³ö£¬buffers/cachedÕæÊÇ°ÙÒæ¶øÎÞÒ»º¦£¬ÕæÕýµÄ»µ´¦¿ÉÄÜÈÃÓû§²úÉúÒ»ÖÖ´í¾õ——LinuxºÄÄڴ棡Æäʵ²»È»£¬Linux²¢Ã»ÓгԵôÄãµÄÄڴ棬ֻҪ»¹Î´Ê¹Óõ½½»»»·ÖÇø£¬ÄãµÄÄÚ´æËùÊ£ÎÞ¼¸Ê±£¬ÄãÓ¦¸Ã¸Ðµ½ÇìÐÒ£¬ÒòΪLinux »º´æÁË´óÁ¿µÄÊý¾Ý£¬Ò²ÐíÏÂÒ»´ÎÄã´ÓÖÐÊÜÒ棡
¡¡¡¡ÊµÑéÖ¤Ã÷
¡¡¡¡ÏÂÃæͨ¹ýʵÑéÀ´ÑéÖ¤ÉÏÃæµÄ½áÂÛ£º
¡¡¡¡ÎÒÃÇÏȺó¶ÁÈëÒ»¸ö´óÎļþ£¬±È½ÏÁ½´Î¶ÁÈëµÄʵ¼ù£º
¡¡¡¡Ê×ÏÈÉú³ÉÒ»¸ö1GµÄ´óÎļþ
¡¡¡¡[root@archlab-server2 ~]# dd if=/dev/zero of=bigfile bs=1M count=1000
¡¡¡¡1000+0 records in
¡¡¡¡1000+0 records out
¡¡¡¡1048576000 bytes (1.0 GB) copied£¬ 15.8598 s£¬ 66.1 MB/s
¡¡¡¡[root@archlab-server2 ~]# du -h bigfile
¡¡¡¡1001M bigfile
¡¡¡¡Çå¿Õ»º´æ
¡¡¡¡[root@archlab-server2 ~]# free -m
¡¡¡¡total     used     free     shared    buffers    cached
¡¡¡¡Mem: ¡¡¡¡  3920       154     3766      0         0          33
¡¡¡¡-/+ buffers/cache:   120     3800
¡¡¡¡Swap:      4095      0       4095
¡¡¡¡¶ÁÈëÕâ¸öÎļþ£¬²âÊÔÏûºÄµÄʱ¼ä
¡¡¡¡[root@archlab-server2 ~]# time cat bigfile > /dev/null
¡¡¡¡real 0m18.449s
¡¡¡¡user 0m0.013s
¡¡¡¡sys 0m0.617s
¡¡¡¡[root@archlab-server2 ~]# free -m
¡¡¡¡total      used     free     shared    buffers     cached
¡¡¡¡Mem:      3920       1159     2761     0         3           1035
¡¡¡¡-/+ buffers/cache:   120      3800
¡¡¡¡Swap:      4095      0        4095
¡¡¡¡ÔٴζÁÈë¸ÃÎļþ£¬²âÊÔÏûºÄµÄʱ¼ä
¡¡¡¡[root@archlab-server2 ~]# time cat bigfile > /dev/null
¡¡¡¡real 0m0.310s
¡¡¡¡user 0m0.005s
¡¡¡¡sys 0m0.304s
¡¡¡¡´ÓÉÏÃæ¿´³ö£¬µÚÒ»´Î¶ÁÕâ¸ö1GµÄÎļþ´óÔ¼ºÄʱ18s£¬¶øµÚ¶þ´ÎÔٴζÁµÄʱºò£¬Ö»ºÄʱ0.3s£¬×ã×ãÌáÉý60±¶£¡