标签: scalability

是否有可扩展的开源 Web BB/论坛?

有些地方说 phpBB 的并发用户数不能超过 5000。是否有可以更进一步的 FOSS 论坛软件,比如 7k-10k 或更多?

linux performance scalability open-source

4
推荐指数
1
解决办法
648
查看次数

写入繁重的应用程序的数据库可扩展性

我有一个需要大量写入的应用程序。该应用程序最适合与调查相比 - 客户创建自定义问题并将其保存到数据库中。大多数请求来自提交这些表单的用户。稍后,我们的客户会对这些提交进行复杂的报告和图表。

确保我们的应用程序服务器 (PHP) 和 Web 服务器 (Nginx) 扩展非常容易,麻烦的是将数据库服务器扩展到多个服务器上。

许多应用程序的读取量更大,因此通常您会有一个主从复制设置,其中所有写入都发送到单个主服务器,但读取分配给从服务器。对我们来说这是行不通的,因为我们大部分时间都在写。

我已经看到提到主-主设置,但这通常会遇到自动递增主键的障碍。解决方案通常是让一台服务器处理奇数,而另一台处理偶数。我想避免这种情况。

在一些类似的问题上,我看到提到 Tungsten Replicator 以及它如何为您提供更多的复制灵活性。这对我有帮助吗?这会给我带来什么 MySQL 的内置复制无法提供的好处?

还有 MySQL Cluster,但这通常会遇到非常大的数据库和复杂查询(连接)的问题。我需要能够运行复杂的报告,所以这可能对我不起作用。

我正在寻找冗余、自动故障转移、分发请求和数据完整性。

是否有其他 RDMS 提供适用于 Web 的更好解决方案?

mysql database mysql-replication scalability mysql-cluster

4
推荐指数
1
解决办法
9069
查看次数

可扩展性 1 向。这是什么意思?

我已经阅读了服务器规范中的“可扩展性:1-way”。这是什么意思?

服务器是:

HP ProLiant ML110 G6 电视 X3430 2.40GHz 4 核 1P 1GB-U 非热插拔 250GB SATA LFF 300W PS

intel scalability hp-proliant

4
推荐指数
1
解决办法
2265
查看次数

无需创建新的 unix/linux 帐户即可在 Postfix 中添加用户的可扩展方式?

添加新用户的最具扩展性的方法是postfix什么?我不一定/etc/shadow只想为电子邮件创建一个新用户。我知道我可以使用别名,但这并不能解决创建具有电子邮件的全新用户的问题。

email postfix scalability user-accounts

4
推荐指数
1
解决办法
2032
查看次数

裂脑造成安全漏洞时的网络分区风险

我希望通过使用分布式数据系统创建一个高可用性、可扩展的网络解决方案。此处的节点描述了可以控制数据的一个副本的网络。这些节点可能包含不止一台机器,但拥有一份数据副本。

节点将包含可能处于已用状态或未用状态的数据记录。客户端可以请求将记录从未花费状态转换为花费状态(请求花费)。如果他们可以多次成功执行此操作,则存在安全风险。

单个节点,如果它与所有其他节点有连接,则可以告诉节点已经请求支出,并且可以确保没有其他节点想要访问数据并且支出尚未发生。节点可以将数据的状态更改为已花费,而其他节点不会这样做,因为它们知道其中一个节点正在更新它并处理花费。所有节点都会更改数据,因此记录处于已花费状态。

如果一个节点无法访问另一个节点,它可以假设另一个节点已关闭,并将继续与其他节点一起运行,直到另一个节点恢复正常运行。在这种情况下,节点会将所有更新发送到恢复的节点。如果这个失败的节点正在执行当时未完成的支出操作,那么它可以完成它。这将导致某些操作的轻微停机。这将是在一个节点告诉其他节点它将花费,然后在它完成花费过程之前失败的情况下。在这种情况下,其他节点被阻止更新它,因此故障节点需要在完成之前重新联机。

