Poor read performance, good write performance

Software-based VM-centric and flash-friendly VM storage + free version

Moderators: anton (staff), art (staff), Max (staff), Anatoly (staff)

User avatar
anton (staff)
Site Admin
Posts: 4021
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Sun Jul 31, 2011 7:24 pm

Yes. The answer is "it depends". So if OP did try only one combination I've suggested to try all.

Again there's no "one and only" answer. Somebody should experiment with cache settings and his app of choice as a benchmark tool to get proper numbers.
CyberNBD wrote:
anton (staff) wrote:Yes. Both initiator and target sides please.
georgep wrote:i have the same problem with v5.7 Why do u say to put 2 instead of 1 ? 1 disables it right ?
During some tests in the past I found that disabling Delayed Ack only on the initiator side (using MS initiator) gave a slightly better performance than disabling it on both starwind and initiator machines. Did you compare?

sjors wrote:The system is using a PERC 5/E adapter, which has 256MB DDR2 memory for its cache.

It is enabled, but I don't know how much this 256MB will help.

And yes, it's battery-backed and the write policy is write-back.
How did you set disk cache policy? Using a similar MD1000 + Perc-5/E Setup I disabled it on the fast 15K SAS Spindles and enabled it on the slower 7.2K SATA spindles. This means the SAS array doesn't use the physical disk cache which gives better performance. For slower disks like the SATA's it's better to enable disk cache.
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
sjors
Posts: 17
Joined: Sun Jul 03, 2011 5:16 pm

Tue Aug 02, 2011 1:56 am

anton (staff) wrote:
sjors wrote:The system is using a PERC 5/E adapter, which has 256MB DDR2 memory for its cache.

It is enabled, but I don't know how much this 256MB will help.

And yes, it's battery-backed and the write policy is write-back.
How did you set disk cache policy? Using a similar MD1000 + Perc-5/E Setup I disabled it on the fast 15K SAS Spindles and enabled it on the slower 7.2K SATA spindles. This means the SAS array doesn't use the physical disk cache which gives better performance. For slower disks like the SATA's it's better to enable disk cache.
Are you referring to the Read, Write or general cache policy on the PERC?
CyberNBD
Posts: 25
Joined: Fri Mar 25, 2011 10:56 pm

Tue Aug 02, 2011 12:52 pm

sjors wrote:
anton (staff) wrote:
sjors wrote:The system is using a PERC 5/E adapter, which has 256MB DDR2 memory for its cache.

It is enabled, but I don't know how much this 256MB will help.

And yes, it's battery-backed and the write policy is write-back.
How did you set disk cache policy? Using a similar MD1000 + Perc-5/E Setup I disabled it on the fast 15K SAS Spindles and enabled it on the slower 7.2K SATA spindles. This means the SAS array doesn't use the physical disk cache which gives better performance. For slower disks like the SATA's it's better to enable disk cache.
Are you referring to the Read, Write or general cache policy on the PERC?
None of them :P There is another setting called disk cache policy. It enables or disables the physical disk cache (has nothing to do with the perc cache unlike the other settings).
User avatar
anton (staff)
Site Admin
Posts: 4021
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Tue Aug 02, 2011 12:54 pm

You mean hard disk on-board cache memory?
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
CyberNBD
Posts: 25
Joined: Fri Mar 25, 2011 10:56 pm

Tue Aug 02, 2011 1:00 pm

anton (staff) wrote:You mean hard disk on-board cache memory?
Yes
sjors
Posts: 17
Joined: Sun Jul 03, 2011 5:16 pm

Wed Aug 03, 2011 4:54 am

I just upgraded to v5.7 and redid all testing.
Node 1 exhibits good performance throughout now, so I'm happy.

Now it's node 2 that worries me.
Performance testing (ATTO) gives the same weird performance dip around 1K and 2K.
I mean REAL dips.
Hyper-V Node 1
Hyper-V Node 1
Node1.png (24.12 KiB) Viewed 20238 times
Hyper-V Node 2
Hyper-V Node 2
Node2.png (24.15 KiB) Viewed 20238 times
Is there something I may have overlooked in the configs of the two servers?

Also, is there a way to add caching to existing IMG volumes?
starneo
Posts: 26
Joined: Fri Jan 28, 2011 10:17 am

Wed Aug 03, 2011 9:57 am

As I posted in another forum thread, I do have the same issues.
We use MPIO (round robin) over 4 1xGibit connections (iSCSI).
I have 4targets each with 4GB Cache and 5000ms expery period.

Some Benchmarks:
Attachments
within a virtual machine
within a virtual machine
within_VM.JPG (66.67 KiB) Viewed 20219 times
CSV from a Hyper-V nodes (over iSCSI MPIO)
CSV from a Hyper-V nodes (over iSCSI MPIO)
From_Hyper-V-Node.JPG (66.48 KiB) Viewed 20218 times
Storage direct
Storage direct
Starwind_SAN#1.JPG (71.34 KiB) Viewed 20219 times
User avatar
Anatoly (staff)
Staff
Posts: 1675
Joined: Tue Mar 01, 2011 8:28 am
Contact:

