<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://200yi.com/ff_internal/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://200yi.com/ff_internal/feed.php">
        <title>FAIRYFAR-INTERNAL wiki:OS:Linux:内存管理</title>
        <description></description>
        <link>http://200yi.com/ff_internal/</link>
        <image rdf:resource="http://200yi.com/ff_internal/lib/tpl/mnml-blog/images/favicon.ico" />
       <dc:date>2026-05-05T18:30:01+0800</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:Linux%20Transparent%20Huge%20Pages%20%E5%AF%B9%20Oracle%20%E7%9A%84%E5%BD%B1%E5%93%8D&amp;rev=1687008318&amp;do=diff"/>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:Linux%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1%E2%80%95%E2%80%95%E4%BD%BF%E7%94%A8%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98&amp;rev=1687008318&amp;do=diff"/>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:clear_page_erms%E5%AF%B9%E6%80%A7%E8%83%BD%E7%9A%84%E5%BD%B1%E5%93%8D&amp;rev=1687008318&amp;do=diff"/>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:free%E5%91%BD%E4%BB%A4memused%E8%AE%A1%E7%AE%97%E6%96%B9%E6%B3%95%E5%8F%98%E8%BF%81&amp;rev=1687008318&amp;do=diff"/>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:memtest86%2B%E6%A3%80%E6%B5%8B%E5%86%85%E5%AD%98%E9%94%99%E8%AF%AF&amp;rev=1687008318&amp;do=diff"/>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98mmap%E4%B8%8Eshmget%E5%8C%BA%E5%88%AB&amp;rev=1687008318&amp;do=diff"/>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E7%90%86%E8%A7%A3LINUX%E7%9A%84MEMORY%20OVERCOMMIT&amp;rev=1687008318&amp;do=diff"/>
                <rdf:li rdf:resource="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E5%86%85%E5%AD%98%E9%A1%BA%E5%BA%8F%EF%BC%88Memory%20Order%EF%BC%89&amp;rev=1687008318&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://200yi.com/ff_internal/lib/tpl/mnml-blog/images/favicon.ico">
        <title>FAIRYFAR-INTERNAL</title>
        <link>http://200yi.com/ff_internal/</link>
        <url>http://200yi.com/ff_internal/lib/tpl/mnml-blog/images/favicon.ico</url>
    </image>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:Linux%20Transparent%20Huge%20Pages%20%E5%AF%B9%20Oracle%20%E7%9A%84%E5%BD%B1%E5%93%8D&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:Linux Transparent Huge Pages 对 Oracle 的影响</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:Linux%20Transparent%20Huge%20Pages%20%E5%AF%B9%20Oracle%20%E7%9A%84%E5%BD%B1%E5%93%8D&amp;rev=1687008318&amp;do=diff</link>
        <description>转自：https://www.cndba.cn/dave/article/312

一、Transparent Huge Pages 说明

官网上有2篇文章对THP 做了说明：

	* &lt;https://access.redhat.com/solutions/46111&gt;

	* &lt;https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-transhuge.html&gt;

Starting with RedHat6, RedHat7, OL6, OL7 SLES11 and UEK2 kernels, Transparent HugePages are implemented and enabled (default) in an attempt to improve the memory management.  Transparent HugePages are similar to the HugePages th…</description>
    </item>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:Linux%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1%E2%80%95%E2%80%95%E4%BD%BF%E7%94%A8%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:Linux进程间通信――使用共享内存</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:Linux%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1%E2%80%95%E2%80%95%E4%BD%BF%E7%94%A8%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98&amp;rev=1687008318&amp;do=diff</link>
        <description>摘自：https://blog.csdn.net/ljianhui/article/details/10253345

下面将讲解使用共享内存进行进程间通信的方式。

一、什么是共享内存

顾名思义，共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中，所有进程都可以访问共享内存中的地址，就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据，所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。_____________…</description>
    </item>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:clear_page_erms%E5%AF%B9%E6%80%A7%E8%83%BD%E7%9A%84%E5%BD%B1%E5%93%8D&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:clear_page_erms对性能的影响</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:clear_page_erms%E5%AF%B9%E6%80%A7%E8%83%BD%E7%9A%84%E5%BD%B1%E5%93%8D&amp;rev=1687008318&amp;do=diff</link>
        <description>原文：QEMU VFIO 内存优化探索与实践

内核在分配内存的时候由于怕原内存中的数据遭到泄露，所以在分配时对内存进行了清零操作。

