Articles of 可扩展性

IPSec软件可以使用多个CPU核心

任何人都可以推荐一个好的IPSec软件, 可以使用多个CPU核心来达到在Linux双核四核E5620 Xeon设置(总共16个HT核心)上〜2Gbps的性能? 我曾尝试过OpenSwan和StrongSwan。 OpenSwan KLIPS堆栈只能在单个CPU内核上运行。 而且KLIPS + OCFencryption卸载也似乎执行得非常糟糕,因为它只消耗70%的全部16个CPU核心,而只能提供〜600Mbps。 作为副产品,它也是对TCP数据包进行重新sorting。 到目前为止,使用不同协议的OpenVPN ,我们能够在负载平衡的同一硬件上达到〜2Gbps,没有任何问题。 在16个核心中只有4个以100%被利用。 现在是时候用Ipsec做同样的事情了。 最好应该是OpenSource IPsec解决scheme。 更新: 我的最新发现表明,IPsec NETKEY堆栈可能能够处理两个通信stream量而不会出现问题(但只能在Multiqueue NIC上)。 我无法确认这一点,因为看起来NAPI在高负载下将NIC驱动程序切换到轮询模式,那时所有性能从1.7 Gbps下降到500 Mbps。 另外看来,Ubuntu 10.04并没有考虑到一些内核线程,因此我没有看到如何在所有CPU内核上分配工作负载。

用廉价的SSD硬盘来扩展数据库

我希望你们中的许多人正在处理高stream量的数据库驱动的网站,而且你的主要可伸缩性问题可能在数据库中。 最近我注意到了一些事情: 大多数大型数据库都需要一组DBA才能进行扩展。 他们经常与硬盘驱动器的局限性作斗争,并最终采用非常昂贵的解决scheme(SAN或大型RAID,经常维护的磁盘碎片整理和重新分区等)。维护此类数据库的实际年度成本在$ 100K到$ 1M之间太陡了:) 最后,我们有几家公司,如英特尔,三星,FusionIO等,刚刚开始销售基于SLC闪存技术的极速而又经济实惠的SSD硬盘。 这些驱动器的随机读取/写入速度比市场上最好的旋转硬盘驱动器快100倍(每秒高达5万个随机写入)。 他们的查找时间几乎为零,因此随机I / O的成本与顺序I / O相同,这对于数据库来说非常棒。 这些固态硬盘的成本大约是每GB 10-20美元,而且相对较小(64GB)。 因此,似乎有机会通过简单地构build足够大的RAID 5arraysSSD驱动器(这将花费数千美元)来避免以传统方式扩展数据库的巨大成本。 然后,我们不关心数据库文件是否被分割,我们可以承受每秒100次的磁盘写入,而不必将数据库分散到100个主轴上。 。 其他人对此感兴趣吗? 我一直在testing一些SSD驱动器,可以分享我的结果。 如果这个网站上的任何人已经用SSD解决了他们的I / O瓶颈,我很乐意听到你的战争故事! PS。 我知道有很多昂贵的解决scheme可以帮助实现可扩展性,例如经过时间考验的基于RAM的SAN。 我想要清楚的是,即使是5万美元对于我的项目来说也太昂贵了。 我必须find一个解决scheme,花费不超过1万美元,并且不需要太多时间来执行。 Dave,NXC和Burly, 感谢您的回复! 我想澄清的是,“便宜”这个词对我来说非常重要。 所以,我必须使用便宜的戴尔服务器($ 4K 2950s只有8个内存银行)。 我已经安装了32GB的内存,所以我无法继续扩展。 此外,添加内存并不能让你免受磁盘写入瓶颈,这是我现在的主要问题。 我曾经关心固态硬盘的寿命,但在阅读了现代耗损均衡algorithm之后,我确信这些硬盘将持续足够长的时间。 我的数据库每天写入300GB,预计在2009年每天超过1TB。企业级SSD旨在处理多年来每天大约10TB的写入。 我不同意Burly的观点,即从SAS迁移到SSD需要花费太多的人力。 我的数据库是一个同步镜像,所以我可以升级镜子的一面,然后观看它几个月,如果它吹,我可以故障转移到第二台服务器,仍然有旧的好SAS硬盘驱动器…

Facebook或维基百科IP地址上的硬件是什么?

我想了解Facebook或维基百科这样的大型网站是如何工作的,因为我的好奇心。 我读过关于构build可扩展站点的各种技术,但我仍然对某个特定细节感到困惑。 迷惑我的部分是,DNS最终会将整个域映射到单个IP地址,或者在循环DNS的情况下将DNS映射到less数IP地址。 例如,wikipedia.org只有一个types的DNSlogging。 因此,来自世界各地的访问维基百科的人们必须向DNS中指定的一个IP地址发送请求。 监听一个大型网站的IP地址的硬件是什么?它如何处理来自世界各地用户请求的所有负载? 编辑1:感谢所有的回应! 任播似乎是一个可行的答案…有谁知道一个方法来检查是否一个特定的IP地址是任播路由,以便我可以validation这真的是大网站实践中使用的技巧? 编辑2:更多的阅读了这个话题之后,似乎Anycast通常不用于dynamic网页内容。 任播通常用于UDP(例如,DNS查找),或者有时用于静态内容。 有一点需要注意的是,Facebook使用profile.ak.fbcdn.net来托pipe样式表和JavaScript库等静态内容。 每次我ping这个名字,我得到一个不同的IP地址的响应。 但是,我不能说这是否是任播,还是完全不同的技术。 回到我原来的问题:据我所知,即使是一个大的网站,也会有一个昂贵的负载平衡硬件,监听less量的公共IP地址。