我想迁移一个现有的应用程序,它大约有。1000 万条记录存储在 CouchDB 的关系数据库中。我喜欢 CouchDB 的一点是易于复制和快速缓存视图。我不喜欢的是写入和查看创建速度,这对于 1000 万个文档来说会非常慢。
我必须解决这些潜在瓶颈的一个想法是拥有三个 CouchDB 实例:
实例 2 从实例 1 复制而来。由于不会有任何应用程序使用实例 2,因此可以在不影响生产应用程序的情况下创建新视图。
实例 3 从包含所有缓存视图的实例 2 复制而来。
这是一个可行的解决方案吗?
“每个人”都知道 Apache 适用于 Linux/Unix,而在 Windows 上 IIS 是必经之路。
但是,我不是 Linux 专家,如果在生产环境中使用与开发过程中使用的设置相同的设置,那将是一种极大的解脱。我是一名独立开发人员,我正在努力使事情尽可能简单。我已经摆脱了其他问题,例如存储(-> 云)电子邮件(-> 邮戳)。
那么,当我将 Apache 放在来自 Rackspace 的 Windows 虚拟专用服务器中并将其用作PHP 项目的主要生产环境时,可能会发生什么真正的缺点?与不必学习不同操作系统的可能性相比,获得更多 VPS 资源的钱并不是什么大问题。
预计不会出现超大流量。我的 PHP 项目也可以相当优化。有一些繁重的脚本,但仅适用于内部(登录)用户。所有其他的都可以或多或少地静态提供。
我试过的:
老的:
新的:
疑虑/疑虑:
问题:
让我先说这是本主题的后续问题。
通过将 memcached 服务器从 Solaris (SmartOS) 切换到 Ubuntu 来“解决”这个问题。现在我们已经将负载增加了大约 5 倍,并且再次遇到问题。
我们正在运行一个大约每分钟处理 1000 个请求的站点,每个请求以大约 3 次读取和 1 次写入命中 Memcached。所以负载大约是每秒 65 个请求。缓存中的数据总量约为 37M,每个键包含的数据量非常小(JSON 编码的整数数组,小于 1K)。
我们在这些页面上设置了一个基准测试脚本,并将数据输入 StatsD 进行记录。问题在于,Memcached 需要很长时间才能响应的峰值。这些似乎与流量高峰无关。