clear_page_erms 占据了相当大的时间，并且代码隐藏的相当隐蔽。

	* core v4.14 clear_huge_page 函数实现__</description>
    </item>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:free%E5%91%BD%E4%BB%A4memused%E8%AE%A1%E7%AE%97%E6%96%B9%E6%B3%95%E5%8F%98%E8%BF%81&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:free命令memused计算方法变迁</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:free%E5%91%BD%E4%BB%A4memused%E8%AE%A1%E7%AE%97%E6%96%B9%E6%B3%95%E5%8F%98%E8%BF%81&amp;rev=1687008318&amp;do=diff</link>
        <description>一、概要

Linux “free”命令是 procps 组件的一部分。执行效果如下：


[yz@ff yz]$ free -m
              total        used        free      shared  buff/cache   available
Mem:         257856       59086       67668        5136      131100      189914
Swap:         16383        3995       12388</description>
    </item>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:memtest86%2B%E6%A3%80%E6%B5%8B%E5%86%85%E5%AD%98%E9%94%99%E8%AF%AF&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:memtest86+检测内存错误</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:memtest86%2B%E6%A3%80%E6%B5%8B%E5%86%85%E5%AD%98%E9%94%99%E8%AF%AF&amp;rev=1687008318&amp;do=diff</link>
        <description>摘自：杨英超的《memtest86+检测内存错误》

1. About memtest86+

Based on the well-known original memtest86 written by Chris Brady, memtest86+ is a port by some members of the x86-secret team, now working at www.canardpc.com. Our goal is to provide an up-to-date and completly reliable version of this software tool aimed at memory failures detection.</description>
    </item>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98mmap%E4%B8%8Eshmget%E5%8C%BA%E5%88%AB&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:共享内存mmap与shmget区别</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98mmap%E4%B8%8Eshmget%E5%8C%BA%E5%88%AB&amp;rev=1687008318&amp;do=diff</link>
        <description>转自：https://www.cnblogs.com/my_life/articles/3469263.html

初学的同学多半都会想横向对比一下，到底用mmap实现共享内存好呢，还是用shmget好啊？

下面是我个人的一些理解：

	* 二者本质上是类似的，mmap可以看到文件的实体，而 shmget 对应的文件在交换分区上的 shm 文件系统内，无法直接 cat 查看</description>
    </item>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E7%90%86%E8%A7%A3LINUX%E7%9A%84MEMORY%20OVERCOMMIT&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:理解LINUX的MEMORY OVERCOMMIT</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E7%90%86%E8%A7%A3LINUX%E7%9A%84MEMORY%20OVERCOMMIT&amp;rev=1687008318&amp;do=diff</link>
        <description>转自：http://linuxperf.com/?p=102

正文

Memory Overcommit的意思是操作系统承诺给进程的内存大小超过了实际可用的内存。一个保守的操作系统不会允许memory overcommit，有多少就分配多少，再申请就没有了，这其实有些浪费内存，因为进程实际使用到的内存往往比申请的内存要少，比如某个进程malloc()了200MB内存，但实际上只用到了100MB，按照UNIX/Linux的算法，物理内存页的分配发生在使用的瞬间，而不是在申请的瞬间，也就是说未用到的100MB内存根本就没有分配，这100MB内存就闲置了。下面这个概念很重要，是理解memory overcommit的关键：commit(或overcommit)针对的是内存申请，内存申请不等于内存分配，内存只在实际用到的时候才分配。___$$
CommitLimit = (Physical RAM * vm.overcommit\_ratio / 100) + Swap
$$$$
CommitLimit = ([total RAM] – [total huge TLB RAM]) * vm.…</description>
    </item>
    <item rdf:about="http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E5%86%85%E5%AD%98%E9%A1%BA%E5%BA%8F%EF%BC%88Memory%20Order%EF%BC%89&amp;rev=1687008318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T21:25:18+0800</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wiki:OS:Linux:内存管理:内存顺序（Memory Order）</title>
        <link>http://200yi.com/ff_internal/wiki.php?id=wiki:OS:Linux:%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86:%E5%86%85%E5%AD%98%E9%A1%BA%E5%BA%8F%EF%BC%88Memory%20Order%EF%BC%89&amp;rev=1687008318&amp;do=diff</link>
        <description>转自：https://zhuanlan.zhihu.com/p/45566448

这篇文章主要介绍内存顺序（Memory Order），然后会结合 RocksDB | LevelDB 中的 SkipList 源码来具体分析 RocksDB SkipList 如何通过内存顺序和原子操作做到无锁并发（一写多读）。

Memory Order
_________________________</description>
    </item>
</rdf:RDF>
