最近有人问我“你知道什么时候决定是使用更多 RAM 还是更多服务器?” (在扩展数据挖掘应用程序的背景下)。
我不知道,那么有什么方法可以决定呢?我对体系结构和缩放的了解很少(我对计算机内存和服务器功能的理解仅限于高级基础知识),因此也非常欢迎了解更多关于这些事情的提示。
“你知道什么时候决定是使用更多 RAM 还是更多服务器?” (在扩展数据挖掘应用程序的背景下)。
答案是只要你给我有问题的服务器的指标,我就会告诉你哪个(或者是否值得添加)。这种类型的调整不是伏都教(除非您使用没有工具的应用程序和没有工具的服务器操作系统 - 那么是的,它是伏都教)它是科学。测量应用程序和服务器。简而言之,使用监控指标找出性能瓶颈所在并添加更多。
在服务器/应用程序性能改进方面通常有很多巫术(或至少是反复试验)。
所问特定问题的一般规则是首先增加内存,直到不能再增加为止,或者直到更多的内存不再提高性能。由于内存相对便宜,简单地最大化内存可能更直接。此外,如果应用程序占用大量磁盘,升级到高速驱动器或高性能控制器可能会有所作为。
然而,这个问题的一般性质让我认为没有其他尝试来提高性能。我同意硬件很便宜,所以即使在一个问题上投入更多的服务器也很容易实现。但是,我也会确保其他途径,特别是操作系统和数据库的调整,已经完成。有时,对数据库、操作系统甚至应用程序配置的细微调整都可以带来巨大的性能提升。
使用您的特定操作系统、数据库和应用程序在此站点上搜索,您很可能会获得金牌。
作为一名企业架构师,我几乎每天都在处理这个问题。垂直或水平缩放?
你有什么需求?
你需要支持更多的用户吗?您是否需要提高服务速度?你两个都需要吗?您需要高可用性 99.9999 还是您的用户可以停机?
首先,您需要捕获当前系统上的性能指标。活跃用户数、RAM 和 CPU 负载、磁盘 I/O - 找出瓶颈所在。
基于问题的可能解决方案:从优化当前资源开始。如果您的应用程序是数据库驱动的,请使用查询和线程缓存、索引等优化数据库。如果您与其他应用程序共享服务器,请探索移动到专用服务器。(研究不太活跃/关键的应用程序的虚拟化以释放专用资源)。
当前机器满负荷,RAM 和 CPU 负载重,磁盘 I/O 高 - 计算添加 RAM 的成本,您能否切换到更快的磁盘 I/O(RAID、SATA 代替 ATA)?
如果您需要高可用性,那么您可能无论如何都需要添加硬件和负载平衡。
添加硬件升级或添加新服务器是否更便宜?哪个适合长期目标和增长?
您的 IT 部门何时是花钱的最佳时机?您现在有资金还是想将费用转移到另一个季度/年度?如果资金是一个问题,那么立即优化或探索从其他应用程序中释放硬件以添加临时负载平衡解决方案。
不要害怕探索众多解决方案。供应商可能希望您购买负载平衡的、以 SAN 存储为中心的解决方案,其中配备 iSCSI RAID 10 的新服务器只需支付 10% 的成本。
如果优化后您的 CPU 负载仍然很重,那么您需要添加/更换硬件。如果您的磁盘 I/O 是瓶颈并且您无法升级存储技术,那么您需要更换硬件或添加网络存储/附加存储解决方案。
捕获性能指标。再次优化、改进和捕获指标。继续记录性能的增加/减少,以便您可以提交一份报告,记录您花费了多少以及产生了多少性能提升。这些都是可能的成功案例类型,如果做得好,管理员可以成为架构师,架构师可以成为项目经理,PM 可以成为高层管理人员。
你在寻呼吗?您打算使用 RAM 来缓存磁盘吗?您的 CPU 是否受到空闲 RAM 的限制?
如果您正在分页和/或可以使用 RAM 进行缓存,那么请获取更多 RAM。如果你没有遇到 RAM 压力,那就是另外一回事了。
归档时间: |
|
查看次数: |
739 次 |
最近记录: |