Transfer speed question

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

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

Post Reply
oxyi
Posts: 67
Joined: Tue Dec 14, 2010 8:30 pm
Contact:

Wed Mar 02, 2011 11:23 pm

Hi there,

I've tested out all the links within my Starwind setup with ntttcpr, and every link has at least 975MB/sec of throughoutput.

Since I have the Areca 1600ix-24 with 4GB of cache. When I build a iSCSI target, I created with cache using write-back mode and 4000MB of cache. Not sure if that's correct amount of cache I should be putting down ?

Question: While I am mounting the iSCSI target, how come I don't need to selec "Enable multi-path" when we mount the iSCSI target ?


Anyway, I proceeded to dump a 4GB file to the storage from local C to the storage, Windows shows a speed of 1.5GB/Sec, it finished transfer the file within seconds, but within task manager, how come right after it finished transferring the file, it still show the network utilization at however many % and not just idle, since it finished transferring the file ? Or that was just an illusion of it finished transferring file but it is really working in the back end ?

Second test, I dump a 50GB file to the storage from local C. I see the speed dropped all the way from 1.5GB/sec to 100MB/sec after mins, does that mean the cache is filling up hence the speed drop ?

During both test, I tried to copy a file (4GB) back from the storage, and I would only get 700ish KB/sec of transfer rate, why is it that ?

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

Thu Mar 03, 2011 12:21 am

1) Telling us how much RAM you've allocated for cache and not letting us know how much RAM system has in general makes ZERO sense. The answer is "it depends". If you have 8 GB RAM installed allocating 4 GB for cache is OK. I'd even go 6 GB as OS footprint itself is less then 500 MB in any case. But your system can run various apps except iSCSI target service itself and you should not ignore them and their memory appetites! General rule of common sense: allocate for caching ~60% of *free* *physical* memory. Going more raises your chances of putting machine into swap and having performance degradation under heavier load. And don't drink and drive... I mean you can mix iSCSI target with something else on the same server but I would not do it unless you're extremely low on budget.

2) Using 4 GB of cache on controller and 4 GB of system memory as a cache is good idea! Maybe... Maybe not. The problem is you don't tell us two very important details. Number one: are you HA or non-HA? Number two: what are you gonna do with this storage server? Run SQL or Exchange Server? Have shared folders? Being destination for weekly backups? Devil is in the details (c) ... So if you're HA and have properly configured cluster you don't need to think about anything. Cache is distributed and coherent, if one node will die (any reason actually including put down for ordinary mainenance service) alive node will sync cache to disk immediately and continue running in cacheless mode. Less performance but risk safe. One question is - do you have battery power for you controller cache? You should have it actually. If all listed is true (HA and battery) you're OK. If you don't have own power for controller cache or if you don't have HA you're in trouble... Dust in CPU cooler will result CPU death and your last ~8 GB of SQL Server transactions lost. I guess once and forever. Could cost your company a lot of money. And could cost you your job. So consider HA configuration. OK, you don't have HA b/c you can allow your server some downtime. Say it's hosting shared folders for your sales department and it's OK to wait for that .DOC file until server reboots. And it's OK if data is lost b/c it's still hosted on somebody's PC. And that particular .DOC is not very important. Or your server hosts weekly backups from another server and it's absolytely OK to re-run backup job again after fixing errors on the file system. In these cases you CAN go Write-Back cache and can skip using HA.

3) You need to enable multi-path when you need multi-path. So if you expect to run some clustering software (ESX or Hyper-V or MS cluster) you need to enable it. If you plan to run high peformance disk I/O app and you know for sure it can serve trasnactions itself (manages write order like SQL Server for example does) you can enable multi-path and increase number of sessins in MS initiator options (I have an impression you're using Windows as a client). If you don't need anything from listed - just keep it disabled.

4) Windows initially tells you write performance of doing memory copy to system cache. Has nothing to do with a real bandwidth. Don't do what you're doing. Grab Intel I/O Meter and run some tests against mapped iSCSI storage. Should tell you the truth about what's going on.

5) Wire speed for GbE is around 100 MB/sec. So after cache is filled with data lazy writer starts pushing it to the disk (remote iSCSI target in your case) and you see real picture. 100 MB/sec for write is OK. I'd expect a bit more (maybe 110-115) but it does not matter much.

6) 700 KB/sec is a very *BAD* result. You should again get wire speed of around 100 MB/sec. At this time you need to run I/O Meter against mapped disk LOCALLY (on the target side) finding out what's wrong with the disk. ARECA cards are well known for their issues (Google a bit to find out details) so I'd start here. If local I/O is OK check I/O Meter numbers over the network. If you'd get 100 MB/sec or more - ignore what Windows says as you're OK. If not - our engineers will continue with you finding out what's broken.
oxyi wrote:Hi there,

I've tested out all the links within my Starwind setup with ntttcpr, and every link has at least 975MB/sec of throughoutput.

Since I have the Areca 1600ix-24 with 4GB of cache. When I build a iSCSI target, I created with cache using write-back mode and 4000MB of cache. Not sure if that's correct amount of cache I should be putting down ?

Question: While I am mounting the iSCSI target, how come I don't need to selec "Enable multi-path" when we mount the iSCSI target ?


Anyway, I proceeded to dump a 4GB file to the storage from local C to the storage, Windows shows a speed of 1.5GB/Sec, it finished transfer the file within seconds, but within task manager, how come right after it finished transferring the file, it still show the network utilization at however many % and not just idle, since it finished transferring the file ? Or that was just an illusion of it finished transferring file but it is really working in the back end ?

