使用BIND的压力测试工具queryperf做了benchmark。
第一次测试结果不尽人意,拦截模式qps为6000,转发模式只有3000,而BIND有36000。
后来想到会不会是log的原因?因为到了大于10000qps的时候,IO操作耗时就显得很重要了。于是关掉log重试,结果提升明显,拦截模式qps达到16000,转发模式为8000。
BIND是采用C写的,难道Java比C有天生的劣势?忽然想到HotSpot虚拟机都是运行一段时间会变快的,于是尝试多次测试,发现拦截模式qps达到30000。看来Java在工作时间变长之后,性能劣势就并非那么明显了。
benchmark的优秀滋生了将BlackHole做成一个通用DNS服务器的野心。这是一个很宏伟的目标,涉及到DNS协议完全分析、缓存机制、UDP协议分析等。是个很有前途的目标,come on!
来源:oschina
链接:https://my.oschina.net/u/190591/blog/96886