When my Windows Server 2008 R2 machine is performing any large disk operations (copying 10GB files from one drive to another, copying similar file over network, merging HyperV snapshots, compressing large files), performance of the whole machine slows down terribly, everything becomes unresponsive. This is noticeable in any situation when the disk access is large enough not to fit in the cache.
Are there any settings available for tuning this behaviour? I can accept slower file transfer if this would give me more responsiveness.
System details: Dell Optiflex 960, Core 2 Quad Q9650, 8GB RAM, 2 SATA drives - 320GB (ST3320418AS) and 1TB (ST31000528AS), NCQ active on both, Intel 82564LM-3 Gigabit Ethernet, ATI HD 3450 graphics, Intel ICH10 bridge. We have multiple machines like this, every one is exhibiting the same behaviour. I though this was overkill for a workstation, apparently I was mistaken.
Update:
I guess I shouldn't have mentioned the HyperV at all. The above configuration is a standard workstation setup at the company I work for, this is not a server of any kind. I have at most 3 virtual machines working, and usually I'm the only person accessing them. Never the less, the slowdown occurs even when no VMs are running. On a Linux machine I'd simply ionice
the copy process and I could forget about it, is there any way to manage IO priorities on Windows?
Using a server as a desktop... got a fancy video card driver installed? (just a suggestion)
http://blogs.msdn.com/b/virtual_pc_guy/archive/2009/11/16/understanding-high-end-video-performance-issues-with-hyper-v.aspx
Update: On an i7 with SLAT or EPT support, you can do something like this {for VMs only} via RemoteFX. But running Aero on the host may still make performance worse.
I am inclined to sa that happens if you run a hyper-v server on inapproiate hardware. I had the same on repurposed workstation systems where the IO budget of the ard disc was on the lower end.
Ever since moving to a proper raid conroller on a beefier server I can copy that stuff over at speeds I found incredible before (hundreds of megabytes per second WHILE other things happens). Only problem is when 10 or so vm's are making their monthly at the same time patch orgy.
I would suggest checking: * Average disc response time, normally and during operations * Disc busy percentages.
For more information please post the complete hardware - memory, processor, disc subsystem and layout.
** Update
You must be freaking joking to run Hyper-V against that.
here are some convigurations I have.
BOTH (!) have problems when making large file transfers as IO gets taxes, although the larger one is network limited then (1gbit until in 5 hours, then 4) and generall the combo with the controller handles the situation VERY well.
A 2 disc system - and the 1tb obviously is not a performance disc, but one that is made for size - simply is like running a formula 1 race with a fiat panda. On board non buffering low price controller means no IO optimization is possible either. When your file copy hits, the disc budget totally goes into this. THere may be some left for the OS, but anything else.... whow.
By modern standards this is LOOOOOW end server or a decent workstations with a lot of CPU (8gb RAM is higher end workstation). The discs are not server grade. This is not something I would put a hypervisor on except for demonstrations. Hyper-V is like a database - it needs IO. A lot of. Because the hypervisor totally kills "sequential access" and turns it into random, like any database is.
You need to put appropriate IO capbilities into it. As well as enough RAM (if youneed it), then you can run a lot more on them, virtual machine wise - the CPU is otherwise simply totally unused. I hope your VM's are very CPU intensive, otherwise it is wasted.
I had a similar problem: Windows 2008, VMware server and a low end server with SATA drives. Network performance and local copy of big files were poor. After investigating I discovered that SATA mode was in emulated IDE in BIOS configuration. Changed to SATA native and performance increased slightly. However SATA drives are not the best idea for virtualization. Three vms and other tasks from the host means the drives access will be a bottleneck.
You might want to try off-loading as much of the disk-IO as possible onto an external SAN. (A drobo would do the job pretty well) It sounds like the host simply can't handle the amount of IO. Also it might be useful to make sure chipset & disk controller drivers are installed & up-to-date.
It looks like you have 2 SATA drives and I would guess that there is more activity on the 1TB drive. You didn't say what type of drives but I would also suspect that they do not support NCQ (which would help a little). Clearly you have an IO bottleneck. The optiplex 960 as configured would not be able to handle large IO loads since I believe the 2 disks share the same bus ( the onboard is a port multiplier). You might try purchasing an additional sata card (my suggestion http://www.newegg.com/Product/Product.aspx?Item=N82E16816318008&cm_re=pci_express_sata--16-318-008--Product) or something similar. I've tried to use desktops in the past as server and run into similar headaches to the point where now I'll just pick up a cheap server. HP has an ML 110 series that starts at $400 (and that's with a core i3). Server chipsets are almost always multilane sata controllers.
You can look at I/O priorities using the Resource Monitor. I also found a thread with a tool for adjusting them here
I would start with installing/running Process Hacker. It's like process explorer but better.
Start a file copying and then begin sorting through the data displayed looking for anything that looks odd.
Tools -> Page file - Is it huge? What was it's peak? Check explorer.exe by double clicking it in Process hacker and look at Performance Tab. Here's what mine looked like while copying a VM folder (containing several, various sized vmdk files).
Check out the bottom window that shows my I/O. I watched and saw that it dropped to zero as it finished each file.
Does explorer.exe's resource utilization spike?
Does another process spike instead? (i.e. AV scanning the copy process?)
Do the same thing on another similarly spec'd system and compare the results.
Are all of your cores being used?
Hopefully Process Hacker will give you additional perspective into the problem.