
{"id":4025,"date":"2010-12-02T22:28:48","date_gmt":"2010-12-02T16:58:48","guid":{"rendered":"http:\/\/www.froisa.com\/?p=4025"},"modified":"2010-12-02T22:28:48","modified_gmt":"2010-12-02T16:58:48","slug":"4025","status":"publish","type":"post","link":"https:\/\/www.trueangle.org\/index.php\/2010\/12\/02\/4025\/","title":{"rendered":"Unevictable:           4 kB 0.1"},"content":{"rendered":"<p><a href=\"http:\/\/www.trueangle.org\/wp-content\/uploads\/2011\/01\/8eb77-unevictable11-2.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.trueangle.org\/wp-content\/uploads\/2011\/01\/8eb77-unevictable11-2.png\" alt=\"\" title=\"unevictable\" width=\"300\" height=\"168\" class=\"aligncenter size-full wp-image-4043\" \/><\/a><\/p>\n<pre>\nUnevictable:           4 kB\n<\/pre>\n<pre>\nThe Unevictable LRU infrastructure addresses the following classes of\nunevictable pages:\n\n+ page owned by ram disks or ramfs\n+ page mapped into SHM_LOCKed shared memory regions\n+ page mapped into VM_LOCKED [mlock()ed] vmas\n<\/pre>\n<pre>\nLeast  Recently Used  (LRU): discards  the least  recently  used items\nfirst. This  algorithm requires keeping  track of what was  used when,\nwhich  is expensive if  one wants  to make  sure the  algorithm always\ndiscards the least recently used item. General implementations of this\ntechnique require  to keep  \"age bits\" for  cache-lines and  track the\n\"Least  Recently   Used\"  cache-line   based  on  age-bits.   In  such\nimplementation, every time a cache-line  is used, the age of all other\ncache-lines changes.  LRU is actually  a family of  caching algorithms\nwith members including:  2Q by Theodore Johnson and  Dennis Shasha and\nLRU\/K by Pat O'Neil, Betty O'Neil and Gerhard Weikum.\n\n<\/pre>\n<\/p>\n<pre>\nHugetlb pages are also  unevictable. Hugepages are already implemented\nin a way  that these pages don't  reside on the LRU and  hence are not\niterated over during  the vmscan.  So there is no  need to move around\nthese pages  across different  LRU's. We just  account these  pages as\nunevictable for correct statistics.\n\n<\/pre>\n<pre>\n\nThe Unevictable LRU  adds an additional LRU list  to track unevictable\npages and to hide these pages from vmscan.  This mechanism is based on\na patch  by Larry  Woodman of Red  Hat to address  several scalability\nproblems with page reclaim in  Linux.  The problems have been observed\nat  customer sites  on large  memory x86_64  systems.  For  example, a\nnon-numal x86_64 platform with 128GB  of main memory will have over 32\nmillion 4k  pages in a  single zone.  When  a large fraction  of these\npages are not evictable for  any reason [see below], vmscan will spend\na lot of time scanning the LRU lists looking for the small fraction of\npages that  are evictable.  This can  result in a  situation where all\ncpus are  spending 100% of their time  in vmscan for hours  or days on\nend, with the system completely unresponsive.\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Unevictable: 4 kB The Unevictable LRU infrastructure addresses the following classes of unevictable pages: + page owned by ram disks or ramfs + page mapped into SHM_LOCKed shared memory regions + page mapped into VM_LOCKED [mlock()ed] vmas Least Recently Used (LRU): discards the least recently used items first. This algorithm requires keeping track of what &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.trueangle.org\/index.php\/2010\/12\/02\/4025\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Unevictable:           4 kB 0.1&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[82],"tags":[832,988,1035,1076,1108],"_links":{"self":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/4025"}],"collection":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/comments?post=4025"}],"version-history":[{"count":0,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/4025\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/media?parent=4025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/categories?post=4025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/tags?post=4025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}