我的问题与我在serverfault 上的最后一个问题密切相关。
我从一台10年前的台式电脑拷贝了大约5GB到服务器。 该副本在Windows资源pipe理器中完成。 在这种情况下,我会假设服务器被数据stream所厌烦。
但像往常一样,这台服务器,它真的放慢了速度。 至less我可以使用远程会话,即使有一些严重的延迟。 副本花费了时间(20分钟?)。 在这段时间,我去了一个同事,他试图通过远程桌面login到同一台服务器(由于其他原因)。 花了大约一分钟时间到达login屏幕,一分钟打开控制面板,一分钟打开性能监视器,…图标加载可能每秒一个。 我们看到以下(从记忆):
在服务器上没有其他可观的活动。 服务器很less提供一些ASP.NET页面,这个时候也变得很慢。
相关configuration如下:
Windows 2003
SEAGATE ST3500631NS(7200转,500 GB)
基于LSI MegaRAID的RAID 5
4个磁盘,1个热备份
通过写
这种configuration是否正常? 什么测量可以给出进一步的线索?
降低这种复制I / O的优先级并优先考虑远程桌面等其他进程是否合理 ? 你会怎么做?
非常感谢!
光盘过载。 那很简单。 平均。 队列长度50 – 检查“IO每秒/读/写” – 这将会太高。
它看起来很像你基本上完全超载光盘,closures硬盘caching模式也没有帮助(坏的设置 – 至less把它放在读取caching那里…更好的写入+ UPS – 无法cachingSATA NCQ不能工作,杀死你的表演)。
主要的问题是你的RAID 5 – 它基本上都有。 文件区域和操作系统,所以过载超载整个系统。
对于真正的服务器,我在操作系统的Raid 10(4张光盘)中使用WD Scorpio Black,(我只做虚拟化)虚拟化root,Raid 10给了我更好的性能。 对于高性能文件服务器,我会/为文件添加一个SECOND RAID(可以是RAID 5)。 这里的诀窍是文件区域和操作系统区域永远不会被允许重叠(相同的光盘)。 就你的情况而言 – 获得一个小硬盘(80GB左右) – 其中两个 – 然后在它们上面放上一面镜子,然后将操作系统移到其上。 然后当IO堆积时服务器仍然可用。
页数/秒没有说 – 这意味着有一些虚拟内存玩耍。 如果在文件复制过程中碰到光盘(很可能,但是这是另一个性能计数器,用于标记由于页面错误导致的物理活动),那么自然就会进入队列。
请caching。 LSI能卖给你一些bbu(电池备份单元吗?)。 我使用Adaptec自己作为RAID控制器,而且自从我有一个BBU之后,我就把caching写回去了(而不是通过写入) – optimizatons的性能提升非常显着。
这个问题已经被其他答案描述得很好,但总之:
具有RAID 5中的3个(活动)7200 RPM磁盘的RAIDarrays的写入性能是单个7200RPM扩展副本的速度的3/4。 鉴于你已经禁用caching\预读等,性能会比这更糟糕。 大多数情况下,从写入的angular度来看,服务器的性能对于这个configuration来说相当糟糕。
如果你的5GB是一个单一的大文件(或几个相当大的文件),如果你的networking拷贝发送速度超过30M每秒(千兆连接容易),那么你的服务器的磁盘将不能保留在服务器上的networking副本缓冲将增长,直到它消耗服务器上的所有可用内存,然后这将迫使操作系统开始分页过度进一步恶化您的性能问题。 根据服务器上实际发生的其他事情,如果有任何其他持续的读/写活动(即使速率非常低),杀死系统所需的复制速度可能甚至会更低,一个100M的连接可能足以引发这样的问题。
你确定RAIDarrays没有被重build吗? 我已经看到重build/validation带来了一个盒子的膝盖。 你甚至可能有一个边缘的驱动器,跟不上其他的驱动器,但是不会抛出错误代码(还)。
“RAID”驱动器应立即告诉控制器它有一个问题,“消费者”(他们是相同的,但具有不同的固件)驱动器将继续重试失败的请求,而不是默认为快速失败。 由于负载超时,我有一些最终从arrays中丢失。 他们会检查出来的,并且没有发生事故重build(通常情况下),只是在箱子重负的时候才重新开始计时。 经过一些重build周期之后,不断重build和拖延的驱动装置会使箱子停顿。