{"id":3238,"date":"2017-03-03T00:01:09","date_gmt":"2017-03-02T16:01:09","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=3238"},"modified":"2017-03-03T00:01:09","modified_gmt":"2017-03-02T16:01:09","slug":"%e5%a6%82%e4%bd%95%e5%87%8f%e5%b0%91inode%e5%92%8cdentry%e7%9a%84%e7%bc%93%e5%ad%98%e4%bb%a5%e5%b0%bd%e9%87%8f%e9%81%bf%e5%85%8doom","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/3238.html","title":{"rendered":"\u5982\u4f55\u51cf\u5c11inode\u548cdentry\u7684\u7f13\u5b58\u4ee5\u5c3d\u91cf\u907f\u514dOOM"},"content":{"rendered":"<p>=Start=<\/p>\n<h4 id=\"id-\u5982\u4f55\u51cf\u5c11inode\u548cdentry\u7684\u7f13\u5b58\u4ee5\u5c3d\u91cf\u907f\u514dOOM-\u7f18\u7531\uff1a\">\u7f18\u7531\uff1a<\/h4>\n<p>\u5728\u670d\u52a1\u5668\u4e0a\u6267\u884c\u67d0\u4e2afind\u64cd\u4f5c\u65f6\uff0c\u5bfc\u81f4\u5185\u5b58\u5360\u7528\u5347\u9ad8\uff0c\u4e1a\u52a1\u8fdb\u7a0b\u7684\u5185\u5b58\u5360\u7528\u4e5f\u6301\u7eed\u5347\u9ad8\u4e14\u6062\u590d\u7f13\u6162\uff0c\u521d\u6b65\u6392\u67e5\u770b\u4e0a\u53bb\u50cf\u662f\u56e0\u4e3aproc_inode_cache\u7684\u5360\u7528\u5347\u9ad8\u5bfc\u81f4\u3002<\/p>\n<h4 id=\"id-\u5982\u4f55\u51cf\u5c11inode\u548cdentry\u7684\u7f13\u5b58\u4ee5\u5c3d\u91cf\u907f\u514dOOM-\u6b63\u6587\uff1a\">\u6b63\u6587\uff1a<\/h4>\n<h5 id=\"id-\u5982\u4f55\u51cf\u5c11inode\u548cdentry\u7684\u7f13\u5b58\u4ee5\u5c3d\u91cf\u907f\u514dOOM-\u53c2\u8003\u89e3\u7b54\uff1a\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n<p>\u901a\u8fc7\u5b66\u4e60 [Linux Used\u5185\u5b58\u5230\u5e95\u54ea\u91cc\u53bb\u4e86\uff1f |\u00a0<a class=\"external-link\" href=\"http:\/\/blog.yufeng.info\/archives\/2456\" target=\"_blank\" rel=\"nofollow\">http:\/\/blog.yufeng.info\/archives\/2456<\/a>] \u4e86\u89e3\u5230\u300c\u5185\u5b58\u7684\u53bb\u5411\u4e3b\u8981\u67093\u4e2a\uff1a1.\u8fdb\u7a0b\u6d88\u8017\uff1b2.slab\u6d88\u8017\uff1b3.pagetable\u6d88\u8017\u3002\u300d<\/p>\n<blockquote><p>struct page\u662f\u7cfb\u7edfboot\u7684\u65f6\u5019\u5c31\u4f1a\u6839\u636e\u5185\u5b58\u5927\u5c0f\u7b97\u51fa\u6765\u5206\u914d\u51fa\u53bb\u7684\uff0c18\u5185\u6838\u662f1.56%\u5de6\u53f3\uff0c32\u5185\u6838\u7531\u4e8ecgroup\u7684\u539f\u56e0\u4f1a\u57282.3%<\/p><\/blockquote>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeHeader panelHeader pdl\"><b>\u67e5\u770bslab\u4f7f\u7528\u60c5\u51b5\u7684\u65b9\u6cd5<\/b><\/div>\n<div class=\"codeContent panelContent pdl\">\n<div id=\"highlighter_964786\" class=\"syntaxhighlighter sh-confluence nogutter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\" title=\"Hint: double-click to select code\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">$ slabtop<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">[OR]<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">$ cat \/proc\/slabinfo |awk\u00a0<\/code><code class=\"java string\">'{print $1,$3*$4\/1024,\"KB\"}'<\/code>\u00a0<code class=\"java plain\">| sort -k2 -n | tail\u00a0<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>&amp;<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeHeader panelHeader pdl\"><b>\u6bd4\u8f83\u5371\u9669\u7684\u505a\u6cd5<\/b><\/div>\n<div class=\"codeContent panelContent pdl\">\n<div id=\"highlighter_788024\" class=\"syntaxhighlighter sh-confluence nogutter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\" title=\"Hint: double-click to select code\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">echo\u00a0<\/code><code class=\"java value\">1<\/code>\u00a0<code class=\"java plain\">&gt; \/proc\/sys\/vm\/drop_caches\u00a0 # free pagecache<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">[OR]<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">echo\u00a0<\/code><code class=\"java value\">2<\/code>\u00a0<code class=\"java plain\">&gt; \/proc\/sys\/vm\/drop_caches\u00a0 # free dentries and inodes<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">[OR]<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">echo\u00a0<\/code><code class=\"java value\">3<\/code>\u00a0<code class=\"java plain\">&gt; \/proc\/sys\/vm\/drop_caches\u00a0 # free pagecache, dentries and inodes<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\">sync\u00a0 # forces the dump to be destructive<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>&amp;<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeHeader panelHeader pdl\"><b>\u6e29\u548c\u4e00\u70b9\u7684\u505a\u6cd5<\/b><\/div>\n<div class=\"codeContent panelContent pdl\">\n<div id=\"highlighter_798152\" class=\"syntaxhighlighter sh-confluence nogutter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\" title=\"Hint: double-click to select code\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">echo\u00a0<\/code><code class=\"java value\">300<\/code>\u00a0<code class=\"java plain\">&gt; \/proc\/sys\/vm\/vfs_cache_pressure\u00a0 # Increasing vfs_cache_pressure beyond\u00a0<\/code><code class=\"java value\">100<\/code>\u00a0<code class=\"java plain\">causes the kernel to prefer to reclaim dentries and inodes<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<h5 id=\"id-\u5982\u4f55\u51cf\u5c11inode\u548cdentry\u7684\u7f13\u5b58\u4ee5\u5c3d\u91cf\u907f\u514dOOM-\u53c2\u8003\u94fe\u63a5\uff1a\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n<ul>\n<li>Reducing inode and dentry caches to keep OOM killer at bay<br \/>\n<a class=\"external-link\" href=\"https:\/\/major.io\/2008\/12\/03\/reducing-inode-and-dentry-caches-to-keep-oom-killer-at-bay\/\" target=\"_blank\" rel=\"nofollow\">https:\/\/major.io\/2008\/12\/03\/reducing-inode-and-dentry-caches-to-keep-oom-killer-at-bay\/<\/a><\/li>\n<li>slabinfo<br \/>\n<a class=\"external-link\" href=\"http:\/\/man7.org\/linux\/man-pages\/man5\/slabinfo.5.html\" target=\"_blank\" rel=\"nofollow\">http:\/\/man7.org\/linux\/man-pages\/man5\/slabinfo.5.html<\/a><\/li>\n<li>drop_caches<br \/>\n<a class=\"external-link\" href=\"http:\/\/linuxinsight.com\/proc_sys_vm_drop_caches.html\" target=\"_blank\" rel=\"nofollow\">http:\/\/linuxinsight.com\/proc_sys_vm_drop_caches.html<\/a><\/li>\n<li>OOM Killer<br \/>\n<a class=\"external-link\" href=\"https:\/\/linux-mm.org\/OOM_Killer\" target=\"_blank\" rel=\"nofollow\">https:\/\/linux-mm.org\/OOM_Killer<\/a><\/li>\n<\/ul>\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u5728\u670d\u52a1\u5668\u4e0a\u6267\u884c\u67d0\u4e2afind\u64cd\u4f5c\u65f6\uff0c\u5bfc\u81f4\u5185\u5b58\u5360\u7528\u5347\u9ad8\uff0c\u4e1a\u52a1\u8fdb\u7a0b\u7684\u5185\u5b58\u5360\u7528\u4e5f\u6301\u7eed\u5347\u9ad8\u4e14\u6062\u590d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,11],"tags":[30,583,759,762],"class_list":["post-3238","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-linux","tag-linux","tag-oom","tag-slab","tag-slabtop"],"views":6946,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/3238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=3238"}],"version-history":[{"count":1,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/3238\/revisions"}],"predecessor-version":[{"id":3239,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/3238\/revisions\/3239"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=3238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=3238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=3238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}