服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

为什么不能在域的顶点(又名根)上使用CNAMElogging?

这是关于区域顶点(或根)的CNAME的典型问题 CNAMElogging在域顶是比较常见的知识,是禁忌的做法。 例如: example.com. IN CNAME ithurts.example.net. example.com. IN CNAME ithurts.example.net. 在最好的情况下,名称服务器软件可能会拒绝加载configuration,最坏的情况是它可能会接受此configuration,并使example.com的configuration无效。 最近,我有一个网站托pipe公司向业务部门传递指令,我们需要将CNAME域名的顶点logging到一个新的logging。 知道这将是一个自杀的configuration时,给了BIND,我build议他们,我们将无法遵守,这是一般的bunkbuild议。 这个虚拟主机公司采取的立场是,它并没有被标准的定义RFC所彻底禁止,而且他们的软件也支持它。 如果我们不能CNAME顶点,他们的build议是根本没有顶点logging,他们不会提供一个redirect的networking服务器。 …什么? 我们大多数人都知道, RFC1912坚持认为A CNAME record is not allowed to coexist with any other data. ,但是让我们在这里诚实地对待自己,RFC是唯一的信息。 我知道最接近于禁止这种做法的措词是从RFC1034 : 如果CNAME RR存在于一个节点上,则不应该存在其他数据。 这确保了规范名称和别名的数据不能不同。 不幸的是,我在这个行业已经有足够长的时间来知道“不应该”和“不可以”是不一样的,这对大多数软件devise人员来说是足够的了。 知道任何缺乏简洁的链接来扣篮都会浪费我的时间,我最终让公司放弃了推荐configuration,可能打破常用软件没有适当的披露。 这带来了我们的问答。 有一次,我想让我们真正地掌握关于顶点CNAME的疯狂的技术,而不是像我们通常在有人发表主题时那样避开这个问题。 RFC1912是不受限制的,正如其他任何其他适用的信息RFC,我没有想到。 让我们closures这个婴儿。

为什么在Xen下TCP接受()性能如此糟糕?

在Xen下,我的服务器可以接受()新的传入TCP连接的速率真的很糟糕。 裸机硬件上的相同testing显示3-5倍的加速。 Xen在Xen下如此糟糕? 你可以调整Xen以提高新TCP连接的性能吗? 还有其他虚拟化平台更适合这种用例吗? 背景 最近我一直在研究在Xen下运行的内部开发的Java服务器的性能瓶颈。 服务器会说HTTP并回答简单的TCP连接/请求/响应/断开连接呼叫。 但即使在向服务器发送stream量时,每秒钟也不能接受超过约7000个TCP连接(在一个8核EC2实例,运行Xen的c1.xlarge上)。 在testing期间,服务器也performance出奇怪的行为,其中一个核心(不一定是cpu 0)非常负载> 80%,而其他核心几乎空闲。 这使我认为这个问题与内核/底层虚拟化有关。 当在裸机上testing相同的场景时,我得到的testing结果显示TCP接受速率超过35000 /秒。 在一台运行Ubuntu的Core i5 4核心机器上,所有内核几乎全部饱和。 对我来说,这种数字似乎是正确的。 再次在Xen实例上,我已经试过启用/调整几乎sysctl.conf中的所有设置。 包括启用接收数据包转向和接收stream量转向 ,并将线程/进程固定到CPU,但没有明显的收益。 我知道虚拟化运行时性能会下降。 但是到了这个程度? 速度较慢的裸机服务器性能优于虚拟化技术。 8核的系数是5? 这真的是Xen的预期行为? 你可以调整Xen以提高新TCP连接的性能吗? 还有其他虚拟化平台更适合这种用例吗? 重现这种行为 当进一步调查和指出问题时,我发现netperf性能testing工具可以模拟我遇到的类似情况。 使用netperf的TCP_CRRtesting我收集了来自不同服务器(虚拟化和非虚拟化)的各种报告。 如果您想提供一些调查结果或查看我目前的报告,请参阅https://gist.github.com/985475 我怎么知道这个问题不是由于写得不好的软件造成的? 该服务器已经在裸机硬件上进行过testing,并且几乎饱和了所有可用的内核。 当使用保持活动的TCP连接时,问题就会消失。 为什么这很重要? 在ESN (我的雇主),我是用Java编写的Comet / Web Socket服务器Beaconpush的项目负责人。 即使它性能非常好,在最佳条件下几乎可以使任何带宽达到饱和,但仍然限于新的TCP连接速度。 也就是说,如果用户stream失频繁,那么很多TCP连接将不得不build立起来。 我们尽量减less这种保持连接的活力。 但最后,accept()的性能是让我们的内核不能旋转,我们不喜欢这样做。 更新1 有人把这个问题发给了黑客新闻 ,那里也有一些问题/答案。 但是,我会尽量保持这个问题的最新信息,随着我的发现。 硬件/平台我已经testing了这个: EC2,实例types为c1.xlarge(8核,7 GB RAM)和cc1.4xlarge(2x Intel […]