我在运行 CakePHP 应用程序的服务器上遇到了这个问题。服务器非常慢,我一开始以为是应用程序问题,但后来发现写入磁盘的速度为 5-6MB/s。
找到如此大量写入的原因的最简单方法是什么?
服务器正在运行 Gentoo。
最近有人问我“你知道什么时候决定是使用更多 RAM 还是更多服务器?” (在扩展数据挖掘应用程序的背景下)。
我不知道,那么有什么方法可以决定呢?我对体系结构和缩放的了解很少(我对计算机内存和服务器功能的理解仅限于高级基础知识),因此也非常欢迎了解更多关于这些事情的提示。
我目前正在尝试为基于 drupal 的 Web 应用程序指定一个水平可扩展的集群,它看起来像下面的彩色图表:
负载平衡器实现粘性会话,因此用户在分配了要使用的服务器后保持状态。
每个应用服务器都有以下内容:
两台 mysql 数据库服务器在一个共享 IP 上,它们在一个带有 DRBD 和心跳的 HA 集群中,因此丢失一个不会导致整个平台瘫痪。

有几件事我不确定,我会很感激你的意见:
我正在考虑使用 NFS 在每个应用程序服务器上挂载一个共享文件目录,因此一次上传的文件在所有应用程序服务器上都可用。我在考虑 NFS,因为它已经存在了很长时间,而且我没有使用 MogileFS 或 GlusterFS 的经验,而且我们以前使用过它,所以我们更熟悉它。
是否有任何指导方针可以用来确定以这种方式通过 NFS 共享目录是明智的?
这里的一个问题是 NFS 服务器是单点故障。
我们已经在 Mysql 服务器上使用 Heartbeat 和 DRBD,我更愿意保持堆栈中涉及的技术数量尽可能少 - 如果我对文件使用相同的 HA 策略会有什么陷阱服务器也是?
这适用于面向内部的站点,当内部计划启动时,用户数量有限,偶尔会在短时间内非常密集地使用该站点。所以这不需要像某些初创公司那样无限扩展。
鉴于
我还在考虑让两个 Web 服务器更强大,以便它们可以处理它们之间的峰值负载,并在 cron 作业中设置一致或在两者之间进行 rsync,以便:
这听起来像是绕过任何可能的 NFS/DRBD HA 复杂性问题的可能方法吗?
谢谢,
C
我正在做一项合同的初步研究,以在大约 600 台运行 Linux CentOS 6 的远程服务器(+ 他们的 600 个私有 LAN)之间建立一个 VPN 网络。网络应该是基于星型的,因此每个远程服务器都连接到中央服务器以进入 VPN(我知道它是 SPOF,但这没关系,因为构建此 VPN 的主要应用程序将运行在无论如何都是中央服务器)。
我想使用 OpenVPN(它非常灵活,可以调整到我们需要的配置),但我想知道在如此大的网络上运行它的最佳实践是什么。例如,如果在 tun 模式下使用,它将在中央服务器上创建 600 个 tun 接口,我什至不知道它是否受支持和/或产生任何问题。
我对这么大的网络没有任何经验,所以我愿意接受任何建议和指示。谢谢!
我在哪里可以购买一台能够提供 512 GB(是 GB)RAM 的服务器?
我见过的最多的是 256 GB(每根 32 DIMM x 8 GB)
根据您的经验,哪个数据库服务更难扩展?MySQL 还是 Postgres?我知道 MySQL 有几个开箱即用的缩放/集群功能,但是对于 Postgres,没有一个是开箱即用的。CMIIW。
编辑:
对不起,这里的混淆,我的问题是指横向扩展(水平扩展),即集群、分片等。我知道两者都可以水平扩展,但哪个更容易实现?
谢谢你的分享。
我主要是一名 Web 应用程序开发人员,我对缩放/可扩展性技术知之甚少。我的应用程序是用 Python 编写的,使用 Django;一个相当标准的设置。
我目前使用 Apache 2.2 作为我的网络服务器,而 MySQL 作为我的数据库服务器;两者都运行在同一个 VPS 上。
到目前为止,它基本上是一个原型,并且在任何给定时间只有 15-30 个并发用户;所以我没有问题,但现在由于我们将添加更多用户,我们将遇到性能问题。
所以我的问题是如何扩展我的网络应用程序?我目前的计划如下:
这听起来像一个可行的策略吗?请指导我在这里。
我对服务器配置和 Linux 很陌生,所以请耐心等待:
我有一个在 Ubuntu 10.04 LTS 上运行 LAMP 服务器的小型 EC2 实例。
如果需要,我完全不知道如何扩大规模以满足流量需求。我可以将服务器类型更改为大型吗?或者创建另一个实例并做一些负载平衡?我什至不知道如何开始那里。如果有人可以提供一些提示并为我指明正确的文档方向,我将永远感激不尽。谢谢!
HAProxy 似乎并没有保持与服务器的连接平衡。
请记住这一点:
如图所示,服务器 C 和 D 的连接似乎比其他服务器多。由于这种额外的负载,它们会继续下降并自动重新启动。

我尝试阅读 HAproxy 官方文档并进行了一些谷歌搜索,但没有发现任何有用的信息。希望这里有人可以提供帮助。
几个问题:
为什么当配置说使用 roundrobin、服务器规格相同并且没有应用权重时会出现这种情况?
什么决定了“会话”列中的“最大”子列(表示 1970、1444 等的那个)。服务器 C、D、E 在 3K 范围内,其他 2 个在 2K 以下。为什么会有差异?
如何让这一切保持平衡?
有人可以解释每一列吗?我很惊讶 HAproxy 的官方文档并没有真正解释它。
我一直在环顾四周,似乎没有人像我一样尝试扩展 SSL 终止,我很好奇为什么我的方法看起来如此不常见。
这是我想要做的,然后是为什么:
10.0.1.1 10.0.1.2 - 10.0.1.5
-----+--------+----+----+----+
| | | | |
+--+--+ +-+-++-+-++-+-++-+-+
| LB1 | | A || B || C || D |
+-----+ +---++---++---++---+
haproxy 1.5 haproxy 1.5 + tomcat
tcp mode http mode
Run Code Online (Sandbox Code Playgroud)
为什么这个疯狂的设置Internet -> HAProxy (tcp mode) -> HAProxy (http mode) -> Tomcat?两个词:安全性和可扩展性
通过将 SSL 终端卸载到运行 HAProxy 1.5 的 Web 后端 (AD) 和仅在环回接口上侦听的 Tomcat,我可以保证从客户端到服务器的所有流量都经过加密,不可能从任何非本地网络嗅探到网络后端。
此外,随着 SSL 需求的增加,我可以简单地在负载平衡器后面启动新的(便宜的)后端服务器。
最后,它取消了将证书存在于面向外部的 LB 上的要求,并通过这样做增加了额外的安全性,因为受损的 LB 上不会有任何 pem 或证书。
我的情况似乎与此非常相似:为什么没有水平可扩展的软件负载平衡器平衡 ssl 的示例?但我没有使用基于文件的会话,如果可能的话,我想避免通过 IP …
scaling ×10
haproxy ×2
memory ×2
amazon-ec2 ×1
apache-2.2 ×1
capacity ×1
hardware ×1
io ×1
lamp ×1
linux ×1
mysql ×1
networking ×1
nfs ×1
nginx ×1
openvpn ×1
performance ×1
postgresql ×1
ssl ×1
ubuntu ×1