domain-name-system – 在没有交换空间的情况下,BBS 9.10在FreeBSD 10.0上不断被杀死

在我们的一个从属DNS服务器BIND,版本bind910-9.10.0P2_3中,不断被/ var / log / messages中的以下消息杀死:
Jul 30 01:00:10 cinnabar kernel: pid 602 (named),uid 53,was killed: out of swap space

此服务在XenServer 6.2中的FreeBSD 10.0 VM上运行,它具有512MB的系统内存.

此时pstat -m -s返回:

Device          1M-blocks     Used    Avail Capacity
/dev/ada0p3           512        9      502     2%

我不认为这是一个交换问题,它似乎是内存泄漏,但我不确定.

编辑:访问信息.

这是两个从DNS服务器之一,它们只存储来自权威服务器的区域,并充当内部用户到外部世界的递归服务器.客户端数量为700-1500个并发用户.由于我们有/ 21内部空间和/ 23公共IPv4空间并且没有来自外部世界的查询,因此端口53甚至在防火墙上被阻止到那些机器.

解决方法

如果您在此服务器上进行任何类型的监视,那么在进程被杀死的时候检查内存使用是否有任何峰值将会很好.然后你可以尝试找到与请求数量等的相关性.

话虽这么说,它可能意味着系统上确实没有内存,但很可能Bind正在请求一个连续的内存区域,碎片正在阻碍而且FreeBSD试图交换一些进程以腾出空间.它可能无法换出多个页面,无法分配并触发内存不足的杀手.

如果您有磁盘空间,最简单的解决方案是通过交换文件添加更多交换(不需要分区).理想情况下,您应该按照Håkan的建议限制缓存大小(绑定认值为无限制),但这可能会对性能产生影响.没有更多的统计数据真的很难说.即使是国内路由器现在也有512MB的RAM,所以你应该考虑增加(并限制缓存)生产服务器,同时为700-1500个用户提供服务(这可以转换为更多的req / sec,再次,没有更多的信息,很难说).

您也可以尝试通过MALLOC_PRODUCTION旋钮调整malloc实现,但我认为面对更简单的解决方案,这太过极了.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些