<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[classify: unable to mmap database.kdb: Cannot allocate memory]]></title><description><![CDATA[<h1>Cannot allocate memory</h1>
<p dir="auto">问题: <code>classify: unable to mmap database.kdb: Cannot allocate memory</code></p>
<ul>
<li><a href="https://blog.csdn.net/baidu_20608025/article/details/105012723" rel="nofollow ugc">参考</a></li>
</ul>
<h1>可能的原因</h1>
<ul>
<li>进程数:
<ul>
<li>[最大线程数]<code>sysctl kernel.pid_max</code></li>
<li>[当前线程数]<code>ps -eLf | wc -l</code></li>
</ul>
</li>
<li>修改交换内存
<ul>
<li>[查看]<code>sudo swapon -s</code></li>
<li>[禁用交换文件]<code>sudo swapoff /swapfile</code></li>
<li>[增加内存]<code>sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc</code></li>
<li>[设置交换文件]<code>sudo mkswap /swapfile</code></li>
<li>[启用交换文件]<code>sudo swapon /swapfile</code></li>
</ul>
</li>
<li>内存分配策略 overcommit_memory
<ul>
<li>可能取值
<ul>
<li>0 默认，内核执行启发式内存过量使用处理，方法是估算可用内存量，并拒绝明显无效的请求。</li>
<li>1 内核执行无内存过量使用处理。使用这个设置会增大内存超载的可能性，但也可以增强大量使用内存任务的性能。</li>
<li>2 内存拒绝等于或者大于总可用 swap 大小以及overcommit_ratio指定的物理RAM比例的内存请求。</li>
</ul>
</li>
<li>[查看目前内存申请和可用情况]<code>cat /proc/meminfo | grep Commit</code>
<ul>
<li>#CommitLimit 表示系统可申请的总内存</li>
<li>#Committed_AS 为当前已经申请的内存</li>
</ul>
</li>
<li>echo 1 &gt; /proc/sys/vm/overcommit_memory，然后sysctl -p永久生效</li>
</ul>
</li>
</ul>
]]></description><link>http://an.forum.genostack.com/topic/320/classify-unable-to-mmap-database-kdb-cannot-allocate-memory</link><generator>RSS for Node</generator><lastBuildDate>Sat, 13 Jun 2026 15:32:36 GMT</lastBuildDate><atom:link href="http://an.forum.genostack.com/topic/320.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Jun 2021 06:09:28 GMT</pubDate><ttl>60</ttl></channel></rss>