问题是,支出的处理只能发生一次。如果网络被分区,知道这一点的攻击者可以请求在一个分区和另一个分区上花费。网络的每个分区都会假设另一个分区已关闭,因此将独立运行。这可能会导致多次处理支出。

如果在分区期间未向网络两侧发出请求,则这不会成为问题。当重新建立连接时,网络将最终变得一致。如果攻击成功,节点会在重新建立连接时了解攻击,因为网络的两侧会宣布相同的更改。

所以这是可检测的攻击,但实际上可能吗?

攻击者需要故意尝试这样做。该软件并非旨在同时发出多个支出请求。攻击是有时间成本的。如果攻击者失败,他们需要时间才能重新创建未使用的记录。创建未使用的记录需要钱。并且需要在一次攻击中使用更多的钱才能获得更高的收益。之所以有时间成本,是因为要收回钱再试一次需要时间。他们可以承受许多较小的攻击,然后对他们的好处会更少,造成的损害也会更少。

当然,分区自然非常罕见,如果攻击者在任何时候尝试攻击,攻击者必须非常幸运地获胜?

如果连接自然丢失,节点可以停止所有操作并尝试重新连接。使用低超时连接到节点意味着它不会导致任何停机时间(也许只是很少增加延迟)。如果重新连接失败,则它将继续尝试,然后重新启动操作(假设节点已关闭)。类似的东西可以防止偶尔的连接错误吗?

那么攻击者是否能够检测/导致网络中的分区?发生分区的可能性有多大以及持续多长时间?如果可能,可以通过哪些方式解决问题?

谢谢你。

networking security scalability high-availability

4
推荐指数
1
解决办法
300
查看次数

Intel Xeon 处理器:2S/4S 和 S2S/S4S 可扩展性之间的区别

在比较英特尔至强 E5 和 E7 处理器时,我注意到 E5 处理器指定为 2S 或 4S 可扩展性,而 E7 处理器指定为S 2S、S 4S 或S 8S 可扩展性。

我知道处理器被指定用于同一主板上给定数量的插槽,但额外的 S 究竟意味着什么?2S和S2S,4S和S4S有什么区别?

hardware scalability central-processing-unit xeon

4
推荐指数
2
解决办法
2万
查看次数

SQL server express 可以处理多少个数据库

我正在运行一个 SQL EXPRESS 2005 服务器,目前托管了大约 50 个数据库。数据库为客户的 CMS/电子商务网站提供服务。连接到单个实例,没有使用用户附加实例。DB 大小中位数为 5MB,最大为 20MB。网站多为低流量,CPU利用率<10%,SQL进程最多使用350MB RAM。
现在我完全在 1CPU/1GB RAM 的 SQL server express 限制范围内。在即将到来的扩展中,数据库的数量可能会翻倍。如果我假设需求呈线性增长,则仍然无法达到 1GB 的限制。但我担心数据库的数量(> 100)可能会成为一个问题。我不确定这种使用场景是否是 Microsoft 为 express 设计的。
是否有关于 SQL Server Express 处理大量小型数据库的能力的任何信息或最好的实际经验?我可以期望它运行 150 个数据库,还是应该开始迁移到其他数据库服务器/基于文件的数据库?

scalability sql-server sql-server-express

3
推荐指数
1
解决办法
2万
查看次数

邮件、文件和数据库存储的理想服务器规格/软件

我试图弄清楚几台服务器的理想设置。

1) 网站
1) 邮件服务器
1) 数据库服务器
1) 文件服务器

在这个给定的场景中,假设有一个站点将为每个用户提供 5GB 的文件存储空间以及一个电子邮件和一个专用数据库。

根据我对服务器如何工作的有限理解,我得出结论,每个功能拥有 1 个服务器将是最好的选择,这样如果一个服务器脱机,其他数据就不会受到影响。

处理这个问题的明智而有效的方法是什么?

这是我的理解

