我的客户拥有一台安装了 6GB 内存和四核 CPU 的 Dell PowerEdge 1950 服务器。服务器上运行着 Win2008 操作系统的 Flash Media Server 3.52。外部存储 Dell MD1000 连接到此服务器,它有 6 个运行 RAID 10 的 1TB 7200 SATA 硬盘。客户同时有大约 1200 个流媒体连接。我们确实要求我们的托管设置一段时间的无限带宽,因为我们在流量高峰时段(晚上)播放流媒体时会遇到延迟。
我认为这与 FMS 3.52 限制或 RAID10 IO 限制有关。
从您作为曾经处理过高流量管道的人的经验来看,必须设置多少台机器才能同时运行 1000 个连接的用户,并且这个数字每天都在增长。
我不知道该去哪里找,希望购买更多硬盘放入现有的 RAID10 阵列中。
谢谢
答案1
不要猜测 I/O 负载是否太高。设置一个性能监视器,每 30 秒记录一次:
逻辑磁盘 - 当前磁盘队列长度 - 驱动器号(如果您关心多个逻辑驱动器,则针对每个逻辑驱动器)
逻辑磁盘 - 磁盘读取字节数/秒 - 驱动器号(针对每个逻辑驱动器)
逻辑磁盘 - 磁盘写入字节数/秒 - 驱动器号(针对每个逻辑驱动器)
物理磁盘 - 当前磁盘队列长度 - 驱动器号(对于每个硬件控制的 RAID 阵列或物理驱动器(如果您正在执行软件 RAID))
物理磁盘 - 磁盘读取字节数/秒 - 驱动器号(对于每个阵列/驱动器)
物理磁盘 - 磁盘写入字节数/秒 - 驱动器号(对于每个阵列/驱动器)
在监控时添加一些通用计数器不会有什么坏处,所以我建议
处理器 - % 处理器时间 - _Total
System - 处理器队列长度
如果您的 % 处理器时间高于 %50 或者队列长度经常保持在 0 以上,那么您也应该注意 CPU 情况。
回到磁盘,考虑每个逻辑驱动器上有多少已用容量。
如果您的逻辑驱动器不能容纳大量数据,但当前磁盘队列长度较高,则应将这些数据移至 SSD 或由 SSD 组成的 RAID。这可能只是服务器上的启动驱动器,也可能包含您的内容。对于好的 SSD,请考虑英特尔控制器(英特尔和金士顿)或 Indilinx 控制器(有很多品牌可供选择)。此外,如果您选择这种方式,您需要查看您的读写比。如果您的写入量很高,您需要基于 SLC 的 SSD,其成本至少是其两倍甚至更多。如果您的写入量很低,或者特别是如果内容不定期更改,您需要基于 MLC 的 SSD 以节省每 GB 的成本。
如果您的逻辑驱动器容量大到让 SSD 选项看起来过于昂贵,但现有阵列并不缺少空间,您可能需要考虑购买 RPM 更高的驱动器。请注意,这可能是虚假的经济,因为几个好的 SSD 可能可以处理数十个旋转磁盘的负载。
如果您的驱动器存储的数据量让您担心现有驱动器数量的空间不足,那么您可以添加更多 7200 RPM SATA 驱动器来保持容量增加。请注意,这可能与性能问题背道而驰,因为它可能允许人们添加更多数据并增加负载,而额外的主轴无法提供帮助。如果您遵循此路线,您应该:
- 备份数据
- 添加额外的驱动器
- 使用所有磁盘(但不使用其最大容量)创建新的 RAID 阵列。
- 恢复数据。
- 继续监测绩效
- 根据需要重复
也许无论添加哪一种类型的驱动器,您都应该这样做,但只有当性能计数器显示需要时才添加它们。