bind居然吃了我50多兆内存。本来openvz就不给交换空间,而且申请了没用的内存也算进去。这样哪里扛得住,赶快想办法,数据库那边的log已经报内存申请不到了。
一开始是尝试调整bind的配置文件,调了半死发现怎么样就是要吃50多兆,虽然比之前是降了几百K。但是杯水车薪啊不够啊。
好吧,换服务器。bind拜拜,搜了一阵,换maradns。但是这老木的服务器也是各种别扭,虽然编译安装挺方便,但是打死不给我开端口,启动了不开端口,53空荡荡,那我要你作何用,而且配置文件和bind不兼容,死。
继续,nsd。这家伙倒是给力,说是可以直接读取bind的zone文件,这样省不少力。编译,很顺利。安装,很顺利(我给弄到/usr/local里面去)。然后配置文件,参考了这篇文章:
我把nsd.conf.sample复制成nsd.conf,然后开改。改动的地方不是很多:
#ip4-only: no 的注释去掉了,改成yes。暂时还没那么先进到用v6。以后需要了再说
#logfile: "/usr/local/var/log/nsd.log"的注释去掉,我不要它给我弄到syslog。因为我一般不会去看那个……
然后zone文件路径,#zonesdir: "/usr/local/etc/nsd"的注释去掉
#key for zone 1那边没动,接下来# Sample zone 1下面,看着好复杂,讨厌,看不懂,根据参考的那个文章写就好了。我先全部删光光,然后:
zone: name: "sora.info.tm" zonefile: "sora.info.tm.zone" zone: name: "reimu.info.tm" zonefile: "reimu.info.tm.zone"
就ok了。
然后为nsd的运行创建一个nsd用户,直接useradd nsd就ok了。
这么一保存,把之前bind用的两个zone文件直接复制到 /usr/local/etc/nsd 下,执行nsdc start,但是没看到进程,端口也没开,奇怪……去查了一下log,跟我说db文件没找到。感觉很诡异,那个db文件什么格式我也不知道,里面要什么也不知道。
然后就是上网搜,发现是用zonec编译出来的。好吧那我就执行了一下zonec,啥参数没有,不过那个db文件这下倒是出来了。nsdc start,ok看到53端口在监听了。自己电脑上用nslookup拿自己的dns查一下,也能出来。
从bind转移到nsd,内存一下子省了几十兆。
nsd的网站是:http://www.nlnetlabs.nl/projects/nsd/
来回个看看,不知你邮件服务器搞好了没?
我没搞邮件服务器。