1) 该网站由 1 个主服务器托管,该服务器将处理用户注册并提供小文件。为此,我认为一个简单的服务器设置就足够了,对吗?

2)对于邮件服务器,要处理等量的注册用户,主要处理邮件和邮件附件

3) 数据库不会限制大小,只存储每个客户的联系人和个人资料设置,因此每次用户登录时都会从数据库中提取设置。我计划将设置加载到 $_SESSIONs 中,这样每次页面重新加载时都不会查询数据库等。但是每次操作时都会从服务器查询联系信息。

4) 文件服务器将只为文件提供任何 CPU 或内存密集型的服务

就软件而言,我倾向于使用 CentOs 5.5 和 Plesk 10.2 来处理网站服务器,使用 MySQL 5 来处理数据库服务器,或者使用 Atmail 来处理邮件服务器。建议在每个服务器上加载软件方面的内容是什么?

我在这方面没有经验,但我每天都在获得一些经验。我需要得到明智的通知,以便我至少知道在我雇用某人为我处理设置的情况下我在处理什么。

根据您的经验,硬件和软件配置的理想设置是什么?

此外,请考虑 5,000 个客户的示例用户群。所以每个人都有 5GB 的网络空间、电子邮件和自己的数据库。

email-server file-server scalability web-server sql-server

3
推荐指数
1
解决办法
551
查看次数

在 EC2 上设置 Rails 2.3.x 应用程序以实现轻松的可扩展性

我在一台专用机器上运行一个简单的 rails 堆栈。我们正在达到我们的全部容量并且完全没有扩展设置,只有一台机器上的一个应用程序。我做了一些研究,并提出了一个潜在的可扩展堆栈。我不是专业管理员,但我已经就我们应该如何使用 EC2 提出了一些想法。我仍然有点不确定文件系统共享,这是我的主要问题所在。首先,这是我要处理的。

当前堆栈:

  • 导轨 2.3.11
  • PostgreSQL
  • 乘客+nginx
  • 延迟作业
  • 狮身人面像+thinking_sphinx
  • imagemagick(重图像处理)
  • jaxer(将解释)

我们的应用程序的作用:

我们的应用程序使用 ImageMagick 执行大量图像上传和繁重的图像处理。它还与 jaxer 对话以进行冗长的画布到图像的转换。所有这些都在延迟工作中。我们想确保这些东西尤其可以扩展。所以我们谈论的是快速增长的文件存储需求和后台作业中繁重的图像处理。

到目前为止我的决定:

  • 使用 Rubber gem 帮助部署/管理
  • 从 delay_job 移动到 redis/resque,以便更轻松地解耦工作人员(客户端/服务器)、多个队列和 sinatra Web 界面
  • 有像 app、db、web、redis、resque 这样的角色,一开始所有的东西都在一个 ec2 实例上,但很快就把 redis/resque 的东西拆分成一个单独的实例,可能还有更多

问题:

主要的实际问题是:所有文件会发生什么?如果我决定将应用程序角色拆分为多个实例,如何获得共享文件系统访问权限?

此外,很高兴听到关于我的设置的一些想法。

scalability ruby-on-rails distributed-filesystems amazon-ec2

3
推荐指数
1
解决办法
1920
查看次数

使用虚拟机进行基础架构建模 - 一种可行的方法吗?

我对为 Web 应用程序建模各种服务器/网络配置感兴趣。我想提前知道系统的哪些部分将成为瓶颈,以及瓶颈是否受 CPU/内存/网络等约束。

我一直在考虑的一个想法是采用单个测试服务器,并将每个“真实”服务器设置为虚拟机,并按照它们在野外进行配置。我打算试试这个,但想问问 serverfault 社区是否有人以前尝试过这种方法。 它可行吗?

我并不期待基准测试或任何类似的东西,但我认为它可能对建模相对性能、突出瓶颈和提供对架构的健全性检查有用。

scalability web-server

3
推荐指数
1
解决办法
123
查看次数