Wed Aug 03, 2011 8:00 pm

Not good :(
So just to clarify:
What's the cache size?
Have you dissabled delayed ACK for all adapters taking part in iSCSI connections (sync channel too)?
Best regards,
Anatoly Vilchinsky
Global Engineering and Support Manager
www.starwind.com
av@starwind.com
sjors
Posts: 17
Joined: Sun Jul 03, 2011 5:16 pm

Thu Aug 04, 2011 5:22 am

@starneo,

Did you follow the ACK recommendations along with the global chimney ones?

If not, perform the following commands:
netsh int tcp set global chimney=disabled
netsh int tcp set global rss=disabled


Verify the settings with this command: netsh int tcp show

Also, be sure to have disabled the RSS settings in the NIC properties.
(Only do this or the iSCSI adapters.)

That's all I can say for now.
User avatar
anton (staff)
Site Admin
Posts: 4021
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Thu Aug 04, 2011 6:43 am

Use "Direct I/O" and "Overlapped I/O" option as with options you've selected we do all discuss bogus values. Thanks!
starneo wrote:As I posted in another forum thread, I do have the same issues.
We use MPIO (round robin) over 4 1xGibit connections (iSCSI).
I have 4targets each with 4GB Cache and 5000ms expery period.

Some Benchmarks:
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
starneo
Posts: 26
Joined: Fri Jan 28, 2011 10:17 am

Thu Aug 04, 2011 11:32 am

sjors wrote:@starneo,

Did you follow the ACK recommendations along with the global chimney ones?

If not, perform the following commands:
netsh int tcp set global chimney=disabled
netsh int tcp set global rss=disabled


Verify the settings with this command: netsh int tcp show

Also, be sure to have disabled the RSS settings in the NIC properties.
(Only do this or the iSCSI adapters.)

That's all I can say for now.

Thanks for the input! Currenty both options are enabled (I thought this was written in a white paper).
I have to change the TcpAckFrequency in the registry, too. That's quite difficult, because this is a productive system.
Will the change of the RSS & Chimney setting interrupt the iSCSI Sesseions?
User avatar
Anatoly (staff)
Staff
Posts: 1675
Joined: Tue Mar 01, 2011 8:28 am
Contact:

Thu Aug 04, 2011 12:20 pm

Actually to changes applied on the system after modifying registry setting you need to reboot anyway.
Best regards,
Anatoly Vilchinsky
Global Engineering and Support Manager
www.starwind.com
av@starwind.com
sjors
Posts: 17
Joined: Sun Jul 03, 2011 5:16 pm

Thu Aug 04, 2011 12:27 pm

starneo wrote: Thanks for the input! Currenty both options are enabled (I thought this was written in a white paper).
I have to change the TcpAckFrequency in the registry, too. That's quite difficult, because this is a productive system.
Will the change of the RSS & Chimney setting interrupt the iSCSI Sesseions?
Changing settings on the NIC will reset the connection, so yes, you will have to schedule downtime.
(It's almost weekend anyway, so it'll probably be less difficult. :))

I'd do the changes, reboot and perform the tests like Anton suggested.
User avatar
Anatoly (staff)
Staff
Posts: 1675
Joined: Tue Mar 01, 2011 8:28 am
Contact:

Sat Aug 06, 2011 12:08 pm

Keep us updated please
Best regards,
Anatoly Vilchinsky
Global Engineering and Support Manager
www.starwind.com
av@starwind.com
starneo
Posts: 26
Joined: Fri Jan 28, 2011 10:17 am

Mon Aug 08, 2011 8:00 am

At Saturday I set the following parameters to all my iSCSI NICs on Storage and Hyper-V side (except Syncchannel):

=> HKLM->System->CurrentControlSet->Services->Tcpip->Parameters->Interfaces->“<Interface GUI>“
DWORD32-> TcpAckFrequency = 1

for INTEL NICs on Server-Core:
=> HKLM->System->CurrentControlSet->Control->Class->{4D36E972-E325-11CE-BFC1-08002BE10318}->“<Adpater>“:
 RSS = 0 -> off
 TCPChecksumOffload = 0 -> off

for Windows2k8R2 SP1 OS:
=> Netsh int tcp set global chimney=disbaled
=> Netsh int tcp set global rss=disbaled

Now everything is running really smooth and quite fast. I have done a ATTO diskbenchmark on all 4 CSV HA targets simultaniously (queue depth=10, 2GB size) and received 26000 I/Os at the Starwind Performance Monitor (overall). I know physically this is not passible (for our Storages), but with over all 30GB Cache (18GB for Starwind and 12GB on each Raidcontroller), it can be true :)

So I am happy for now, hopefully this will be the last time with performance issues ;)
Post Reply