{"id":5017,"date":"2023-02-11T19:12:28","date_gmt":"2023-02-11T13:42:28","guid":{"rendered":"https:\/\/trysiteprice.com\/blog\/?p=5017"},"modified":"2023-02-11T19:12:28","modified_gmt":"2023-02-11T13:42:28","slug":"linux-stop-flushing-of-mmaped-pages-to-disk","status":"publish","type":"post","link":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/","title":{"rendered":"Linux Stop Flushing of mmaped Pages To Disk"},"content":{"rendered":"<p>In Linux, the behavior of flushing mmapped pages to disk can be controlled using the madvise() system call. This system call allows you to specify the behavior of the kernel when it comes to writing out the pages of a file that are mapped into memory using mmap().<\/p>\n<p>To stop flushing of mmapped pages to disk, you can use the MADV_DONTNEED flag with madvise(). This flag tells the kernel to not write the pages back to disk, even if they have been modified.<\/p>\n<p>Here is an example of how you can use madvise() in a C program to stop flushing of mmapped pages to disk:<\/p>\n<div class=\"bg-black mb-4 rounded-md\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans\"><\/div>\n<div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-c\"><code class=\"!whitespace-pre hljs language-c\"><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;sys\/mman.h&gt;<\/span><\/span><br \/>\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;fcntl.h&gt;<\/span><\/span><br \/>\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;stdio.h&gt;<\/span><\/span><br \/>\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;unistd.h&gt;<\/span><\/span><\/code><\/code><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">()<\/span> {<br \/>\n<span class=\"hljs-type\">int<\/span> fd;<br \/>\n<span class=\"hljs-type\">char<\/span> *data;<\/p>\n<p><code class=\"!whitespace-pre hljs language-c\"><code class=\"!whitespace-pre hljs language-c\"><\/code><\/code>fd = open(<span class=\"hljs-string\">&#8220;file.txt&#8221;<\/span>, O_RDWR);<br \/>\ndata = mmap(<span class=\"hljs-literal\">NULL<\/span>, <span class=\"hljs-number\">4096<\/span>, PROT_READ | PROT_WRITE, MAP_SHARED, fd, <span class=\"hljs-number\">0<\/span>);<br \/>\nmadvise(data, <span class=\"hljs-number\">4096<\/span>, MADV_DONTNEED);<br \/>\nclose(fd);<br \/>\n<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<p>Note that this technique is only applicable to files that are mapped into memory using mmap(). Regular file I\/O is still subject to the normal disk write-back behavior.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Linux, the behavior of flushing mmapped pages to disk can be controlled using the madvise() system call. This system call allows you to specify the behavior of the kernel when it comes to writing out the pages of a file that are mapped into memory using mmap(). To stop flushing of mmapped pages to &#8230; <a title=\"Linux Stop Flushing of mmaped Pages To Disk\" class=\"read-more\" href=\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\" aria-label=\"Read more about Linux Stop Flushing of mmaped Pages To Disk\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5017","post","type-post","status-publish","format-standard","hentry","category-best-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Linux Stop Flushing of mmaped Pages To Disk - TrySitePrice<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Linux Stop Flushing of mmaped Pages To Disk - TrySitePrice\" \/>\n<meta property=\"og:description\" content=\"In Linux, the behavior of flushing mmapped pages to disk can be controlled using the madvise() system call. This system call allows you to specify the behavior of the kernel when it comes to writing out the pages of a file that are mapped into memory using mmap(). To stop flushing of mmapped pages to ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\" \/>\n<meta property=\"og:site_name\" content=\"TrySitePrice\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-11T13:42:28+00:00\" \/>\n<meta name=\"author\" content=\"Rahul Sahu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\"},\"author\":{\"name\":\"Rahul Sahu\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4\"},\"headline\":\"Linux Stop Flushing of mmaped Pages To Disk\",\"datePublished\":\"2023-02-11T13:42:28+00:00\",\"dateModified\":\"2023-02-11T13:42:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\"},\"wordCount\":172,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#organization\"},\"articleSection\":[\"Best\/Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\",\"url\":\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\",\"name\":\"Linux Stop Flushing of mmaped Pages To Disk - TrySitePrice\",\"isPartOf\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#website\"},\"datePublished\":\"2023-02-11T13:42:28+00:00\",\"dateModified\":\"2023-02-11T13:42:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/trysiteprice.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux Stop Flushing of mmaped Pages To Disk\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#website\",\"url\":\"https:\/\/trysiteprice.com\/blog\/\",\"name\":\"TrySitePrice\",\"description\":\"Free Website Value Calculator Tool\",\"publisher\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/trysiteprice.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#organization\",\"name\":\"TrySitePrice\",\"url\":\"https:\/\/trysiteprice.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png\",\"contentUrl\":\"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png\",\"width\":395,\"height\":268,\"caption\":\"TrySitePrice\"},\"image\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4\",\"name\":\"Rahul Sahu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g\",\"caption\":\"Rahul Sahu\"},\"sameAs\":[\"https:\/\/trysiteprice.com\/blog\"],\"url\":\"https:\/\/trysiteprice.com\/blog\/author\/rsahu4242_trysiteprice\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Linux Stop Flushing of mmaped Pages To Disk - TrySitePrice","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/","og_locale":"en_US","og_type":"article","og_title":"Linux Stop Flushing of mmaped Pages To Disk - TrySitePrice","og_description":"In Linux, the behavior of flushing mmapped pages to disk can be controlled using the madvise() system call. This system call allows you to specify the behavior of the kernel when it comes to writing out the pages of a file that are mapped into memory using mmap(). To stop flushing of mmapped pages to ... Read more","og_url":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/","og_site_name":"TrySitePrice","article_published_time":"2023-02-11T13:42:28+00:00","author":"Rahul Sahu","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#article","isPartOf":{"@id":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/"},"author":{"name":"Rahul Sahu","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4"},"headline":"Linux Stop Flushing of mmaped Pages To Disk","datePublished":"2023-02-11T13:42:28+00:00","dateModified":"2023-02-11T13:42:28+00:00","mainEntityOfPage":{"@id":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/"},"wordCount":172,"commentCount":0,"publisher":{"@id":"https:\/\/trysiteprice.com\/blog\/#organization"},"articleSection":["Best\/Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/","url":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/","name":"Linux Stop Flushing of mmaped Pages To Disk - TrySitePrice","isPartOf":{"@id":"https:\/\/trysiteprice.com\/blog\/#website"},"datePublished":"2023-02-11T13:42:28+00:00","dateModified":"2023-02-11T13:42:28+00:00","breadcrumb":{"@id":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/trysiteprice.com\/blog\/linux-stop-flushing-of-mmaped-pages-to-disk\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/trysiteprice.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Linux Stop Flushing of mmaped Pages To Disk"}]},{"@type":"WebSite","@id":"https:\/\/trysiteprice.com\/blog\/#website","url":"https:\/\/trysiteprice.com\/blog\/","name":"TrySitePrice","description":"Free Website Value Calculator Tool","publisher":{"@id":"https:\/\/trysiteprice.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/trysiteprice.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/trysiteprice.com\/blog\/#organization","name":"TrySitePrice","url":"https:\/\/trysiteprice.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png","contentUrl":"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png","width":395,"height":268,"caption":"TrySitePrice"},"image":{"@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4","name":"Rahul Sahu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g","caption":"Rahul Sahu"},"sameAs":["https:\/\/trysiteprice.com\/blog"],"url":"https:\/\/trysiteprice.com\/blog\/author\/rsahu4242_trysiteprice\/"}]}},"_links":{"self":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts\/5017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/comments?post=5017"}],"version-history":[{"count":2,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts\/5017\/revisions"}],"predecessor-version":[{"id":5055,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts\/5017\/revisions\/5055"}],"wp:attachment":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/media?parent=5017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/categories?post=5017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/tags?post=5017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}