这个标题可能没什么意义,所以这里是一个例子。
我有一个文件托管站点,它提供大量半随机访问的文件。
设置如下:
- 大马力前端+DB服务器,也对需要编码的文件进行编码
- 新文件服务器,存储新上传的内容,可能(并且通常)可以快速访问,它具有 500GB 的突袭 SSD 存储,可以推动超过 3GBit 的流量。
- 3 个便宜的节点服务器,在 raid1 中包含 2 个 750GB SATA 驱动器,其中超过 2 周的文件被存档,来自 SSD 服务器(如上所述)。
通过子域(通过 modsec)以直接的方式(server1.domain.com、server2.domain.com 等)访问每台服务器上的文件
我遇到的问题是这个。我推出了一项“高级”服务,人们每月支付少量费用,即可获得无广告、快速访问网站内容的服务。登录后,他们会通过 premium.server1.domain.com 通过不同的 modsec 脚本访问相同的文件,并使用不同的密码。一切都很好,花花公子....除了便宜的节点服务器都是 IO 绑定的,所以通过不同的、不饱和的网络访问它们上的文件没有区别,因为它不能足够快地读取驱动器。
什么是使站点上的文件可以通过 2 个不同的网络路由访问的好方法,其中 1 个将是饱和的(“免费网络”),而所有其他文件都在一个不饱和的“高级”网络上?
等等,您的问题与您在解释中途已经回答的问题有关。就像你说的,你的问题不在于网络适配器的饱和,你受到 SATA 驱动器上 IO 的限制。还是我看错了?
假设这是正确的,您可以根据旧文件的访问模式进行一些改进。如果您倾向于一次在单个文件上“运行”(即,该文件的链接发布在博客上,然后突然您收到 500 个唯一 IP 请求同一文件),那么您应该将该文件移动到内存或页面文件缓存,或在提供之前将其暂存到 SSD 服务器。
最近有人问了一个类似的问题,我探索了其他可能的解决方案: Windows Server 2003 - 处理数百个同时下载