移动到新的专用服务器并需要有关新设置的建议

移动到新的专用服务器并需要有关新设置的建议

我目前有一台专用服务器,但是我们的服务器规模已经不够用了,我们正在转移到另一台服务器。

我们当前的设置是一台 8gb W2008R2 服务器,使用 VMWare 运行 W2008R2 IIS 虚拟机。

我们正在迁移到 Hyper-V 上配备 W2012 R2 的 2 CPU 24 GB 服务器。

在我们的虚拟机上运行着 iis 7.5 和 sql server。Sql Server 似乎要占用所有内存,所以我不得不将其限制在 2gb,但这似乎不够。

我的问题是,当我将虚拟机移至新服务器时,我是否应该创建 2 个虚拟机,一个用于 SQL Server,一个用于 IIS?还是我应该将它们都保留在同一台虚拟机上?或者甚至将 SQL Server 放在专用服务器上并在虚拟机中运行 IIS?

我希望得到一些关于如何做到这一点的意见,我没有做出正确决定所需的经验。

谢谢!

答案1

这取决于您的用途。

您当前系统的 CPU 使用率是多少?

其中有多少是 IIS?有多少是 SQL?

您当前系统的内存使用情况是多少?

其中有多少是 IIS?有多少是 SQL?

一般来说,对于小型运营来说,将 IIS 和 SQL 服务器合并为一个是可以的。但是,如果您开始突破 I/O 最大值的 75%,那么就该拆分服务器了。(75% 是一个任意数字,但它是理想的,因为这意味着您已经从 50%(这意味着您的系统应该很稳定)到 100% 效率(这意味着您的系统的性能不能比现在更好了)的一半;在此阶段进行规划的压力将小于在 100% 效率下进行规划的压力,因为在 100% 效率下,您的系统已经很容易出现问题,主动解决问题比被动解决问题更容易)。

如果 IIS 和 SQL 之间的使用百分比总和等于或大于 75% 或任意的所需最大使用百分比,那么您应该将它们拆分。

这里有一个指南(请注意,我只是根据自己的理解把它拼凑起来,所以我不知道计算结果有多准确;而且这还没有考虑到硬盘瓶颈或网络延迟。这也没有考虑到编写不当的应用程序可能会不必要地占用太多资源,而这种情况不会通过加强系统来改变):

  1. 确定当前的延迟

  2. 确定您愿意接受的延迟量,并将其转换为经验定量数值。例如:如果您愿意接受一点延迟,那是多少?100 毫秒?250 毫秒?500 毫秒?1 秒?

  3. 确定您愿意接受的延迟是一段时间内的平均值(理想情况下,至少是整整 7 天)还是绝对最大值(理想情况下,在您的服务器负载最大的那一天)。

  4. a)如果接受的延迟是平均值,则计算一段时间内的平均 CPU 和内存使用率

    b) 如果接受的延迟是绝对最大值,则计算当天最高负载下的最大 CPU 和最大内存使用值

  5. 确定当前处理能力/内存容量

  6. 确定每年的增长率百分比;如果你没有可供比较的基线数据,可以任意假设每年增长 10%,或者1/ (当前延迟/所需延迟) X100%/系统运行年限,以较高者为准。

  7. 确定在下次升级之前的未来 Y 年内保持系统利用率低于 75% (Desired_Max_Usage_Percentage) 所需的处理能力/内存容量。资源需求= (当前使用率X当前能力)+(1+ (Y_年X增长率)) /所需最大使用率

  8. 确定适应所需延迟所需的调整值。

示例(CPU)1:

Current Latency = 1000
Desired Latency = 500
Latency Variable = 1 + (1 / (1000 / 500)) = 1.5
Current_CPU_Usage = 100%
Current_Capability = 2CPU x 3.0GHz = 6.0GHz
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%

Minimum Resource = (1 x 6.0) + (1 x (3 x .1))/.75 = 7.73GHz
Adjustment For Latency = 7.73 x 1.5

Result: Upgrade to minimum 7.73GHz
Result to desired latency: 11.60GHz

示例(CPU)2:

Current Latency = 1000
Desired Latency = 500
Current_CPU_Usage = 70%
Current_Capability = 2CPU x 3.0GHz = 6.0GHz
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%

Minimum Resource = (.7 x 6.0) + (1 x (3 x .1))/.75 = 5.93GHz
Adjustment For Latency = 5.93 x 1.5 = 8.90GHz

Result: No need to upgrade
Result to desired latency: 8.90GHz

示例(记忆)1:

Current Latency = 1000
Desired Latency = 500
Latency Variable = 1 + (1 / (1000 / 500)) = 1.5
Current_Memory_Usage = 100%
Current_Capability = 4GB
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%

Minimum Resource = (1 x 4.0) + (1 x (3 x .1))/.75 = 5.73GB
Adjustment For Latency = 5.73 x 1.5 = 8.6GB

Result: Upgrade to minimum 5.73GB
Result to desired latency: 8.6GHz

示例(记忆)2:

Current Latency = 1000
Desired Latency = 500
Latency Variable = 1 + (1 / (1000 / 500)) = 1.5
Current_Memory_Usage = 50%
Current_Capability = 4GB
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%

Minimum Resource = (.5 x 4.0) + (1 x (3 x .1))/.75 =3.73GB
Adjustment For Latency = 3.73 x 1.5 = 5.23GB

Result: No need to upgrade
Result to desired latency: 5.23GB

注意:请谨慎对待我的例子。

要规划网络容量、硬盘存储容量或硬盘 I/O 指标,您基本上需要进行类似的计算。

TL:DR;如果您的 CPU 或内存利用率达到 100%,您可能应该将 IIS 和 SQL 服务拆分为各自的资源。但是,在这样做之前,您应该考虑应用程序/资源调整,因为硬件更改可能代价高昂,并且无法解决应用程序效率低下的问题。

相关内容