首先,我将向您说明我的情况。我正在运行一个相当受欢迎的网站作为一个副项目,所以我不能真正投入大量资金。我目前只有一台带有 HAProxy 的服务器在前端向 Apache 发送正常请求,向 Lighttpd 发送所有静态文件请求。这非常有效,因为所有 php 和 post 请求都由 Apache 处理,而所有图像都发送到更快的 Lighttpd(该站点主要是图像,所以这非常重要)。不必为提供图像而设置子域会很好,因为短 URL 也非常重要,因此我使用 HAProxy 的原因。
我找到了一个托管服务提供商,它提供了我一直在使用的非常便宜的未计量带宽,当我开始推出 100mbs 网卡可以处理的带宽时,问题就出现了,因此需要第二台服务器。
我已经考虑了很多我的选择,所以我会向你解释每一个。希望您能提供一些见解,了解哪个对我来说是最好的选择,或者也许还有另一种我还没有想到的选择。
要求:
甚至带宽分配也是必须的。我有一个非常强大的服务器,所以不能选择扩展。我需要向外扩展以获得更多带宽。
短网址。我真的不想设置子域,比如 img.example.com,来提供我的图像。example.com/image.jpg 是现在的样子,我真的希望它留下来。但如果没有其他办法,那我就明白了。
处理请求的最近服务器会非常好,但不是必须的。要记住的事情。
HAProxy 负载均衡:
DNS 循环:
直接服务器返回:
理想情况下,如果 HAProxy 支持 Direct Server Return,那么我的问题就可以解决了。我也不想使用 CDN,因为它们真的很贵,毕竟这只是一个副项目。
你明白我的问题吗?如果我没有解释正确或者您需要更多信息,请告诉我。
我在这里阅读了六个关于内部托管的利弊的帖子,但我们的情况与大多数情况略有不同,所以我想我只是提出一个新问题。
简而言之,我们是美国东北部(不是波士顿或纽约,有点在山上)的一家小型软件公司,拥有现有的产品线。出于与未来开发工作相关的各种原因,我们需要以一种或另一种方式在内部安装服务器——现在,我们有几个 1U Sun(非常好的 X2100,顺便说一句,像岩石一样支撑起来)——高度架。
多年来,我们一直在其他地方托管我们的网站,但现在我们有一堆内部硬件不会去任何地方,我认为只做我们所有面向公众的托管可能是值得的在家里也是如此。我的推理,简而言之:
明显的缺点包括:
想法?
谢谢!
更新:在犹豫了一些之后,我们决定继续在异地托管。巧合的是,今天我们街区停电了,这在心理上有点倾斜(几乎不是一个严格的过程,但浪费大约 3 个小时就足以让我意识到宇宙正试图告诉我一些事情;-)。
不确定我们将来会使用哪个供应商,但我很欣赏机架空间云作为 ec2 等的替代品的提示。
我一直不明白是否可以对传入流量进行速率限制。我意识到没有直接的方法来控制远程服务器的发送数据包的速率(除非你控制两个端点),但考虑到这个限制,下载管理器究竟是如何让我成功设置下载速度限制的?
TCP 慢启动和限速传入流量之间是否存在任何联系?是否可以使用slow-start描述的方法人为限制发送方发送数据包的速率?
作为一个额外的考虑,应该注意的是,我想在其上实现流量整形的服务器本身建立 PPPoE 连接,并充当网络其余部分的路由器。
更新:到目前为止的答案已经对我提出的问题进行了公平的概述,但我仍然不知道下载管理器如何能够限制传入流量,更具体地说,是否可以在Linux 网关盒。
澄清:
我正在使用我的公共主机名连接到 MySQL 数据库。主机名解析为我服务器的外部 IP(例如 1.2.3.4)。我通过 MySQL 连接发送/接收的数据是否通过 Internet 传输?使用 localhost 会更快吗?它会占用我服务器的带宽吗?
当网络交换机报告速度为 100 Mbit 或 1 Gbit 时,它们是指每个以太网端口的最大速度还是所有端口上的交换机的物理限制?例如,假设网络上的两个用户同时传输大文件,他们会为 100 Mbit 或 1 Gbit 相互竞争,还是每个人都达到这些最大传输速率?
在最近的更新和安全“强化”之后,位于 120Mbps 电缆调制解调器连接后面的 CentOS6 NAT 路由器/防火墙似乎将吞吐量限制在 30Mbps。
在更新和强化之前,我获得了 90Mbps。
我检查了 CPU 和网络使用情况,这些似乎都不是限制因素。 tc没有显示任何流量整形正在进行,我不知道如何进一步解决这个问题。
我有一个 CentOS 6 系统作为 NAT 路由器/防火墙在 Comcast 电缆调制解调器后面运行,它也作为 NAT 路由器运行
1000 100
eth1 eth0
Internet-------Modem-------------CentOS6-----------------LAN
10.0.0.0/24 192.168.10.0/24
Run Code Online (Sandbox Code Playgroud)
双 NAT 是 CentOS 系统的遗产,以前曾作为以桥接模式运行的时代华纳电缆调制解调器后面的路由器/防火墙。当我进入 Comcast 领域时,我打算将调制解调器切换到桥接模式,但从未尝试过,而且双 NAT 从未引起过问题。我获得了 90Mbps 的吞吐量,没有任何问题。
在准备在 Comcast 调制解调器上转换为桥接模式时,我决定通过禁用一些不需要的服务并执行“yum update”来“强化”CentOS 系统,我已经有一段时间没有这样做了。加固后,我进行了速度测试,惊讶地发现吞吐量低至 30Mbps。
我尝试像这样将我的主桌面系统直接连接到调制解调器
eth1 eth0
Internet---Modem-------------CentOS6-----------------LAN
| 10.0.0.0/24 192.168.10.0/24
|
+--------------Desktop(Win7)
Run Code Online (Sandbox Code Playgroud)
运行 speedtest.net 验证了我的 Comcast 连接能够达到 120Mbps,因此我在 CentOS 系统上更改的某些内容导致吞吐量上限为 30Mbps。每次我从 LAN(在 CentOS 系统后面)进行速度测试时,我都会得到一个在 30Mbps 的 1-2% 内的值,所以几乎感觉有些东西在人为地限制吞吐量。
我想也许流量整形以某种方式启用了,但tc似乎表明它不活跃
[jhg@perseus …Run Code Online (Sandbox Code Playgroud) 假设我在网络上有 2 个相同的非托管千兆交换机,A 和 B。有计算机连接到交换机 A,还有其他计算机连接到交换机 B。A 和 B 通过 1 根电缆连接。因此,A 上的计算机与 B 上的计算机可用的总(理论)带宽是 1Gbit/sec。一切都很好。
如果我现在在交换机之间连接第二条电缆,并且不做其他更改,那么两组计算机之间的总(理论)带宽是否会达到 2Gbit/sec?
是否有任何实用程序可以限制进程启动后的网络吞吐量?简单示例:您注意到用户使用 scp 占用了您所有的上传带宽,并且您想限制速率或降低传输的优先级。
我想我可以使用 iptables/tc 或 pf 的组合来实现这一点,但我想知道是否有可用的“一次性”工具(例如带有 --pid 选项的涓流 ^^)?
如何在 Linux PC 上找到使用最多带宽的进程?
有了iftop它有可能找到它连接生产的大部分带宽,而是如何找到进程?
我们在我们的网络中安装了 IPCop 防火墙/代理,虽然我可以使用 iftop 来查看客户端如何使用 Internet,但是否可以使用诸如 ntop 之类的东西从代理外部对其进行监视?
请注意,我对 LAN 流量不感兴趣,只对进出 Internet 的流量感兴趣。
bandwidth ×10
networking ×5
linux ×4
switch ×2
bsd ×1
cluster ×1
haproxy ×1
hosting ×1
monitoring ×1
mysql ×1
process ×1
router ×1
tcp ×1
throttling ×1
web-hosting ×1