{"id":59987,"date":"2024-02-12T13:18:02","date_gmt":"2024-02-12T05:18:02","guid":{"rendered":"http:\/\/lrxjmw.cn\/?p=59987"},"modified":"2024-02-12T13:18:02","modified_gmt":"2024-02-12T05:18:02","slug":"linuxkernel-swappiness-meaning","status":"publish","type":"post","link":"https:\/\/lrxjmw.cn\/linuxkernel-swappiness-meaning.html","title":{"rendered":"Linux\u5185\u6838\u9875\u56de\u6536swappiness\u53c2\u6570\u6709\u7740\u4ec0\u4e48\u4f5c\u7528"},"content":{"rendered":"
\u8fd9\u4e24\u5929\u770b\u5fae\u535a\u4e0a\u6709\u4eba\u8ba8\u8bbaswappiness\u76f8\u5173\u95ee\u9898\uff0cmysqlperformanceblog\u4e0a\u4e5f\u6709\u4eba\u8bf4\u5c06swappiness\u8bbe\u62100\u540eMySQL\u88ab\u201c\u610f\u5916\u201d kill\u6389\uff0c\u53e6\u5916\u81ea\u5df1\u6240\u5728\u56e2\u961f\u7ebf\u4e0a\u4e5f\u9047\u5230\u8fc7\u7c7b\u4f3c\u95ee\u9898\uff0c\u5927\u5bb6\u5bf9\u8fd9\u4e2a\u53c2\u6570\u7684\u542b\u4e49\u53ef\u80fd\u8fd8\u4e0d\u662f\u5f88\u6e05\u695a\uff0c\u4e2a\u4eba\u5c1d\u8bd5\u5199\u7bc7\u6587\u7ae0\u8be6\u7ec6\u89e3\u91ca\u4e0b\u8fd9\u4e2a\u53c2\u6570\u3002<\/p>\n
\u672c\u6587\u4e3b\u8981\u5c1d\u8bd5\u89e3\u91ca\u4e24\u4e2a\u95ee\u9898\uff1a
\n1. swappiness\u7684\u786e\u5207\u542b\u4e49\u662f\u4ec0\u4e48\uff0c\u5b83\u5bf9\u5185\u6838\u8fdb\u884c\u9875\u56de\u6536\u673a\u5236\u7684\u5f71\u54cd\u3002
\n2. swappiness\u8bbe\u7f6e\u62100\uff0c\u4e3a\u4ec0\u4e48\u7cfb\u7edf\u4ecd\u7136\u53ef\u80fd\u4f1a\u6709swap\u53d1\u751f\u3002<\/p>\n
page reclaim\u53d1\u751f\u7684\u573a\u666f\u4e3b\u8981\u6709\u4e24\u7c7b\uff0c\u4e00\u4e2a\u662fkswapd\u540e\u53f0\u7ebf\u7a0b\u8fdb\u884c\u7684\u6d3b\u52a8\uff0c\u53e6\u4e00\u4e2a\u662fdirect reclaim\uff0c\u5373\u5206\u914d\u9875\u65f6\u6ca1\u6709\u7a7a\u95f2\u5185\u5b58\u6ee1\u8db3\uff0c\u9700\u8981\u7acb\u5373\u76f4\u63a5\u8fdb\u884c\u7684\u9875\u56de\u6536\u3002\u5927\u4f53\u4e0a\u5185\u5b58\u5206\u914d\u7684\u6d41\u7a0b\u4f1a\u5206\u4e3a\u4e24\u90e8\u5206\uff0c\u4e00\u90e8\u5206\u662ffast path\uff0c\u53e6\u4e00\u90e8\u5206\u662fslow path\uff0c\u901a\u5e38\u5185\u5b58\u4f7f\u7528\u975e\u7d27\u5f20\u60c5\u51b5\u4e0b\uff0c\u90fd\u4f1a\u5728fast path\u5c31\u53ef\u4ee5\u6ee1\u8db3\u8981\u6c42\u3002\u5e76\u4e14fast path\u4e0b\u7684\u5185\u5b58\u5206\u914d\u4e0d\u4f1a\u51fa\u73b0dirty writeback\u53caswap\u7b49\u9875\u56de\u6536\u5f15\u8d77\u7684IO\u963b\u585e\u60c5\u51b5\u3002<\/p>\n
fast path\u5927\u4f53\u6d41\u7a0b\u5982\u4e0b\uff1a
\n1.\u5982\u679c\u7cfb\u7edf\u6302\u8f7d\u4f7f\u7528\u4e86memory cgroup\uff0c\u5219\u9996\u5148\u68c0\u67e5\u662f\u5426\u8d85\u8fc7cgroup\u9650\u989d\uff0c\u5982\u679c\u8d85\u8fc7\u5219\u8fdb\u884cdirect reclaim\uff0c\u901a\u8fc7do_try_to_free_pages\u5b8c\u6210\u3002\u5982\u679c\u6ca1\u8d85\u8fc7\u5219\u8fdb\u884ccgroup\u7684charge\u5de5\u4f5c\uff08charge\u662f\u901a\u8fc7\u4e24\u9636\u6bb5\u63d0\u4ea4\u5b8c\u6210\u7684\uff0c\u8fd9\u91cc\u4e0d\u5c55\u5f00\u4e86\uff09\u3002
\n2.\u4ece\u672c\u5730prefered zone\u5185\u5b58\u8282\u70b9\u67e5\u627e\u7a7a\u95f2\u9875\uff0c\u9700\u8981\u5224\u65ad\u662f\u5426\u6ee1\u8db3\u7cfb\u7edfwatermark\u53cadirty ratio\u7684\u8981\u6c42\uff0c\u5982\u679c\u6ee1\u8db3\u5219\u4ecebuddy system\u4e0a\u6458\u53d6\u76f8\u5e94page,\u5426\u5219\u5c1d\u8bd5\u5bf9\u672c\u5730prefered zone\u8fdb\u884c\u9875\u56de\u6536,\u672c\u6b21fast path\u4e0b\u9875\u56de\u6536\u53ea\u4f1a\u56de\u6536clean page\uff0c\u5373\u4e0d\u4f1a\u8003\u8651dirty page\u4ee5\u53camapped page\uff0c\u8fd9\u6837\u5c31\u4e0d\u4f1a\u4ea7\u751f\u4efb\u4f55swap\u53cawriteback\uff0c\u5373\u4e0d\u4f1a\u5f15\u8d77\u4efb\u4f55blocking\u7684IO\u64cd\u4f5c\uff0c\u5982\u679c\u8fd9\u6b21\u56de\u6536\u4ecd\u7136\u65e0\u6cd5\u6ee1\u8db3\u8bf7\u6c42\u7684\u5185\u5b58\u9875\u6570\u76ee\u5219\u8fdb\u5165slow path<\/p>\n
slow path\u5927\u4f53\u6d41\u7a0b\u5982\u4e0b\uff1a
\n1. \u9996\u5148\u5524\u9192kswapd\u8fdb\u884cpage reclaim\u540e\u53f0\u64cd\u4f5c\u3002
\n2. \u91cd\u65b0\u5c1d\u8bd5\u672c\u5730prefered zone\u8fdb\u884c\u5206\u914d\u5185\u5b58\uff0c\u5982\u679c\u5931\u8d25\u4f1a\u6839\u636e\u8bf7\u6c42\u7684GFP\u76f8\u5173\u53c2\u6570\u51b3\u5b9a\u662f\u5426\u5c1d\u8bd5\u5ffd\u7565watermark, dirty ratio\u4ee5\u53ca\u672c\u5730\u8282\u70b9\u5206\u914d\u7b49\u8981\u6c42\u8fdb\u884c\u518d\u6b21\u91cd\u8bd5\uff0c\u8fd9\u4e00\u6b65\u4e2d\u5982\u679c\u5206\u914d\u9875\u65f6\u6709\u6307\u5b9a__GFP_NOFAIL\u6807\u8bb0\uff0c\u5219\u5206\u914d\u5931\u8d25\u4f1a\u4e00\u76f4\u7b49\u5f85\u91cd\u8bd5\u3002
\n3. \u5982\u679c\u6ca1\u6709__GFP_NOFAIL\u6807\u8bb0\uff0c\u5219\u4f1a\u9700\u5f00\u59cb\u8fdb\u884cpage compact\u53capage direct reclaim\u64cd\u4f5c\uff0c\u4e4b\u540e\u5982\u679c\u4ecd\u7136\u6ca1\u6709\u53ef\u7528\u5185\u5b58\uff0c\u5219\u8fdb\u5165OOM\u6d41\u7a0b\u3002<\/p>\n
\u76f8\u5173\u5185\u5bb9\u53ef\u4ee5\u53c2\u9605\u5185\u6838\u4ee3\u7801__alloc_pages\u51fd\u6570\u7684\u903b\u8f91\uff0c\u53e6\u5916\u65e0\u8bbapage reclaim\u662f\u7531\u8c01\u53d1\u8d77\u7684\uff0c\u6700\u7ec8\u90fd\u4f1a\u7edf\u4e00\u5165\u53e3\u5230shrink_zone\uff0c\u5373\u9488\u5bf9\u6bcf\u4e2azone\u72ec\u7acb\u8fdb\u884creclaim\u64cd\u4f5c\uff0c\u6700\u7ec8\u4f1a\u8fdb\u5165shrink_lruvec\u51fd\u6570\uff0c\u8fdb\u884c\u6bcf\u4e2azone\u76f8\u5e94page lru\u94fe\u8868\u7684\u626b\u63cf\u4e0e\u56de\u6536\u64cd\u4f5c\u3002<\/p>\n
\u9875\u56de\u6536\u5927\u4f53\u6d41\u7a0b\u4f1a\u5148\u5728\u6bcf\u4e2azone\u4e0a\u626b\u63cf\u76f8\u5e94\u7684page\u94fe\u8868\uff0c\u4e3b\u8981\u5305\u62ecinactive anon\/active anon(\u533f\u540d\u9875\u94fe\u8868)\u4ee5\u53cainactive file\/active file\u94fe\u8868\uff08file cache\/\u6620\u5c04\u9875\u94fe\u8868\uff09\uff0c\u4e00\u5171\u56db\u6761\u94fe\u8868\uff0c\u6211\u4eec\u6240\u6709\u4f7f\u7528\u8fc7\u7684page\u5728\u88ab\u56de\u6536\u524d\u57fa\u672c\u662f\u4fdd\u5b58\u5728\u8fd9\u56db\u6761\u94fe\u8868\u4e2d\u7684\u67d0\u4e00\u6761\u4e2d\u7684\uff08\u8fd8\u6709\u4e00\u90e8\u5206\u5728unevictable\u94fe\u8868\u4e2d\uff0c\u5ffd\u7565\uff09\uff0c\u6839\u636e\u5176\u88ab\u5f15\u7528\u7684\u6b21\u6570\u4f1a\u51b3\u5b9a\u5176\u5904\u4e8eactive\u8fd8\u662finactive\u94fe\u8868\u4e2d\uff0c\u6839\u636e\u5176\u7c7b\u578b\u51b3\u5b9a\u5904\u4e8eanon\u8fd8\u662ffile\u94fe\u8868\u4e2d\u3002<\/p>\n
\u9875\u56de\u6536\u603b\u4f53\u4f1a\u626b\u63cf\u9010\u4e2a\u5185\u5b58\u8282\u70b9\u7684\u6240\u6709zone\uff0c\u7136\u540e\u5148\u626b\u63cfactive\uff0c\u5c06\u4e0d\u9891\u7e41\u8bbf\u95ee\u7684\u9875\u632a\u5230inactive\u94fe\u8868\u4e2d\uff0c\u968f\u540e\u626b\u63cfinactive\u94fe\u8868\uff0c\u4f1a\u5c06\u5176\u4e2d\u88ab\u9891\u7e41\u5f15\u7528\u7684\u9875\u91cd\u65b0\u632a\u56de\u5230active\u4e2d\uff0c\u786e\u8ba4\u4e0d\u9891\u7e41\u7684\u9875\u5219\u6700\u7ec8\u88ab\u56de\u6536\uff0c\u5982\u679c\u662ffile based\u7684\u9875\u5219\u6839\u636e\u662f\u5426clean\u8fdb\u884c\u91ca\u653e\u6216\u56de\u5199(writeback\uff0cfilecache\u5219\u76f4\u63a5\u91ca\u653e)\uff0c\u5982\u679c\u662fanon\u5219\u8fdb\u884cswap\uff0c\u6240\u4ee5\u672c\u6587\u5b9e\u9645\u5173\u5fc3\u7684\u662fswappiness\u53c2\u6570\u5bf9anon\u94fe\u8868\u626b\u63cf\u7684\u5f71\u54cd\u3002<\/p>\n
\u53e6\u5916\u8fd8\u9700\u8981\u4e86\u89e3\u524d\u9762\u63cf\u8ff0\u7684\u56db\u4e2a\u94fe\u8868\u539f\u6765\u662f\u653e\u5728zone\u6570\u636e\u7ed3\u6784\u4e0a\u7684\uff0c\u540e\u6765\u5f15\u5165\u4e86mem_cgroup\u5219\uff0c\u91cd\u65b0\u5b9a\u4e49\u4e86\u4e00\u7ec4mem_cgroup_per_zone\/mem_cgroup_per_node\u7684\u6570\u636e\u7ed3\u6784\uff0c\u8fd9\u56db\u4e2a\u94fe\u8868\u540c\u65f6\u5b9a\u4e49\u5728\u8fd9\u7ec4\u6570\u636e\u7ed3\u6784\u4e0a\uff0c\u5982\u679c\u7cfb\u7edf\u5f00\u542f\u4e86mem cgroup\u5219\u4f7f\u7528\u540e\u8005\uff0c\u5426\u5219\u7528\u524d\u8005\u3002<\/p>\n
\u53e6\u5916\u518d\u91cd\u70b9\u8bf4\u4e0bswap\u53ea\u662fpage reclaim\u7684\u4e00\u79cd\u5904\u7406\u63aa\u65bd\uff0c\u4e3b\u8981\u9488\u5bf9anon page\uff0c\u6211\u4eec\u6700\u7ec8\u6765\u770b\u4e0bswappiness\u7684\u786e\u5207\u542b\u4e49<\/p>\n
page reclaim\u903b\u8f91\u4e2d\u5bf9\u524d\u9762\u6240\u8ff0\u56db\u4e2a\u94fe\u8868\u8fdb\u884c\u626b\u63cf\u7684\u903b\u8f91\u5728vmscan.c\u4e2d\u7684get_scan_count\u51fd\u6570\u5185\uff0c\u8be5\u51fd\u6570\u5927\u90e8\u5206\u903b\u8f91\u6ce8\u91ca\u5199\u5f97\u975e\u5e38\u6e05\u695a\uff0c\u6211\u4eec\u7b80\u5355\u68b3\u7406\u4e0b\uff0c\u4e3b\u8981\u5173\u6ce8scan_balance\u53d8\u91cf\u7684\u53d6\u503c\uff1a<\/p>\n
1. \u9996\u5148\u5982\u679c\u7cfb\u7edf\u7981\u7528\u4e86swap\u6216\u8005\u6ca1\u6709swap\u7a7a\u95f4\uff0c\u5219\u53ea\u626b\u63cffile based\u7684\u94fe\u8868\uff0c\u5373\u4e0d\u8fdb\u884c\u533f\u540d\u9875\u94fe\u8868\u626b\u63cf
\n\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n
if (!sc->may_swap || (get_nr_swap_pages() <= 0)) {
\nscan_balance = SCAN_FILE;
\ngoto out;
\n}<\/p><\/blockquote>\n2. \u5982\u679c\u5f53\u524d\u8fdb\u884c\u7684\u4e0d\u662f\u5168\u5c40\u9875\u56de\u6536\uff08cgroup\u8d44\u6e90\u9650\u989d\u5f15\u8d77\u7684\u9875\u56de\u6536\uff09\uff0c\u5e76\u4e14swappiness\u8bbe\u4e3a0\uff0c\u5219\u4e0d\u8fdb\u884c\u533f\u540d\u9875\u94fe\u8868\u626b\u63cf\uff0c\u8fd9\u4e2a\u662f\u6ca1\u5f97\u5546\u91cf\uff0c\u8fd9\u91ccswappiness\u503c\u76f4\u63a5\u51b3\u5b9a\u4e86\u662f\u5426\u6709swap\u53d1\u751f\uff0c\u8bbe\u62100\u5219\u80af\u5b9a\u4e0d\u4f1a\u53d1\u751f\uff0c\u53e6\u5916\u9700\u8981\u6ce8\u610f\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u9700\u8981\u8bbe\u7f6e\u7684\u662fcgroup\u914d\u7f6e\u6587\u4ef6memory.swappiness\uff0c\u800c\u4e0d\u662f\u5168\u5c40\u7684sysctl vm.swappiness
\n\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\nif (!global_reclaim(sc) && !vmscan_swappiness(sc)) {
\nscan_balance = SCAN_FILE;
\ngoto out;
\n}<\/p><\/blockquote>\n3. \u5982\u679c\u8fdb\u884c\u94fe\u8868\u626b\u63cf\u524d\u8bbe\u7f6e\u7684priority(\u8fd9\u4e2a\u503c\u51b3\u5b9a\u626b\u63cf\u591a\u5c11\u5206\u4e4b\u4e00\u7684\u94fe\u8868\u5143\u7d20)\u4e3a0\uff0c\u4e14swappiness\u975e0\uff0c\u5219\u53ef\u80fd\u4f1a\u8fdb\u884cswap
\n\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\nif (!sc->priority && vmscan_swappiness(sc)) {
\nscan_balance = SCAN_EQUAL;
\ngoto out;
\n}<\/p><\/blockquote>\n4. \u5982\u679c\u662f\u5168\u5c40\u9875\u56de\u6536\uff0c\u5e76\u4e14\u5f53\u524d\u7a7a\u95f2\u5185\u5b58\u548c\u6240\u6709file based\u94fe\u8868page\u6570\u76ee\u7684\u52a0\u548c\u90fd\u5c0f\u4e8e\u7cfb\u7edf\u7684high watermark\uff0c\u5219\u5fc5\u987b\u8fdb\u884c\u533f\u540d\u9875\u56de\u6536\uff0c\u5219\u5fc5\u7136\u4f1a\u53d1\u751fswap,\u53ef\u4ee5\u770b\u5230\u8fd9\u91ccswappiness\u7684\u503c\u5982\u4f55\u8bbe\u7f6e\u662f\u5b8c\u5168\u65e0\u5173\u7684\uff0c\u8fd9\u4e5f\u89e3\u91ca\u4e86\u4e3a\u4ec0\u4e48\u5176\u4e3a0\uff0c\u7cfb\u7edf\u4e5f\u4f1a\u8fdb\u884cswap\u7684\u539f\u56e0\uff0c\u53e6\u5916\u6700\u540e\u6211\u4eec\u4f1a\u8be6\u7ec6\u89e3\u91ca\u7cfb\u7edfpage watermark\u662f\u5982\u4f55\u8ba1\u7b97\u7684\u3002
\n\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\nanon \u00a0= get_lru_size(lruvec, LRU_ACTIVE_ANON) +
\nget_lru_size(lruvec, LRU_INACTIVE_ANON);
\nfile \u00a0= get_lru_size(lruvec, LRU_ACTIVE_FILE) +
\nget_lru_size(lruvec, LRU_INACTIVE_FILE);<\/p>\nif (global_reclaim(sc)) {
\nfree = zone_page_state(zone, NR_FREE_PAGES);
\nif (unlikely(file + free <= high_wmark_pages(zone))) {
\nscan_balance = SCAN_ANON;
\ngoto out;
\n}
\n}<\/p><\/blockquote>\n5. \u5982\u679c\u7cfb\u7edfinactive file\u94fe\u8868\u6bd4\u8f83\u5145\u8db3\uff0c\u5219\u4e0d\u8003\u8651\u8fdb\u884c\u533f\u540d\u9875\u7684\u56de\u6536\uff0c\u5373\u4e0d\u8fdb\u884cswap
\n\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\nif (!inactive_file_is_low(lruvec)) {
\nscan_balance = SCAN_FILE;
\ngoto out;
\n}<\/p><\/blockquote>\n6. \u6700\u540e\u4e00\u79cd\u60c5\u51b5\u5219\u8981\u6839\u636eswappiness\u503c\u4e0e\u4e4b\u524d\u7edf\u8ba1\u7684file\u4e0eanon\u54ea\u4e2a\u66f4\u6709\u4ef7\u503c\u6765\u7efc\u5408\u51b3\u5b9afile\u548canon\u94fe\u8868\u626b\u63cf\u7684\u6bd4\u4f8b\uff0c\u8fd9\u65f6\u5982\u679cswappiness\u8bbe\u7f6e\u62100\uff0c\u5219\u4e5f\u4e0d\u4f1a\u626b\u63cfanon\u94fe\u8868\uff0c\u5373\u4e0d\u8fdb\u884cswap,\u4ee3\u7801\u6bd4\u8f83\u591a\uff0c\u4e0d\u518d\u8d34\u51fa\u3002<\/p>\n
\u56db. \u7cfb\u7edf\u5185\u5b58watermark\u7684\u8ba1\u7b97<\/strong><\/div>\n\u524d\u9762\u770b\u5230\u7cfb\u7edf\u5185\u5b58watermark\u5bf9\u9875\u56de\u6536\u673a\u5236\u662f\u6709\u51b3\u5b9a\u5f71\u54cd\u7684\uff0c\u5176\u5b9e\u5728\u5185\u5b58\u5206\u914d\u4e2d\u4e5f\u4f1a\u9891\u7e41\u7528\u5230\u8fd9\u4e2a\u503c\uff0c\u786e\u5207\u7684\u8bf4\u5b83\u6709\u4e09\u4e2a\u503c\uff0c\u5206\u522b\u662flow,min\u548chigh,\u6839\u636e\u5206\u914d\u9875\u65f6\u6765\u6307\u5b9a\u7528\u54ea\u4e2a\uff0c\u5982\u679c\u7cfb\u7edf\u7a7a\u95f2\u5185\u5b58\u4f4e\u4e8e\u76f8\u5e94watermark\u5219\u5206\u914d\u4f1a\u5931\u8d25\uff0c\u8fd9\u4e5f\u662f\u8fdb\u5165slow path\u6216\u8005wakeup kswapd\u7684\u4f9d\u636e\u3002<\/p>\n
\u5b9e\u9645\u8fd9\u4e2a\u503c\u7684\u8ba1\u7b97\u662f\u901a\u8fc7sysctl\u91cc\u7684vm.min_free_kbytes\u6765\u51b3\u5b9a\u7684\uff0c\u5927\u4f53\u7684\u8ba1\u7b97\u516c\u5f0f\u5982\u4e0b\uff1a<\/p>\n
pages_min = min_free_kbytes >> (PAGE_SHIFT \u2013 10);
\ntmp = (u64)pages_min * zone->managed_pages;
\ndo_div(tmp, lowmem_pages);
\nzone->watermark[WMARK_MIN] = tmp;
\nzone->watermark[WMARK_LOW] \u00a0= min_wmark_pages(zone) + (tmp >> 2);
\nzone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);<\/p><\/blockquote>\n\u5373\u6839\u636emin_free_kbytes\u7684\u503c\u6309\u7167\u6bcf\u4e2azone\u7ba1\u7406\u9875\u9762\u7684\u6bd4\u4f8b\u7b97\u51fazone\u7684min_watermark\uff0c\u7136\u540e\u518d\u52a0min\u76841\/4\u5c31\u662flow\uff0c\u52a01\/2\u5c31\u662fhigh\u4e86<\/p>\n
\u603b\u7ed3\uff1a<\/strong><\/div>\nswappiness\u7684\u503c\u662f\u4e2a\u53c2\u8003\u503c\uff0c\u662f\u5426\u4f1a\u53d1\u751fswap\u8ddf\u5f53\u524d\u662f\u54ea\u79cdpage reclaim\u53ca\u7cfb\u7edf\u5f53\u524d\u72b6\u6001\u90fd\u6709\u5173\u7cfb\uff0c\u6240\u4ee5\u8bbe\u7f6e\u4e86swappiness=0\u5e76\u4e0d\u4ee3\u8868\u4e00\u5b9a\u6ca1\u6709swap\u53d1\u751f\uff0c\u540c\u65f6\u8bbe\u4e3a0\u4e5f\u786e\u5b9e\u4f1a\u53ef\u80fd\u53d1\u751fOOM\u3002<\/p>\n
\u4e2a\u4eba\u4ecd\u7136\u8ba4\u4e3a\u7ebf\u4e0a\u73af\u5883\u8bbe\u7f6eswappiness=0\u662f\u6ca1\u6709\u4efb\u4f55\u95ee\u9898\u7684\u3002<\/p>\n
\u6587\u7ae0\u6765\u81ea\u5fae\u4fe1\u516c\u4f17\u53f7\uff1a\u8fd0\u7ef4\u5e2e<\/p>\n
\n\u539f\u6587\u6765\u81ea\uff1ahttp:\/\/www.yunweipai.com\/archives\/12863.html<\/a><\/p>\n