Second test, I dump a 50GB file to the storage from local C. I see the speed dropped all the way from 1.5GB/sec to 100MB/sec after mins, does that mean the cache is filling up hence the speed drop ?

During both test, I tried to copy a file (4GB) back from the storage, and I would only get 700ish KB/sec of transfer rate, why is it that ?

Thanks for answering my questions.
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
oxyi
Posts: 67
Joined: Tue Dec 14, 2010 8:30 pm
Contact:

Mon Mar 07, 2011 10:07 pm

Hi Anton,

Sorry I did not give you the full picture, here is answer to your questions.

1) The system itself has 12GB of memory, and currently only running iSCSI targeting.

2) -I am going to run multiple targets, some are HA and some are not HA.
-We will not be running SQL or Exchange server, but for HA storage, we will be running Hyper-V and VM. Non-HA target will be shared folder and for another server's
weekly backup.
-Yes I do have battery backup module for my Areca card. I have two Areca 1680 card with two battery module in a server. And have two exact the same server.
- I would rather use HA for everything, since that's how I build my server to be. Have one sync to another and target always available. But with HA, I want to have
snapshots function as well, which I heard it is not coming yet until version 6. HA+Snapshot would be nice. With non-HA, I have the ability to do so.
3) So I only enable multi-path on that specified iSCSI target when I know I will be using that target for clustering service right ? I thought with multi-path enable, you
can have multiple connection accessing the same iSCSI target, therefore faster performance.

4) Last I ran IOmeter, I only obtained 60MB/sec performance.
5) Gotcha.
6) Yes we did do the test on local system, and it's good, hence not sure if that's a network saturation issue or not.

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

Tue Mar 08, 2011 5:50 pm

There's no problem at all!

1) Good. Go with 8 GB of RAM allocated for your Write-Back Cache. 10 GB could be fine as well...

2)

* Make sure you do not allocate Write-Back Cache for non-HA targets. Write-Thru of a considerably small amount (1-2 GB) should be fine.

* Make sure you have Write-Back Cache enabled on ARECA cards (if batteries are charged) or you're going to have misareable write performance in the other case.

* Yes, that's true... We'll bring all features together (HA, snapshots & de-duplication) in V5.8 or so. Sorry for being slow on this.

3) Use multiple pathes to both increase performance and provide redundancy. For any target, HA or non-HA does not matter.

4) This sucks. Wire speed should be achieved with configuation you've managed to have.

5) Good!

6) Let's find what's broken and fix it. We'll do our best to help here.
oxyi wrote:Hi Anton,

Sorry I did not give you the full picture, here is answer to your questions.

1) The system itself has 12GB of memory, and currently only running iSCSI targeting.

2) -I am going to run multiple targets, some are HA and some are not HA.
-We will not be running SQL or Exchange server, but for HA storage, we will be running Hyper-V and VM. Non-HA target will be shared folder and for another server's
weekly backup.
-Yes I do have battery backup module for my Areca card. I have two Areca 1680 card with two battery module in a server. And have two exact the same server.
- I would rather use HA for everything, since that's how I build my server to be. Have one sync to another and target always available. But with HA, I want to have
snapshots function as well, which I heard it is not coming yet until version 6. HA+Snapshot would be nice. With non-HA, I have the ability to do so.
3) So I only enable multi-path on that specified iSCSI target when I know I will be using that target for clustering service right ? I thought with multi-path enable, you
can have multiple connection accessing the same iSCSI target, therefore faster performance.

4) Last I ran IOmeter, I only obtained 60MB/sec performance.
5) Gotcha.
6) Yes we did do the test on local system, and it's good, hence not sure if that's a network saturation issue or not.

Thanks !
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
oxyi
Posts: 67
Joined: Tue Dec 14, 2010 8:30 pm
Contact:

Thu Mar 17, 2011 9:17 pm

Thanks,

Still testing.

But quick question regarding to the heartbeat, do I need a dedicated line for that, or say I can use a data sync line or anything else is fine.
User avatar
anton (staff)
Site Admin
Posts: 4021
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Fri Mar 18, 2011 8:20 am

More lines you have in general - faster and more reliable the configuration will be. So at least two lines used for both cross-link and heartbeat should be OK.
oxyi wrote:Thanks,

Still testing.

But quick question regarding to the heartbeat, do I need a dedicated line for that, or say I can use a data sync line or anything else is fine.
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
oxyi
Posts: 67
Joined: Tue Dec 14, 2010 8:30 pm
Contact:

Mon Mar 28, 2011 8:25 pm

Hi,

I have some test result back.

local benchmark thru IOmeter.

Max Throughput-100% Read
IOps - 44145.3
MBps- 1379.5

RealLife-60%Rand-65%Read
IOps - 3664.4
MBps- 28.62

Through iSCSI .

Max Throughput-100% Read
IOps - 2967.95
MBps- 92.74

RealLife-60%Rand-65%Read
IOps - 400.4
MBps- 3.12


Do you know why in the reallife 60%rand-65%read have such a drastic changes ?
User avatar
anton (staff)
Site Admin
Posts: 4021
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Tue Mar 29, 2011 9:23 am

What packet size used? Does network do wire speed for TCP?
oxyi wrote:Hi,

I have some test result back.

local benchmark thru IOmeter.

Max Throughput-100% Read
IOps - 44145.3
MBps- 1379.5

RealLife-60%Rand-65%Read
IOps - 3664.4
MBps- 28.62

Through iSCSI .

Max Throughput-100% Read
IOps - 2967.95
MBps- 92.74

RealLife-60%Rand-65%Read
IOps - 400.4
MBps- 3.12


Do you know why in the reallife 60%rand-65%read have such a drastic changes ?
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
Post Reply