什么可能导致这些尖峰?为什么 memcached 会占用一秒钟的时间来回复?我们刚刚启动了第二台服务器以放入池中,它在峰值的频率或严重性方面没有任何明显的差异。
这是服务器上 getStats() 的输出:
Array
(
[-----------] => Array
(
[pid] => 1364
[uptime] => 3715684
[threads] => 4
[time] => 1336596719
[pointer_size] => 64
[rusage_user_seconds] => 7924
[rusage_user_microseconds] => 170000
[rusage_system_seconds] => 187214
[rusage_system_microseconds] => 190000
[curr_items] => 12578
[total_items] => 53516300
[limit_maxbytes] => 943718400
[curr_connections] => …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚 facebook/youtube 等网站的负载平衡究竟是如何工作的,但我几乎没有问题。因此,在大量阅读之后,我发现负载平衡看起来像这样:当负载平衡器应该是一个服务器时,它会在服务器之间分配流量。

我的问题是:如果负载平衡器是在其他服务器之间分配流量的单个服务器,那么像 facebook/youtube 这样的网站如何每秒处理 50,000 多个请求?如果负载均衡器是单个服务器,它不会死,他如何能够路由 10gbps 或更多的流量?另外这个负载平衡器如何知道视频 XXXX(例如)位于哪个服务器上?
我们经常在互联网上看到一些著名的网站,例如 Facebook、Google、Yahoo……每个月都有数亿独立访问者。
但是对于较小的(或者我应该说通常的)网站来说,数量级是多少?
有人可以举例说明什么是小型、中型和非常高的流量,例如每月的访问范围。
我只是想有一个规模并能够对网站进行分类,目前我没有任何参考。
我想就如何制定扩展我的 Web 应用程序的策略获得一些建议/最佳实践。我在这里胡说八道并展示我有限的知识,但想填补我的知识空白。自己尽可能多地学习这方面的知识很诱人,但意识到我需要寻求一些外部帮助,因此作为一个一般性问题,最好知道最容易外包的事情是什么。
我的背景 - 我是一名开发人员,主要从事用户界面的开发工作,并一直在使用 Flash 和 PHP 开发应用程序的功能,该功能可以让用户上传图像和视频以进行在线共享。
系统架构如下——
所以在很大程度上,我认为事情已经设置好了,可以扩大规模。但我没有如何扩展或管理高流量 Web 应用程序的经验,因此将依赖我们的 Web 服务器托管公司来管理 Web/应用程序服务器和数据库服务器的可扩展配置的设置。
硬件/架构扩展-
据我了解,这里的第一步是将 Web 服务器和数据库分开并让数据库服务器独立运行,将 Web 服务器放在负载均衡器后面,并最终为数据库服务器设置主/从配置。我应该要求我的网络托管公司做什么?这样做有什么问题?对我的 AMFPHP …
database scalability web-server web-applications best-practices
我正在对由小型 RDS 数据库实例支持的 PHP Web 应用程序进行一些负载/压力测试。当我用大约 50 个并发 Web 请求访问网站时,RDS 数据库停止响应所有连接请求大约 10 秒(来自我的 Web 应用程序,以及来自我使用来自其他机器的命令行 mysql 客户端)。PHP给出以下错误:
Could not connect to database. Lost connection to MySQL server at 'reading initial communication packet', system error: 110
我认为这只是 Web 应用程序中占用资源的糟糕/缓慢的 SQL,但这种性能似乎非常糟糕,所以我挖得更深一些。我在 EC2 微型实例上设置了另一个 mysql 服务器,该实例具有相同版本的 mysql、数据库克隆和默认配置。EC2 实例的性能好几倍(延迟和发出嘶嘶声之前的并发 Web 请求数)。
我的 RDS 实例和我的 EC2 实例使用相同版本的 mysql,具有默认配置,尽管我尝试调整 RDS 实例以增加各种缓冲区、max_connections 和 max_connection_errors,但都无济于事。
是什么赋予了?为什么具有更好的“磁盘”I/O、3 倍 RAM 和更多专用 CPU 的 RDS 实例会被一个弱小的 EC2 实例胜过?
我怀疑这是 AWS 怪癖或 MySQL/RDS 配置问题 - 希望任何一个主题的专家都可以解决这个问题......谢谢!
tl;博士问题
CAS 服务器偶尔会获得一两个经过 NAT 处理的 IP 地址,这些 IP 地址背后有数百个用户。这对可扩展性不利。
tl;dr 解决方案
让经过 NAT 的 Outlook 客户端连接到多个 DNS 名称/IP 目标。在负载均衡器中使用它,可以减少 NAT 问题。
更多信息
我们的大多数 Exchange 客户使用 RPC/HTTPS 和 Outlook Anywhere。我们的许多客户端在单个 NAT 地址后面成百上千。
这会导致负载平衡器将大量 NAT 用户群发送到同一个 CAS 服务器。CAS 服务器然后达到 100% CPU 并且无法为最终用户提供服务。
我的解决方案
由于无法将 cookie 负载平衡附加到 NetScaler 中的 Outlook Anywhere,我认为添加更多 DNS 名称可能会很好。我来解释一下。
在给定的 DAG 中,我使用这些 DNS 名称:
如果我能够更改它以便我为大部分流量使用更多 DNS 名称会怎样:
我将通过将每个 Exchange 数据库上的 RPC 服务器属性设置为“NyExGroupX.company.com”的属性并设置相应的外部 IP 来完成此操作。当然,这意味着我还需要更新我的外部证书。
我很确定这种配置将保证诸如“SomeLargeCompany”之类的 NAT 源将连接到多个“组”DNS 名称。这意味着负载均衡器将能够使用多个目标 IP 并更均匀地分配流量。
题 …
scalability load-balancing outlook-anywhere exchange-2010 netscaler
当要求客户在他们的数据中心启用 RSS 以提高网络性能(每秒 UDP 包的速率非常高)时,我被告知他们通常将其关闭,因为在过去的各种问题之后,微软和硬件供应商(我相信是 HP)经常会要求他们关闭 RSS,因为它可能会破坏稳定。
这个花絮,以及尽管 RSS 在 Windows 2008 中默认全局启用(我在 2008 R2 中验证过),但在 2012 年(在 2012 R2 中验证)默认情况下已更改为“禁用”的额外观察结果,让我相信不稳定的说法可能有一定的道理。但是谷歌在这里似乎不是我的朋友。在有关Windows 2012 中 RSS 改进的 TechNet 页面上,RSS似乎很稳定(我自己在非常高规格的 Win2012R2 系统上对扩展 UDP 接收的测试证实了这一点)并且仍然是扩展的方式。
这里有没有人对 RSS 和稳定性有好的/坏的经验可以分享,或者有一些关于它的问题的指针?
networking windows-server-2008 scalability performance-tuning windows-server-2012
scalability ×10
php ×2
replication ×2
amazon-ec2 ×1
apache-2.2 ×1
couchdb ×1
database ×1
email-server ×1
linux ×1
memcache ×1
memcached ×1
mysql ×1
netscaler ×1
networking ×1
rds ×1
storage ×1
traffic ×1
ubuntu ×1
web-server ×1
windows ×1